[6] MySQL - Example of Command line

Book 테이블에서 모든 도서의 이름과 가격을 검색하시오.

SELECT bookname, price FROM Book;

Book 테이블에서 모든 도서의 가격과 이름을 검색하시오.

SELECT price, bookname FROM Book;

Book 테이블에서 모든 도서의 도서번호, 도서이름, 출판사, 가격을 검색하려면?

SELECT bookid, bookname, publisher, price FROM Book;

테이블의 모든 속성을 보이려면

SELECT * FROM Book;

Book 테이블에서 도서 테이블에 있는 모든 출판사를 검색하려면?

SELECT publisher FROM Book;

중복된 데이터를 제거하여 한 번씩만 출력하려면? SELECT DISTINCT publisher FROM Book;

Book 테이블에서 가격이 10,000원 이상 20,000 이하인 도서를 검색하려면?

SELECT * FROM Book WHERE price BETWEEN 10000 AND 20000

AND를 이용하여 변경

SELECT * FROM Book WHERE price >= 10000 AND price <= 20000;

Book 테이블에서 출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’인 도서를 검색하려면?

SELECT * FROM Book WHERE publisher IN (‘굿스포츠’, ‘대한미디어’)

출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’가 아닌 도서를 검색하려면?

SELECT * FROM Book WHERE publisher NOT IN (‘굿스포츠’, ‘대한미디어’)

STUDENT 테이블에서 나이(AGE)가 30 이상인 학생 출력하기

SELECT * FROM STUDENT WHERE AGE >= 30

STUDENT 테이블에서 10번 과정 소속 학생 출력하기

SELECT * FROM STUDENT WHERE COU_ID=10

STUDENT 테이블에서 이름이 김준형인 학생을 출력하기

SELECT * FROM STUDENT WHERE STU_NAME=’김준형’

STUDENT 테이블에서 나이가 21에서 29 사이인 학생을 검색

SELECT * FROM STUDENT WHERE AGE >= 21 AND AGE <= 29

STUDENT 테이블에서 나이가 21에서 29 사이인 학생 출력

SELECT * FROM STUDENT WHERE AGE BETWEEN 21 AND 29

STUDENT 테이블에서 나이가 21이거나 27이거나 28인 학생만 검색

SELECT * FROM STUDENT WHERE AGE=21 OR AGE=27 OR AGE=28

STUDENT 테이블에서 나이가 21이거나 27이거나 28인 학생 출력

SELECT * FROM STUDENT WHERE AGE IN (21, 27, 28)

Book 테이블에서 도서이름에 ‘축구’가 포함된 책이름과 출판사를 검색하려면?

SELECT bookname, publisher FROM Book WHERE bookname LIKE ‘%축구%’;

도서이름의 왼쪽 두 번째 위치에 ‘구’라는 문자열을 갖는 도서를 검색하려면?

SELECT * FROM Book WHERE bookname LIKE ‘_구%’;

Book 테이블에서 축구에 관한 도서 중 가격이 20,000원 이상인 도서를 검색하려면?

SELECT * FROM Book WHERE bookname LIKE ‘%축구%’ AND price >= 20000;

출판사가 ‘굿스포츠’ 혹은 ‘대한미디어’인 도서를 검색하려면?

SELECT * FROM Book WHERE publisher=’굿스포츠’ OR publisher=’대한미디어’;

성이 ‘김’인 학생을 출력

SELECT * FROM STUDENT WHERE STU_NAME LIKE ‘김%’

이름의 두 번째 글자가 ‘봉’이고 그 뒤는 무엇이든 관계없는 사원 출력

SELECT * FROM STUDENT WHERE STU_NAME LIKE ‘_봉%’

이름과 과정번호와 이메일 출력

SELECT STU_NAME, COU_ID, STU_EMAIL FROM STUDENT

STUDENT 테이블에서 이메일이 NULL인 학생은

SELECT * FROM STUDENT WHERE STU_EMAIL=NULL

SELECT * FROM STUDENT WHERE STU_EMAIL IS NULL

이메일이 NULL이 아닌 학생 출력

SELECT * FROM STUDENT WHERE STU_EMAIL IS NOT NULL

Book 테이블에서 도서를 이름순으로 정렬하려면?

SELECT * FROM Book ORDER BY bookname (ASC);

도서를 가격순으로 정렬하고, 가격이 같으면 이름순으로 정렬

SELECT * FROM Book ORDER BY price, bookname;

도서를 가격의 내림차순으로 정렬하고 만약 가격이 같다면 출판사의 오름 차순으 로 정렬하려면?

SELECT * FROM Book ORDER BY price DESC, publisher ASC;

나이를 기준으로 오름차순으로 정렬하여 출력

SELECT * FROM STUDENT ORDER BY AGE ASC

나이가 많은 사람부터 적은 사람 순으로 순차적으로 출력

SELECT * FROM STUDENT ORDER BY AGE DESC

고객이 주문한 도서의 총 판매액을 구하려면?

SELECT SUM(saleprice) FROM Orders;

