DB

[DB/기본] DML

hhaeri 2020. 12. 28. 00:09

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 사이의 모든 값(ab도 포함)

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) 모든 컬럼의 모든 데이터 타입에서 나타날 수 있다.