MySQL

MySQL SQL 문법 요약 - 데이터 조작어(DML)

char1ey 2022. 12. 25. 15:50
목차
1. 데이터 조작어(DML)
2. SELECT
3. INSERT
4. UPDATE
5. DELETE
6. 추가 내용

 

 

1. 데이터 조작어(DML)

 

데이터 조작어는 데이터베이스 내의 검색, 삽입, 수정, 삭제의 명령을 수행한다.

 

사용자가 데이터를 처리할 수 있게 하는 도구, 트랜잭션을 다루는 언어이다.

 

  • SELECT
  • INSERT
  • UPDATE
  • DELETE
  • ...

대표적인 데이터 조작어를 간단하게 설명해보자면,

 

SELECT는 데이터를 검색할 떄 사용한다.

INSERT는 데이터를 삽입할 때 사용한다.

UPDATE는 데이터를 수정할 때 사용한다.

DELETE는 데이터를 삭제할 때 사용한다.


2. SELECT

 

 

하나 또는 그 이상의 테이블에서 데이터를 추출하는 SQL의 조작 언어이다.

 

데이터 조작어 중에서 가장 많이 사용된다.

 

SELCET문은 테이블 전체를 불러올 수 있고, 일부 열, 일부 행만 지정하여 불러오는 것도 가능하고,

 

테이블 간에 결합을 하여 검색하는 것이 가능하다.

 

검색문

 

내가 원하는 테이블의 속성(필드)을 선택하여 데이터를 가져오도록 하는 명령어이다.

 

# []는 필수옵션이 아닌 선택옵션이다.

SELECT [PREDICATE] 테이블명.속성명[테이블명.속성명, ...]

FROM 테이블명, [테이블명], ...

[WHERE 조건],

[GROUP BY 컬럼명, 컬럼명, ...] [HAVING 조건식]

[ORDER BY 컬럼명, 컬럼명, ...]

 

[ ] 는 필수 요소가 아니기 때문에 생략이 가능하다.

 

[PREDICATE]는 불러올 튜플(ROW, RECORD)를 제한하는 명령어이며, ALL DISTINCT가 있다.

  • ALL 은 모든 튜플을 검색하며 기호로 *를 쓸 수 있다.
  • DISTINCT는 중복된 튜플이 있다면 하나만 보여준다.

FROM 절은 어느 테이블에서 검색할 것인지를 지정할 수 있다.

 

WHERE 절은 조건을 부여하여 원하는 데이터만 가져올 수 있게 만든다.

 

 

SAMPLE) 이름을 검색하는데, '사원'테이블에서 입사년도가 2023인 이름을 검색한다.

SELECT 이름 FROM 사원 WHERE 입사년도 = '2023';

 

위의 WHERE 절에서는 ' = '이라는 연산자를 사용했다. 이는 비교연산자에 속한다.

 

비교 연산자 이외에도 다른 연산자들이 존재한다. 이는 가장 마지막에 첨부하기로 했다.

 

 

 

검색과 함께 사용하는 ORDER BYGROUP BY가 있는데, 각각 정렬 검색그룹 검색을 지정할 수 있다.

 

 

위의 조건만으로는 결과를 내기 어려운 경우가 있는데 이 때에는 서브 쿼리(SUB QUERY)라 하여 다른 테이블에서 데이터를 조회하여 조

 

건으로 사용할 수 있다.

 

 

결합 검색조인 검색이라고도 하며, 외래키의 개념이 들어간다. 이는 다른 포스팅에서 설명하도록 하고 있다는 것만 알

 

아두도록 하자.

 


3. INSERT

 

 

INSERT 문은 테이블에 데이터를 입력하기 위해 사용한다.

 

사용시 주의사항은 나열된 속성(필드)과 값타입, 개수가 일치해야한다. 그렇지 않으면 원치않는 데이터가 삽입된다.

 

INSERT INTO 테이블명(필드1, 필드2, ...)
VALUES (값1, 값2, ...);

 

SAMPLE) 

 

INSERT INTO 사원(이름, 부서, 입사년도)
VALUES (케빈, 보안팀, 2022);

 

<그림 1> 저장 형태

 

SELECT 문을  활용하여 사용할 수도 있다.

 

INSERT INTO 사원(케빈, 보안팀, 2022)
SELECT * INTO 사원2

 

이렇게 사용하게 되면,  다음과 같이 값을 넣을 수 있다.

 

<그림 2>SELECT문을 활용한 INSERT 결과

 


4. UPDATE

 

 

UPDATE는 이미 존재하는 값을 변경하기 위해 사용된다.

 

데이터 수정에 있어 WHERE절 조건식을 활용하여 조건식에 일치하는 데이터만 바뀌도록 설정 해야한다.

(원치않는 데이터가 대량으로 수정될 수도 있다.)

 

UPDATE 테이블명
SET 필드1 = 변경할 값, 속성2 = 변경할 값
WHERE 조건식;

 

 

SAMPLE)

 

UPDATE 사원 SET 부서 = 보안 WHERE 이름 = '케빈';

 

<그림 3>


5. DELETE

 

 

DELETE 문은 WHERE 절에서 지정한 조건을 만족하는 튜플(ROW, RECORD)만 삭제한다.

(WHERE문 생략시 모든 튜플 삭제!)

 

다만 DROP과는 다르게 작동하므로 확실하게 알고 사용하자.

 

DELETE FROM 테이블명 WHERE 조건문;

 

SAMPLE)

 

DELETE FROM 사원 WHERE 부서 = 보안;

 

<그림 4>

보안팀을 모두 해고했다.


6. 추가 내용

 

WHERE 조건 : 비교 연산자

 

연산자(A와 B는 예시) 기능
A = B 같다
A <> B 혹은 A != B 같지 않다
A < B 보다 작다
A <= B 보다 작거나 같다
A !< B 보다 작지않다
A > B 보다 크다
A >= B 보다 크거나 같다
A !> B 보다 크지않다

 

 

WHERE 조건 : 논리 연산자

 

연산자 기능
AND 제시된 모든 조건을 충족한 데이터만 도출
OR 제시된 조건 중 하나 이상의 조건이 충족하는 데이터 도출
NOT 조건이 충족되지 않는 데이터 도출

 

SAMPLE)

 

SELECT * FROM 사원 WHERE 입사년도 >= 2022 OR 부서 = 물류;

 

 

WHERE 조건 : 그 외 연산자

 

연산자 기능
BETWEEN A AND B A와 B사이의 데이터 도출
IN 제시된 특정 데이터 중 일치하는 데이터 도출
LIKE'A%' 데이터 첫 문자가 'A'로 시작하는 데이터 도출

 

SAMPLE)

 

SELECT * FROM 사원 WHERE 입사년도 BETWEEN 2021 AND 2023;

SELECT * FROM 사원 WHERE 부서 IN ('물류', '보안');

SELECT * FROM 사원 WHERE 이름 LIKE '케%';