티스토리 뷰
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 세이브포인트명
'자격증 > SQLD' 카테고리의 다른 글
SQLD 오답노트 (0) | 2022.09.07 |
---|---|
SQL가이드 요약: 과목 II SQL 기본 및 활용 - 1장 (2) (0) | 2022.09.06 |
SQL가이드 요약: 과목I 데이터 모델링의 이해 - 2장 (0) | 2022.01.19 |
SQL가이드 요약: 과목I 데이터 모델링의 이해 - 1장 (0) | 2022.01.19 |
댓글
공지사항
최근에 올라온 글