** 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 |
---|