본문 바로가기

DataBase(SQL)/DAY 24 _ 23.09.20

DB basic - 마당서점예시

** Primary Key(기본키)

: 정의할 때 주의할 점 ->  기본 키는 각 행을 고유하게 식별해야 하며 중복값을 가질 수 없어야 한다는 것
** Foreign Key(외래키)

: 한 테이블의 열(또는 열들)이 다른 테이블의 기본 키 또는 고유한 열과 관련되어 있는 경우 해당 관계를 나타냄
--  --> 이것은 데이터 무결성을 유지하고 데이터베이스에서 데이터 일관성을 보장하는 데 중요합니다.
-- ex) book table의 bookid는 primary key지만, orders table로 가면 외래키가 된다.

 

-- Madang 서점의 모든 실습 데이터를 초기화 한다.
DROP table orders;
DROP table book;
DROP table customer;

-- Q1. 모든 도서의 이름과 가격을 검색하시오.
SELECT bookname, price FROM Book;

-- Q2. 모든 도서의 가격과 이름을 검색하시오.
SELECT price, bookname FROM Book;

-- Q3. 모든 도서의 도서번호, 도서이름, 출판사, 가격을 검색하시오.
SELECT bookid, bookname, publisher, price FROM Book;
SELECT * FROM Book;

-- Q4. 모든 도서의 가격을 두번 보여주세요.
SELECT price, price FROM Book;

-- Q5. 모든 출판사를 검색하세요.
SELECT publisher FROM Book;

-- Q5-1) 중복제외
SELECT DISTINCT publisher FROM Book;

-- Q6. 가격이 20000원 미만인 도서를 검색하세요
SELECT * FROM Book WHERE price < 20000;

-- Q7. 가격이 10000원 초과, 20000원 미만인 도서를 검색하세요
SELECT * FROM Book WHERE price > 10000 AND price < 20000;

-- Q7-1) 가격이 10000원 이상, 20000원 이하인 도서를 검색하세요
SELECT * FROM Book WHERE price >= 10000 AND price <= 20000;
SELECT * FROM Book WHERE price BETWEEN 10000 AND 20000;

-- Q8. 가격이 20000원인 도서를 검색하시오
SELECT * FROM Book WHERE price = 20000;

-- Q9. 출판사가 '굿스포츠' 혹은 '대한미디어'인 도서를 검색하시오
SELECT 
	* 
FROM 
	Book 
WHERE 
	publisher = '굿스포츠' 
	OR publisher = '대한미디어';

-- Q9-1)★★★★
SELECT * FROM Book WHERE publisher IN('굿스포츠', '대한미디어');

-- ** 스칼라 : 단하나의 값 (대한미디어) --> = 으로 하면되겠지
-- ** 백터 : 1중배열 (굿스포츠, 대한미디어) --> 얘부터는 in으로 처리해야해


-- Q10) 출판사가 '굿스포츠' 혹은 '대한미디어'가 아닌 도서를 검색하시오
SELECT * FROM Book WHERE publisher NOT in('굿스포츠', '대한미디어');

-- Q11) '축구의 역사'를 출간한 출판사를 검색하시오
SELECT publisher FROM Book WHERE bookname = '축구의 역사';

-- Q11-1) 문자열 비교시 like를 써도됨.
SELECT publisher FROM Book WHERE bookname LIKE '축구의 역사';

-- Q11-2) 도서이름에 '축구'가 포함된 출판사를 검색하시오 ★★★★
SELECT * FROM Book WHERE bookname LIKE '%축구%';
SELECT * FROM Book WHERE bookname LIKE '%축구'; --> 뒤가 아무거나여도되는것이 없으므로 내가 원하는 값이안뜬다
SELECT * FROM Book WHERE bookname LIKE '축구_ __'; --> _ 한개당 한글자씩 있어야하는것. 오호ㅋㅋ

-- Q12) 도서이름의 왼쪽 두번째 위치에 '구'라는 문자열을 갖는 도서를 검색하시오
SELECT * FROM Book WHERE bookname LIKE '_구%';

-- Q13) 축구에 관한 도서 중, 가격이 20000원 이상인 도서를 검색하시오
SELECT *
FROM Book
WHERE bookname 
LIKE '%축구%' AND price >= 20000;

-- Q14) 도서를 이름순 / 이름 역순으로 검색하시오
SELECT * FROM Book ORDER BY bookname ASC;
SELECT * FROM Book ORDER BY bookname DESC;

-- Q15) 도서를 가격의 내림차순으로 검색하고, 가격이 같으면 출판사의 오름차순으로 검색하시오
SELECT * FROM Book ORDER BY price desc, publisher ASC;

'DataBase(SQL) > DAY 24 _ 23.09.20' 카테고리의 다른 글

DB Basic _DML  (0) 2023.09.20