$bash

SQL - 기초

0x0300 : Study/0x0305 : SQL

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



'0x0300 : Study > 0x0305 : SQL' 카테고리의 다른 글

SQL - 트랜잭션 작동 및 복구  (1) 2016.06.15
SQL - SQL?  (0) 2016.06.15