[DB/기본] DML
DML (Data Manipulation Language) : 데이터베이스에 새로운 레코드를 삽입하거나 수정, 삭제하는 언어
1. INSERT
- 레코드 삽입
INSERT INTO 테이블_이름 (칼럼1, 칼럼2, ...) VALUES (값1, 값2, ...);
1) 특징
- 컬럼의 갯수와 값의 갯수가 동일해야한다.
- 컬럼명을 생략할 경우 컬럼 순서에 맞춰 값을 작성해야한다.
2. UPDATE
- 레코드 갱신
UPDATE 테이블_이름 SET 칼럼1 = 값1, 칼럼2 = 값2 WHERE 조건식;
3. DELETE
- 레코드 삭제
DELETE FROM 테이블_이름 WHERE 조건식;
-- FROM 절을 생략하면 전체 데이터가 삭제 된다.
4. SELECT
- 레코드 검색
SELECT 칼럼1, 칼럼2, ... FROM 테이블_이름;
1) DISTINCT : 중복 제거
SELECT DISTINCT 칼럼1, 칼럼2, ...FROM 테이블_이름;
2) SELECT 실행 순서
: FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY
5. WHERE
- UPDATE,DELETE,SELECT 절에서 조건식을 준다.
-- SELECT
SELECT 칼럼 FROM 테이블_이름 WHERE 조건식;
-- UPDATE
UPDATE 테이블_이름 SET 칼럼=값 WHERE 조건식;
-- DELETE
DELETE FROM 테이블_이름 WHERE 조건식;
1) 문자 타입 : 작은 따옴표(')로 묶어서 작성한다.
2) 날짜 타입 : 작은 따옴표(')로 묶어서 작성한다.
3) 숫자 타입 : 숫자 그대로 작성한다.
4) 상수값은 대소문자를 구분한다.
- WHERE NAME = 'ABC' 와 WHERE NAME = 'abc' 의 결과는 다르다.
5) 특징
- WHERE절 연산자 왼쪽은 가능하면 가공하지 않는다.
- WHERE절에서 인덱스가 설정된 컬럼을 사용하면 좋다.
6. 연산자
1) 비교 연산자
연산자 |
의미 |
= |
같다 |
!=, <> |
같지 않다 |
> |
크다 |
>= |
크거나 같다 |
< |
작다 |
<= |
작거나 같다 |
2) 논리 연산자
연산자 |
의미 |
AND |
모든 조건이 참일 때만, 참 값을 반환 |
OR |
조건 중 하나라도 참일 때만, 참 값을 반환 |
NOT |
조건의 결과와 반대되는 결과를 반환 |
3) SQL 연산자
연산자 |
의미 |
|
BETWEEN a AND b |
a 와 b 사이의 모든 값(a와 b도 포함) |
|
IN(a, b, c) |
a, b, c 중 하나 |
|
LIKE |
문자 패턴과 일부만 일치하면 참(%, _ 함께 사용) |
|
와일드 문자 |
% |
모든 문자, 글자 수에 제한이 없음 |
_ |
모든 문자, 글자 수가 1글자로 제한 |
|
ESCAPE |
와일드 문자를 일반 문자처럼 취급 |
|
IS NULL |
NULL 인 데이터 |
|
IS NOT NULL |
NULL 이 아닌 데이터 |
7. NULL
1) 미확인 된 값, 아직 적용되지 않은 값을 의미한다. 그렇다고 0이나 공백을 의미하는 것이 아니다.
2) NULL은 인덱스를 사용할 수 없으므로 NULL값을 특정 값으로 변환 후에 인덱스를 사용할 수 있으나 함부러 변경하는 작업은 조심해야한다.
3) 모든 컬럼의 모든 데이터 타입에서 나타날 수 있다.