[SQL 핵심요약] SQL 기본
*SQL(Structured Query Language)
-관게형 데이터 베이스에서 데이터 정의,데이터 조작,데이터 제어를 하기 위해 사용하는 언어
명령어 종류 | 명령어 | 특징 |
DML (Data Manipulation Language) |
select, insert, update, delete, merge | 데이터를 조작 Not Auto Commit |
DDL (Data Definition Language) |
create, alter, drop, rename,truncate | 테이블 구조 관련되어 사용 Auto Commit |
DCL (Data Control Language) |
grant, revoke | DB에 접근하기위한 권한 관련 |
TCL (Transcation Control Language) |
commit, rollback, savepoint(저장점) | DML에 조작된 결과를 작업단위(트랜잭션)별로 제어 |
*TABLE
-행과 칼럼의 2차원 구조를 가진 데이터의 저장소, 데이터베이스의 가장 기본적인 개념
-칼럼/열(Column) > 세로방향으로 이루어진 하나하나의 특정 속성
- 행(Row) > 가로방향으로 이루어진 연결된 데이터
*테이블 관계용어들
1) 정규화(Normalization)
-테이블을 분할 후 데이터의 정합성을 확보하고, 불필요한 중복을 줄이는 프로세스
2) 기본키(Primary key)
-테이블에 존재하는 각 행을 한 가지 의미로 특정할 수 있는 한 개 이상의 칼럼
3)외부키(Foreign key)
-다른 테이블의 기본키로 사용되고 있는 관계를 연결하는 칼럼
*제약조건(Constraint)
-데이터의 무결성을 유지하기 위한 데이터베이스의 보편적인 방법으로, 테이블의 특정 칼럼에 설정하는 제약
-ALTER TABLE을 이용해서 추가하거나 초기 테이블 생성 시점부터 제약조건 생성
*제약조건의 종류
구분 | 설명 |
기본키 (Primary Key) |
고유하게 식별하기 위한 기본키 NOT NULL |
고유키 (Unique Key) |
고유하게 식별하기 위한 고유키 NULL 가능 |
NOT NULL | 모든칼럼에서 디폴트상태는 NULL허용,이 제약을 지정하면 해당 칼럼은 입력 필수 |
CEHCK | 입력할 수 있는 값의 범위 등을 제한한다, TRUE or FALSE로 평가할 수 있는 논리식을 지정함 |
외래키 (Foreign Key) |
테이블 간의 관계를 정의하기 위해 기본키를 다른 테이블의 외래키로 복사하는 경우 외래키 생성 외래키 지정시 참조 무결성 제약 옵션 선택 할 수 있다. |
*NULL의 의미
-모르는 값, 정의 되지 않은 미지의 값, 현재 데이터를 입력하지 못하는 경우
- 값의 부재를 의미
- null 과의 모든 비교(IS NULL제외)는 알 수 없음(UNKONWN)을 반환한다.
- 데이터가 없을 때의 공집합과도 다른 의미임
*트랜잭션의 특성
-원자성
-일관성
-고립성
-지속성
*연산자 우선순위
1. 괄호()
2.NOT연산자
3.비교연산자, SQL비교연산자 (Between a AND b, IN,LIKE, IS NULL)
4.AND
5.OR
*관계형 대수의 일반집합 연산자와 SQL문법
연산자 | SQL 문법 |
UNION연산(합집합연산) | UNION / UNION ALL |
INTERSECTION 연산(교집합 연산) | INTERSECT |
DIFFERENCE 연산(차집합 연산) | EXCEPT / MINUS |
PRODUCT 연산(곱집합 연산) | CROSS JOIN |
*NULL값과의 비교연산은 거짓(FALSE)을 리턴한다.
*NULL값과의 수치연산은 NULL값을 리턴한다.
*단일행 NULL관련 함수
NVL(표현식1,표현식2)
ISNULL(표현식1,표현식2)
>> 표현식1이 NULL 이면 표현식2값 리턴
NULLIF(표현식1,표현식2) >> 표현식1이 표현식2와 같으면 NULL, 같지 않으면 표현식1 리턴
COALESCE(표현식1,표현식2) >> 모든 표현식이 NULL 이라면 NULL리턴, 아니면 표현식2리턴