고객이 주문한 도서의 총 판매액을 총매출로 구하려면?

SELECT SUM(saleprice) AS 총매출 FROM Orders;

2번 김연아 고객이 주문한 도서의 총 판매액을 총매출로 구하려면?

SELECT SUM(saleprice) AS 총매출 FROM Orders WHERE custid=2;

고객이 주문한 도서의 총 판매액, 평균값, 최저가, 최고가를 구하려면?

SELECT SUM(saleprice) AS Total,

​ AVG(saleprice) AS Average,

​ MIN(saleprice) AS Minimum,

​ MAX(saleprice) AS Maximum

FROM Orders;

서점의 도서 판매 건수를 구하려면?

SELECT COUNT(*) FROM Orders;

학생들의 나이 총합 출력

SELECT SUM(AGE) AS [나이 총합] FROM STUDENT

학생들의 나이 평균 출력

SELECT AVG(AGE) AS [나이 총합] FROM STUDENT

고객별로 주문한 도서의 총 수량과 총 판매액을 구하려면?

SELECT custid, COUNT(*) AS 도서수량, SUM(saleprice) AS 총액 FROM Orders GROUP BY custid;

가격이 8,000원 이상인 도서를 두 권 이상 구매한 고객에 대하여 고객별 주문 도 서의 총 수량을 구해 보세요.

SELECT custid, COUNT(*) AS 도서수량 FROM Orders WHERE saleprice >= 8000

GROUP BY custid HAVING count(*) >= 2;

소속 과정별 평균 나이를 과정 번호와 함께 출력

SELECT COU_ID, AVG(AGE) AS [평균 나이] FROM STUDENT GROUP BY COU_ID

과정별 평균 나이가 25세 이상인 과정의 번호와 평균 나이 구하기

SELECT COU_ID, AVG(AGE) AS [평균 나이] FROM STUDENT GROUP BY COU_ID HAVING AVG(AGE) >= 25

Customer 와 Orders 테이블을 합치려면?

SELECT * FROM Customer, Orders;

고객과 고객의 주문에 관한 데이터를 모두 보려면?

SELECT * FROM Customer, Orders WHERE Customer.custid =Orders.custid;

고객과 고객의 주문에 관한 데이터를 모두 고객번호 순으로 정렬하려면?

SELECT * FROM Customer, Orders WHERE Customer.custid = Orders.custid ORDER BY Customer.custid;

고객의 이름과 고객이 주문한 도서의 판매가격을 검색하려면?

SELECT name, saleprice FROM Customer, Orders WHERE Customer.custid =Orders.custid;

고객별로 주문한 모든 도서의 총 판매액과 고객이름을 구하려면?

SELECT name, SUM(saleprice) FROM Customer, Orders WHERE Customer.custid = Orders.custid GROUP BY Customer.name

고객별로 주문한 모든 도서의 총 판매액을 구하고, 고객별로 정렬하려면?

SELECT name, SUM(saleprice) FROM Customer, Orders WHERE Customer.custid = Orders.custid GROUP BY Customer.name ORDER BY Customer.name;

고객의 이름과 고객이 주문한 도서의 이름을 구하려면?

SELECT Customer.name, book.bookname FROM Customer, Orders, Book

WHERE Customer.custid =Orders.custid AND Orders.bookid =Book.bookid;

가격이 20,000원인 도서를 주문한 고객의 이름과 도서의 이름을 구하려면?

SELECT Customer.name, book.bookname FROM Customer, Orders, Book WHERE Customer.custid =Orders.custid

​ AND Orders.bookid =Book.bookid AND Book.price =20000;

도서를 구매하지 않은 고객을 포함하여 고객의 이름과 고객이 주문한 도서의 판매 가격을 구하려면?

SELECT Customer.name, Orders.saleprice FROM Customer LEFT OUTER JOIN Orders

ON Customer.custid =Orders.custid;

도서가격이 가장 비싼 도서의 이름은?

SELECT bookname FROM Book WHERE price = ( SELECT MAX(price) FROM Book) ;

도서를 구매한 적이 있는 고객의 이름을 검색하려면?

SELECT name FROM Customer WHERE custid IN (SELECT custid FROM Orders);

대한미디어에서 출판한 도서를 구매한 고객의 이름을 알려면?

SELECT name FROM Customer WHERE custid IN (SELECT custid FROM Orders WHERE bookid IN (SELECT bookid FROM Book WHERE publisher=’대한미디어’));

도서를 주문하지 않은 고객의 이름을 검색하려면?

SELECT name FROM Customer EXCEPT SELECT name FROM Customer WHERE custid IN (SELECT custid FROM Orders);

주문이 있는 고객의 이름과 주소를 검색하려면?

SELECT name, address FROM Customer WHERE EXISTS (SELECT * FROM Orders

WHERE Customer.custid = Orders.custid);

25세 이상인 학생들로 구성된 과정의 학생 정보 출력

SELECT STU_NAME, age, COU_ID FROM STUDENT

