티스토리 뷰

1장 SQL 기본


1. 관계형 데이터베이스 개요

 SQL 문장(명령어) 종류

DML Select
Insert, Update, Delete
DDL Create, Alter, Drop, Rename
DCL Grant, Revoke
TCL Commit, Rollback

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

 

1. 데이터 유형 ★

Char(acter)(길이) Oracle : 최대 2,000 bytes
SQL Sever : 최대 8,000 bytes
'AA' = 'AA '
Varchar(길이) Oracle : Varchar2 최대 4,000 bytes
SQL Server : Varchar 최대 8,000 bytes
'AA' ≠ 'AA '
실제 데이터만큼 자리 차지
Numeric Oracle : Number(전체자리, 소수점자리)
SQL Server : 10가지 타입
Datetime Oracle : 1초 단위 
SQL Server : 3.33ms 단위

 

2. Create Table

--Oracle, SQL Server 공통
Create Table 테이블명 (
	컬럼명 데이터유형 [제약조건][Default 값], 
 	컬럼명 데이터유형 [제약조건][Default 값]
    Constraint PK제약조건명 Primary Key (PK컬럼명), 
    Constraint FK제약조건명 Foreign Key (FK컬럼명) References 참조테이블(참조컬럼) 
);

Create Table 제약조건

Primary Key (기본키) 식별자, 자동 Unique Index 생성, Not Null 속성
Unique Key (고유키) 고유한 데이터 식별, Null 무관
Not Null 입력 필수
Check True or False 로 평가할 수 있는 값의 범위 제한
Foreign Key (외래키) 관계 무결성 제약

 

* 테이블 복사 ★

--Oracle
Create Table 테이블명2 As
Select * from 테이블명1;

--SQL Server
Select * into 테이블명2 from 테이블명1

 

3. Alter Table

 가. Add Column

--Oracle, SQL Server 공통
Alter Table 테이블명 Add 컬럼명 데이터 유형;

--* Oracle의 경우 한 번에 여러 개 추가 가능 *
Alter Table 테이블명 Add (
	컬럼명 데이터 유형,
	컬럼명 데이터 유형
);

 

 나. Drop Column

--Oracle, SQL Server 공통
Alter Table 테이블명 Drop Column 컬럼명

 다. Modify Column ★

--Oracle
Alter Table 테이블명 Modify (컬럼명 데이터 유형);

--SQL Sever
Alter Table 테이블명 Alter (컬럼명 데이터 유형)

 * Rename Column ★

--Oracle 
Alter Table 테이블명 Rename Column 변경전컬럼명 To 변경후컬럼명; 

--SQL Server의 경우, 시스템 저장 프로시저 호출 
sp_rename '스키마.테이블.변경전컬럼명', '변경후컬럼명', 'Column'

 라. Drop Constraint 

--Oracle, SQL Server 공통 
Alter Table 테이블명 Drop Constraint 제약조건명

 마. Add Constraint 

--Oracle, SQL Server 공통 
Alter Table 테이블명 Add Constraint 제약조건명 제약조건 (컬럼명)

Rename Table ★

--Oracle 
Rename 변경전테이블명 To 변경후테이블명; 

--SQL Server의 경우, 시스템 저장 프로시저 호출 
sp_rename '스키마.변경전테이블명', '변경후테이블명'

4. Drop Table 

--Oracle, SQL Server 공통 : Casecade Constraint 옵션은 제약조건도 삭제
Drop Table 테이블명 [Cascade Constraint]

5. Truncate Table 

--Oracle, SQL Server 공통 : 데이터 잘라내기. 테이블 데이터를 초기 상태로. (로그 미발생)
Truncate Table 테이블명

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

 

1. Insert 

--Oracle, SQL Server 공통 
Insert Into 테이블명 (컬럼명, 컬럼명) Values (값, 값); --값을 넣을 컬럼 지정하여 입력
Insert Into 테이블명 Values (값, 값); --전체 컬럼 수에 맞게 입력

 

2. Update 

--Oracle, SQL Server 공통 
Update 테이블명 set 수정할값의컬럼명 = 값 [Where절 이하];

 

3. Delete 

--Oracle, SQL Server 공통 
Delete [From] 테이블명 [Where절 이하];

 

4. Select  

 

* Concatenation ★

--Oracle
Select Player_name || '선수' from Player;

--SQL Server
Select Player_name + '선수' from Player

--Oracle, SQL Server 공통 
Select concat(player_name, '선수') from Player;

4. TCL (Transaction Control Language, 트랜잭션제어어)

 

 1. 트랜잭션의 특징 ★★

원자성(Atomicity) 트랜잭션은 성공적으로 실행되든지 않든지 해야 한다.
All or Nothing
일관성(Consistency) 트랜잭션 실행 전과 후 내용에 잘못이 없어야 한다.
고립성(Isolation) 트랜잭션 실행 중 다른 트랜잭션의 영향을 받지 않아야 한다.
지속성(Durability) 트랜잭션 성공 후 DB 내용 영구 반영

 

 2. Commit

--Oracle 
Commit;

/* SQL Server의 경우 Auto Commit 이므로 
명시적 트랜잭션을 사용하는 경우 Begin Tran 구문이 선행되어야 한다. */
Begin Tran
(...)
Commit

 

3. Rollback

--Oracle 
Rollback;

/* SQL Server의 경우 Auto Commit 이므로 
명시적 트랜잭션을 사용하는 경우 Begin Tran 구문이 선행되어야 한다. */
Begin Tran
(...)
Rollback

 

4. Savepoint ★★

--Oracle 
Savepoint 세이브포인트명;
Rollback To 세이브포인트명;

--SQL Server : Begin Tran 구문이 선행되어야 한다. 
Begin Tran 
(...)
Save Transaction 세이브포인트명
(...)
Rollback Transcation 세이브포인트명

 

댓글
공지사항
최근에 올라온 글