2022-03-31 DataBase_2

강의는 MSSQL를 사용해서 진행했다.

아래 예시에서 사용할 릴레이션(테이블)은 아래와 같다.

customerTable

custidnameaddressphone
1박지성영국 맨체스터000-5000-0001
2김연아대한민국 서울000-6000-0001
3장미란대한민국 강원도000-7000-0001
4추신수미국 클리블랜드000-8000-0001
5박세리대한민국 대전NULL

bookTable

bookidbooknamepublisherprice
1축구의 역사굿스포츠7000
2축구아는 여자나무수13000
3축구의 이해대한미디어22000
4골프 바이블대한미디어35000
5피겨 교본굿스포츠8000
6역도 단계별기술굿스포츠6000
7야구의 추억이상미디어20000
8야국를 부탁해이상미디어13000
9올림픽 이야기삼성당7500
10Olympic ChampionsPearson13000

orderTable

orderidcustidbookidsalepriceorderdate
11160002014-07-01
213210002014-07-03
32580002014-07-03
43660002014-07-04
547200002014-07-05
612120002014-07-07
748130002014-07-07
8310120002014-07-08
921070002014-07-09
1038130002014-07-10

예제

  1.  
SELECT *
FROM orderTable
WHERE saleprice>6000;

SELECT *
FROM bookTable
WHERE price>3000 AND price<20000
WHERE price BETWEEN 3000 AND 20000
Code language: SQL (Structured Query Language) (sql)
비교 연산자=  <  >  <=  >=
범위BETWEEN
집합IN, NOT IN
패턴LIKE
NULLIS NULL, IS NOT NULL
복합조건AND, OR, NOT
  1.  
SELECT DISTINCT publisher
FROM book;
Code language: SQL (Structured Query Language) (sql)

중복 제거를 원하면 DISTINCT  사용.

  1.  
SELECT *
FROM bookTable
WHERE publisher IN ('굿스포츠', '대한미디어');

SELECT *
FROM bookTable
WHERE publisher NOT IN ('굿스포츠', '대한미디어');
Code language: SQL (Structured Query Language) (sql)
  1.  
SELECT bookname, publisher
FROM bookTable
WHERE bookname LIKE '축구의 역사';
//MSSQL기준 이건 ORACLE SYNTAX라서 원하는 결과가 나오지 않아요!

SELECT bookname, publisher
FROM bookTable
WHERE bookname = '축구의 역사';

SELECT bookname, publisher
FROM bookTable
WHERE bookname LIKE '%축구의 역사%';

////////////////////////////////////////////////////////////////////////

SELECT bookname, publisher
FROM bookTable
WHERE bookname LIKE '%축구%';
Code language: SQL (Structured Query Language) (sql)
와일드문자의 종류
+문자열 연결‘골프’+’바이블’
%0개 이상의 문자열 일치‘%축구%’
[]1개의 문자와 일치‘[0-5]%’ : 0~5 사이 숫자로 시작하는 문자열
[^]1개의 문자와 불일치‘[^0-5]%’ : 0-5 사이 숫자로 시작하지 않는 문자열
_특정 위치의 1개의 문자와 일치‘_구%’ : 두 번째 위치에 ‘구’가 들어가는 문자열
  1.  
SELECT *
FROM bookTable
ORDER BY price, bookname;
Code language: SQL (Structured Query Language) (sql)
SELECT bookid, saleprice
FROM orderTable
ORDER BY bookid;
Code language: SQL (Structured Query Language) (sql)
  1.  
SELECT SUM(saleprice) AS Total,
		AVG(saleprice) AS Average,
		MIN(saleprice) AS MInimum,
		MAX(saleprice) AS Maximum
FROM orderTable;
Code language: SQL (Structured Query Language) (sql)
집계 함수
SUM총합
AVG평균값
MIN최저값
MAX최고값
COUNT항목의 수
  1.  
SELECT * 
FROM orderTable;

SELECT custid, COUNT(*) AS 도서수량, SUM(saleprice) AS 총액
FROM orderTable
GROUP BY custid;
Code language: SQL (Structured Query Language) (sql)
SELECT custid, COUNT(*) AS 도서수량, SUM(saleprice) AS 총액
FROM orderTable;
//오류발생

SELECT custid, saleprice
FROM orderTable
GROUP BY custid

//오류발생

SELECT COUNT(*) AS 도서수량, SUM(saleprice) AS 총액
FROM orderTable;

SELECT custid, SUM(saleprice)
FROM orderTable
GROUP BY custid;

//GROUP과 집계 함수의 관계
Code language: SQL (Structured Query Language) (sql)

댓글 남기기