WHERE COU_ID IN ( SELECT DISTINCT COU_ID FROM STUDENT WHERE age>=25 )

스포츠 의학은 한솔의학서적에서 출간했으며 가격은 90,000원이다. Book 테이블에 새로운 도서 ‘스포츠 의학’을 삽입하려면?

INSERT INTO Book(bookid, bookname, publisher, price) VALUES (11, ‘스포츠 의학’, ‘한솔의학서적’, 90000);

스포츠 의학은 한솔의학서적에서 출간했으며 가격은 미정이다. Book 테이블에 새로운 도서 ‘스포츠 의학’을 삽입하려면?

INSERT INTO Book(bookid, bookname, publisher) VALUES (12, ‘스포츠 의학’, ‘한솔의학서적’);

Customer 테이블에서 고객번호가 5인 고객의 주소를 ‘대한민국 부산’으로 변경하려면?

UPDATE Customer SET address=’대한민국 부산’ WHERE custid=5;

Customer 테이블에서 박세리 고객의 주소를 김연아 고객의 주소로 변경하려면?

UPDATE Customer SET address = (SELECT address FROM Customer WHERE name=’김연아’)

WHERE name=’박세리’;

과정 번호가 10번인 학생의 과정 번호를 30번으로 수정

UPDATE STUDENT SET COU_ID=30 WHERE COU_ID=10

Customer 테이블에서 고객번호가 5인 고객을 삭제하려면?

DELETE FROM Customer WHERE custid=5;

모든 고객을 삭제하시오.

DELETE FROM Customer;

30번 과정 소속 학생을 삭제

DELETE [FROM] STUDENT WHERE COU_ID=30

영화 ( 영화번호, 제목, 장르번호, 제작년도, 제작사 )

영화 테이블 전체를 검색하시오.

SELECT * FROM 영화

모든 영화제목과 제작사를 검색하시오. SELECT 제목, 제작사 FROM 영화

제작년도가 2010년 이후인 영화제목을 검색하시오. SELECT 제목 FROM 영화 WHERE 제작년도 >= 2010

제작년도가 2000년 부터 2019년 사이인 영화제목과 제작년도를 검색하시오.

SELECT 제목, 제작년도 FROM 영화 WHERE 제작년도 >= 2000 AND 제작년도 <= 2019

“하늘” 단어가 포함된 영화제목을 검색하시오.

SELECT * FROM 영화 WHERE 제목 LIKE ‘%하늘%’

모든 영화제목을 제작년도 순으로 검색하시오. SELECT * FROM 영화 ORDER BY 제작년도

모든 영화제목을 제작년도 순으로 검색. 단 제작년도가 같으면 영화제목 순으로 검색하시오.

SELECT * FROM 영화 ORDER BY 제작년도, 제목

———

영화장르 ( 장르번호, 장르명)

영화 ( 영화번호, 제목, 장르번호, 제작년도, 제작사)

영화제목, 장르명, 제작사를 select 하시오.

SELECT 제목, 장르명, 제작사 FROM 영화, 영화장르

장르번호별 영화의 건수를 select 하시오.

SELECT 장르번호, COUNT(*) AS 영화건수 FROM 영화 GROUP BY 장르번호

장르명별 영화의 건수를 select 하시오.

SELECT 장르명, COUNT(*) AS 영화건수 FROM 영화, 영화장르 GROUP BY 장르명

2개 이상의 영화를 만든 제작사를 select 하시오.

SELECT 제작사, COUNT() FROM 영화 GROUP BY 제작사 HAVING COUNT() >= 2

가장 최근에 만들어진 영화 제목과 제작년도를 select 하시오.

SELECT 제목, 제작년도 FROM 영화 WHERE 제작년도 = (SELECT MAX( 제작년도 ) FROM 영화 )

———

영화장르 ( 장르번호, 장르명)

영화 ( 영화번호, 제목, 장르번호, 제작년도, 제작사)

영화장르 테이블에 3개의 장르 정보를 insert 하시오. INSERT INTO 영화장르 VALUES (1, ‘sf’)

영화 테이블에 5개의 영화정보를 insert 하시오. INSERT INTO 영화 VALUES (1, ‘룰루랄라’, 01, 2019, ‘신기루’)

영화 테이블에서 1번째 영화의 제작년도를 변경하시오. UPDATE 영화 SET 제작년도 = ‘2019’ WHERE 영화번호 = 101

영화 테이블에서 2번째 영화의 장르번호를 변경하시오. 변경이 안된다면 이유를 설명하시오

UPDATE 영화 SET 장르번호 = 21 WHERE 영화번호 =101

영화 테이블에서 영화장르의 장르번호를 외래키로 사용하고 있어서 변경 불가능

영화장르 테이블에서 1번째 장르를 삭제하시오. 삭제가 안된다면 이유를 설명하시오

DELETE FROM 영화장르 WHERE 장르번호 = 01

영화장르의 장르번호를 영화테이블에서 데이터를 사용하고 있어서 변경 불가능