T-SQL 분류 및 데이터 변경을 위한 SQL 문
T-SQL의 분류
DML
Data Manipulation Language 데이터 조작 언어
- 데이터의 선택, 삽입, 수정, 삭제에 사용
- 대상은 테이블의 행
SELECT
,INSERT
,UPDATE
,DELETE
가 해당- 트랜잭션(Transaction)을 발생시킴(
SELECT
제외)
DDL
Data Definition Language 데이터 정의 언어
- 데이터베이스 개체를 생성, 삭제, 변경하는 데 사용
CREATE
,DROP
,ALTER
등이 해당- 트랜잭션을 발생시키지 않음
DCL
Data Control Language 데이터 제어 언어
- 사용자에게 권한 부여 시에 주로 사용
GRANT
,REVOKE
,DENY
등이 해당
데이터 삽입
INSERT
문 기본
INSERT [INTO] <테이블> [(열1, 열2, ...)] VALUES (값1, 값2, ...)
-- ex
INSERT INTO testTbl1 VALUES (1, 'hyoloui', 28)
INSERT INTO testTbl1(id, userName) VALUES(2, 'juloui')
INSERT INTO testTbl1(userName, age, id) VALUES('beeloui', 7, 3) -- 순서는 상관 없음
자동으로 증가하는 IDENTITY
IDENTITY
지정 시에는 입력값을 생략 / DEFAULT 값
CREATE TABLE testTbl2
(id int IDENTITY,
userName nchar(3),
age int,
nation nchar(4) DEFAULT '대한민국');
GO
INSERT INTO testTbl2 VALUES('일번', 20, DEFAULT)
SET IDENTITY_INSERT testTbl2 ON; -- identity 로 지정된 행을 강제로 지정
INSERT INTO testTbl2(id, userName, age, nation)
VALUES(11, '십일번', 25, '일본')
SET IDENTITY_INSERT testTbl2 OFF; -- identity 로 지정된 행을 자동으로 지정
EXECUTE sp_help testTbl2 -- testTbl2 테이블의 columns 정보 확인
SELECT IDENT_CURRENT('testTbl2') -- 현재 row 가 몇개인지 확인
SEQUENCE
IDENTITY
와 같은 효과를 냄- 오라클과 같은 방식을 제공하기 위한 개체임
정보
IDENTITY
처럼 CREATE TABLE
문에서 작성하는 것이 아닌,
따로 CREATE SEQUENCE
문을 작성 해야함
CREATE SEQUENCE idSEQ
START WITH 1 -- 시작값
INCREMENT BY 1; -- 증가값
GO
INSERT INTO testTbl3
VALUES (NEXT VALUE FOR idSEQ, '솔라', 25, DEFAULT)
- 변경은
ALTER SEQUENCE
문을 사용함 - 특정 범위의 값이 반복되게 입력할 수도 있음