1. SQL 구조

2. DDL

3. DML

4. DCL

5. Tranaction

6. TCL

1. SQL 구조

Untitled

2. DDL

2-1) DDL(Data Definition Language, 데이터 정의어)

2-2) Create Table(테이블 생성)

--문법
CREATE TABLE 테이블명(
컬럼명 타입(크기) NOT NULL, --널값이 들어갈 수 없음
컬럼명 타입 NULL DEFAULT(값), --초기값 지정
CONSTRAIN PK이름 PRIMARY KEY(컬럼명) --PK설정
)

--예제
CREATE TABLE MY_TABLE(
NO_EMP NVARCHAR(10)NOT NULL, -- NULL 값이 들어갈 수 없음
NM_KOR NVARCHAR(40)NOT NULL, -- NULL 값이 들어갈 수 없음
AGE INT NULL DEFAULT (0), --디폴트 = 0
TODAY DATETIME DEFAULT(GETDATE()), --디폴트 현재일자
CONSTRAINT PK_MY_TABLE PRIMARY KEY(NO_EMP)--PK : NO_EMP)

2-3) ALTER TABLE(테이블 변경)

2-3)-1. 테이블 구조 확인

Untitled

2-3)-2. 테이블 컬럼 추가

AALTER TABLE 테이블명 ADD 컬럼명 컬럼 속성

ALTER TABLE MY_TABLE ADD NM_ENG NVARCHAR NOT NULL

2-3)-3. 테이블 컬럼 속성 변경

ALTER TABLE 테이블명 ALTER 컬럼명 컬럼 속성

ALTER TABLE MY_TABLE ALTER COLUMN NM_ENG INT

2-3)-4. 테이블 컬럼 삭제

ALTER TABLE 테이블명 DROP COLUMN 칼럼명

ALTER TABLE MY_TABLE DROP COLUMN NM_ENG

3. DML(Data Manipulation Language, 데이터 조작어)

3-1) Select(검색)

--My_Table로부터 모든 칼럼 조회
SELECT * FROM My_Table

--My_Table의 No_EMP, Nm_Kor, Age 칼럼 조회
SELECT No_EMP, Nm_Kor, Age FROM My_Table

3-1)-1. Where(조건문)

--이름이 홍길동인 사람 검색
SELECT * FROM My_Table WHERE Nm_Kor = '홍길동'

--나이가 25살인 사원의 한국이름과 나이 조회
SELECT Nm_Kor, Age FROM My_Table WHERE Age = 25

--나이가 25살이 아닌 사원조회
SELECT * FROM My_Table WHERE Age <> 25

--사원 번호가 '0315'이고 나이가 25살보다 작거나 이름이 '홍길동'인 사원 조회
SELECT * FROM My_Table WHERE No_EMP = '0315' 
AND (Age < 25 OR Nm_Kor = '홍길동')

--사원번호가 '0315'이거나 나이가 25살 이상이면서 이름이 '홍길동'인 사원조회
SELECT * FROM My_Table WHERE No_EMP = '0315' 
OR (Age >= 25 AND Nm_Kor = '홍길동') 

3-1)-2. Like(~로 시작, 포함, 끝나는 단어)

--'김'으로 시작하는 사원조회
SELECT * FROM My_Table WHERE Nm_Kor LIKE '김%'

--'김'이 들어가는 사원조회
SELECT * FROM My_Table WHERE Nm_Kor LIKE '%김%'

--'김'으로 끝나는 사원의 사원번호 조회
SELECT No_EMP FROM My_Table WHERE Nm_Kor LIKE '%김'

3-1)-3. In(~이고)

--나이가 20살, 24살, 26살인 사원조회
SELECT * FROM My_Table WHERE Age IN(20, 24, 26)

--사원번호가 '0000', '0004', '0008'이고 나이가 20살, 24살, 28살인 사원조회
SELECT * FROM My_Table Where No_Emp IN ('0000', '0004', '0008')
AND Age IN(20, 24, 28)

3-1)-4. BetWeen(~부터 ~까지)

--나이가 20살-25살까지의 사원조회
SELECT * FROM My_Table WHERE Age BETWEEN 20 AND 25

--나이가 사원번호가 '0000'-'0010'까지이거나 나이가 30-40살인 사원의 이름조회
SELECT Age FROM My_Table WHERE No_EMP BETWEEN ('0000' AND '0010') 
OR (Age BETWEEN 30 AND 40)

3-2) Insert 문법

--INSERT INTO 테이블명(칼럼1,칼럼2,칼럼3,....) values(데이터1,데이터2,데이터3,......)
INSERT INTO My_Table(no_emp,nm_kor,age) values('dz000','홍길동',20)

3-2)-1. 다른 테이블의 데이터를 Insert 하는 방법

--일부 칼럼만 복사
INSERT INTO 복사 될 테이블명(칼럼1, 칼럼2, 칼럼3, ...)
SELECT 칼럼1, 칼럼2, 칼럼3, ... FROM 복사할 테이블 명

--전체 복사
INSERT INTO 복사될 테이블 명
SELECT * FROM 복사할 테이블 명

3-2)-2. 예제

--일부 칼럼만 복사
INSERT INTO MyTable_01(NO_EMP, NM_KOR, AGE)
SELECT NO_EMP, NM_KOR, AGE FROM MyTable

--전체 복사
INSERT INTO MyTable_01
SELECT * FROM MyTable

3-3) Update 문과 트랜잭션

3-3)-1. 예제-1

3-3)-2. 예제-2

3-3)-3. 예제-3

3-3)-4. 예제-4

3-3)-5. 예제-5

3-4) DELETE Query

3-5) ALIAS(별칭, AS)

4. DCL(Data Control Language, 데이터 제시어)

5. Tranaction

6. TCL(Transaction Control Language, Transaction 제어 언어