SQL 기초
SELECT
관계 연산자의 사용
// SELECT 아이디, 이름
// FROM userTbl
// WHERE 생년 >= 1970 AND 신장 >= 182
BETWEEN... AND와 IN()
// SELECT 이름, 신장
// FROM UserTbl
// WHERE 신장 BETWEEN 180 AND 183
// SELECT 이름, 지역
// FROM UserTbl
// WHERE 지역 IN (N'서울', N'경기', N'강원'
ANY / ALL / SOME 그리고 하위쿼리(SubQuery)
// SELECT 이름, 신장
// FROM UserTbl
// WHERE 신장 >= ANY (SELECT 신장 FROM UserTb WHERE 지역 = N'서울')
// SELECT 이름, 신장
// FROM UserTbl
// WHERE 신장 = ANY (SELECT 신장 FROM UserTbl WHERE 지역 = N'서울')
ORDER BY (순서대로 정렬)
// SELECT 이름, 신장
// FROM userTbl
// ORDER BY 신장
DISTINCT (중복 제거)
// SELECT DISTINCT addr
// FROM userTbl
TOP(N) (상위 N개만 출력)
// SELECT TOP(10) 신장
// FROM UserTbl
// SELECT TOP(0.1) PERCENT 신장
// FROM UserTbl
GROUP BY (집계함수 활용)
// SELECT 아이디 AS [사용자 아이디], SUM(수량) AS [총 구매 개수]
// FROM buyTbl
// GROUP BY userid
// SELECT AVG(수량) AS [평균 구매 개수]
// FROM buyTbl
// SELECT 아이디, AVG(수량 * 1.0) AS [평균 구매 개수]
// FROM buyTbl
// GROUP BY 아이디
SQL Insert, Update, Delete
Insert 구문 형식
// INSERT INTO 테이블이름 (열이름1, 열이름2, .... )
// VALUES(값1, 값2, 값3, .... )
Update 구문형식
// UPDATE 테이블이름
// SET 열1=값1 , 열2=값2 ...
// WHERE 조건
Delete 구문형식
// DELETE 테이블이름
// WHERE 조건
SQL 고급
JOIN
구매 테이블 중에서 'LCS' 아이디를 가진 사람이 구매한 물건을 발송하기 위해서, 이름 / 주소 / 연락처 등을 조인
// SELECT *
// FROM buyTbl INNER JOIN UserTbl
// ON buyTbl . 아이디 = UserTbl . 아이디
// WHERE buyTbl. 아이디 = 'LCS' ;
별칭의 사용.
테이블의 별칭을 사용함으로써 코드를 간결화 할 수 있다.
// SELECT *
// FROM BuyTbl B INNER JOIN userTbl U
// ON B . 아이디 = U . 아이디
// WHERE B . 아이디 = 'LCS' ;
CASE
구매한 액수에 따라서 최우수고객 / 우수고객 / 일반 고객 등으로 분류하기 위해서는 CASE구문을 활용한다.
// SELECT U.아이디, U.이름, SUM(단가 * 수량) AS [총구매액]
// CASE
// when (sum(단가*수량) >= 1500) then N'최우수고객'
// when (sum(단가*수량) >= 1000) then N'우수고객'
// when (sum(단가*수량) >= 1) then N'일반고객'
// else N'유령고객'
// end as [고객등급]
// from buyTbl B right join userTbl U
// on B.아이디 = U.이름
// group by U.아이디, U.이름
// order by sum(단가*수량) desc
TRY ... CATCH
오류를 처리하는 데 편리함.
// use db2016a11
// begin try
// insert into usertbl_ÃÖ°Çö values('LSG', N'이상구', 1988, N'서울', '999', '9999', 170)
// print N'정상적으로 입력이 됬습니다.'
// end try
// begin catch
// print N'응 안되 돌아가 ^ㅡ^'
// end catch