WorkaHolic/MSSQL

MSSQL SQL 문장의 종류

2010. 2. 25. 16:31
반응형

출처 느낌으로 산다는 건 도깨비
원문 http://blog.naver.com/juny177/110003330572
 

### DDL (Data Definetion Language) 

>> 데이터를 정의 하는 문장 , DB, Table 에 관한 구조 정의

    (CREATE, ALTER, DROP ... )

### DML (Data Manepution Language)

 >> 데이터를 변경하거나 가져오거나 처리 하거나 조작하는 문장, Column, Row 작업

    (SELECT, INSERT, DELETE, UPDATE)

### DCL (Data Control Language)

 >> 데이터를 보완하는 문장 , 사용자 관리 명령   

    (GRANT, ROVOKE, DENY ... )

 

=====================================================================================

 PRINT / SELECT  / RAISERROR : 어떤 결과를 화면에 처리 하고자 할때
=====================================================================================
PRINT 'A' 
PRINT 1+3+ 'A'

>> PRINT 문장은  숫자와 문자를 동시에 출력할수 없다 콤마를 인식할수 없다

   (하나의 데이터만 처리)

SELECT 'A'
SELECT 1+3, 'A'

>> SELECT문장은 하나의 컬럼처럼 처리 된다.

   콤마를 이용해 여러개의 데이터를 나타낼수도 있다

RAISERROR ([메세지],[심각도],[]) WITH LOG 
>> RAISERROR 문장은 사용자가 오류 메세지를 직접 지정하여 포맷을 일치화 시킬수 있다

 에러메세지를 통일 할 수 있다.

ex) RAISERROR ('16 심각도의 오류가 발생했습니다',16,1)  WITH LOG

  GOTO

=====================================================================================

GOTO : 호출문, 이문장을 만나면 호출문을 선언한 곳으로 리턴 된다

=====================================================================================

>> 프로시져에서 거의 사용

=====================================================================================

WHILE .. BREAK / CONTINUE

=====================================================================================

WHILE 
BEGIN
 ... TRUE (CONTINUE GO END..)

 ... FALSE (BREAK .. >> WHILE GO.. )

END

 

=====================================================================================

 EXEC : 실행어 (Execute 의 약자 )

=====================================================================================

>> 스토어 프로시져를 연속으로 쓸때는 반드시 EXEC를 붙여야 한다.
 단, 제일 처음 실행하는것은 안붙여도 된다.

 

=====================================================================================

 CASE

=====================================================================================

 >> 단순 CASE (CASE 와 WHEN 사이에 있다)
 >> 검색된 CASE ( WHEN 다음에 온다)

 

=====================================================================================

 SET : 세성 옵션 (한번설정하면 세션이 끊어 질때까지 유용)

=====================================================================================

SET nocount OFF
  : 몇개 행이 처리 되었는지 결과보여주는 것을 설정한다 '

SET rowcount [n]

ex) SET rowcount 4
SELECT title_id FROM titles ORDER BY TITLE

SET rowcount 0

  : 보여줄 목록의 행수를 선택한다. 목록의 정렬의 임의로 설정되므로 필요한 순서가 있다면 ORDER BY 를 사용해야 한다.
사용후엔 반드시     SET ROWCOUNT 0 을 이용해서 원위치 시켜놓아야 한다 '

 

=====================================================================================

 NULLIF : 표현식 1과, 2를 비교

=====================================================================================

>> 표현식 1과, 2를 비교 두 표현식이 같으면 NULL 을 리턴,  같지 않으면 표현식 1을 리턴

SELECT NULLIF(2,3) -- 2 리턴
SELECT NULLIF(3,3) -- NULL 리턴
 사용예 : 양쪽필드에서 수량이 같으면 NULL을 리턴하고 하니면 첫 필드의 값을 리턴할때

 

=====================================================================================

 COALESCE : 뒤에 오는 표현식중에 처음으로 오는 NULL 이 아닌 값을 리턴

=====================================================================================

SELECT COALESCE(NULL, 3, 4) -- 3 리턴
SELECT COALESCE(1,NULL,) -- 1 리턴
SELECT COALESCE(NULL,NULL,4) -- 4 리턴

SELECT COALESCE(NULL,NULL, NULL)--문법오류

 사용예 : 하나만 값을 가지고 있는 컬럼에서 비교해서 값을 가져올때 매우 좋다


 

=====================================================================================

 GO (스크립트의 실행)

=====================================================================================

지금은 자동으로 실행이 되므로 일일이 GO 을 붙이지 않아도 되지만
CREATE TABLE 과 CREATE VIEW 같은 명령어는 연달아 사용할수 없으므로
GO 를 사용하도록 한다 '

DROP TABLE A
CREATE TABLE A(id int)
GO   <-- 요렇게 
CREATE VIEW viewA AS SELECT * FROM A
GO

 

반응형