[MSSQL] Select, Insert, Update, Delete Query 문법
오늘은 DML 과 그 문법에 대해 정리해 보도록 하자.
DML (Data Manipulation Language) - 데이터 조작어
- 데이터베이스에 입력된 정보를 조회, 입력, 수정, 삭제 기능을 하는 언어
간단하게 이야기 하면, 우리가 흔히 아는 데이터 베이스에 데이터를 등록 하고
등록한 단어를 조회 를 할 수 있게 해주고, 해당 데이터를 수정 또는 삭제 할 수 있도록 하는 언어이다.
이 문법은 MsSql, Oracle 등 대표적인 데이터베이스에서 공통적으로 사용되고 있으니 같이 참고 해도 될거같다.
본격적으로 살펴 보기 전에, Query 란 것에 대해 조금 설명해 보고 넘어가자면
Query 를 해석 하면 '질문' 이다. 근데 우리가 흔히 Select, Insert, Update, Delete 를 쿼리문(Query 문) 등으로
부르는데, 이걸 다시 해석해 보면, 질문하는 문장? 이라고 해석 될 수도 있다.
여기서 질문의 대상이 데이터베이스 이고, 데이터베이스는 0과1로 만들어진 데이터 조합이기 때문에,
데이터 조합에 질문을 하기 위해서는 규칙이 필요하다.
즉, DML 은 우리가 데이터 베이스에 질문하기 위한 원칙 을 담은 '질문원칙' 이라고 할 수 있다.
- Select 는 '테이블에 있는 내용을 알고 싶은데 알려줘'
- Insert 는 '테이블에 이런이런 정보를 입력하고 싶은데 입력해 줄 수 있니?'
- Update 는 '테이블에 있는 내용을 수정하고 싶은데 수정해 줄 수 있니?'
- Delete 는 '테이블에 있는 내용을 삭제 하고 싶은데 삭제 해 줄 수 있니?'
위와 같이 올바르게 질문을 했다면, 데이터 베이스는 그 질문에 대한 데이터 또는 행위 로 답변으로 돌려준다.
DML 은 데이터 베이스를 다루면서 가장 흔하게 쓰는 언어이다.
그 중에서도 오늘은 가장 기본이 되는 CRUD(Create, Read, Update, Delete) 를 위한 문법을 알아 보자.
SELECT - 조회
SELECT * FROM [테이블 명]
Select 문은 테이블에 저장되어 있는 값을 조회 하는 구문이다.
여기서 '*' 은 모든 컬럼을 조회 하겠다는 의미를 가진다.
그렇다면 여기서 원하는 컬럼만을 조회 하고 싶다면
SELECT [Column], [Column] FROM [테이블명]
이렇게 하면 된다. 'Column' 에는 실제 테이블을 구성하고 있는 컬럼의 이름을 넣어 주면 되고,
그 개수는 몇개가 되어도 상관이 없다.
INSERT - 등록
INSERT INTO [테이블명] (Column1, Column2, Column3) VALUES (VALUE1, VALUE2, VALUE3)
Insert 구문은 구성된 테이블에 데이터를 집어 넣는 구문이다.
여기서도 Column 들에는 실제 테이블의 컬럼이름이 들어가면 되고, Value 에는 해당 컬럼에 들어갈 내용을
넣어주면 된다.
여기서 주의?? 할 점은 Column1 - Value1, Column2 - Value2 이렇게 괄호 안에 순서에 맞게 데이터가 입력 된다는 것.
UPDATE - 수정
UPDATE [테이블명] SET Column1 = Value1, Column2 = Value2
Update 는 테이블에 저장된 정보를 수정하기 위한 구문이다.
이 내용도 간단하게 살펴 보면, Column1 의 값을 Value1 으로 변경하겠다고 하는 구문이다.
DELETE - 삭제
DELETE FROM [테이블명]
Delete 는 테이벌에 저장된 정보를 삭제 하기 위한 구문이다.
위에서 살펴본 기본적인 구문은 테이블 내의 모든 데이터를 대상으로 작동하는 구문이다.
그렇다면 이번에는 내가 원하는 조건에 해당하는 데이터만 따로 구분하여 조회하고, 수정하고, 삭제 하고 싶을때,
어떻게 해야 하는지 확인해 보도록 하겠다.
WHERE- 조건
SELECT [Column] FROM [테이블명]
WHERE [조건]
UPDATE [테이블명] SET Column1 = Value1, Column2 = Value2
WHERE [조건]
DELETE FROM [테이블명]
WHERE [조건]
이렇게 위에서 사용한 구문 뒤에 WHERE 와 내가 주고싶은 조건을 주게 되면, 해당 조건에 부합하는 데이터만
별도로 관리 할 수 있게 된다.
예를 들어, [Employee] 라는 테이블 에서 데이터를 조회 할 때,
name 이란 컬럼에 속한 값이 'James' 인 값을 조회하고 싶다고 가정해 보면
SELECT * FROM Employee
WHERE name = 'James'
이렇게 하면 이름이 James 라는 조건에 해당 되는 열(Row) 에 대해서만 데이터를 조회 할 수 있도록 조건을 줄수있다.
마찬가지로 Update, 와 Delete 에도 활용 가능하다.
위와 같은 조건을 Update 와 Delete 에도 줘서 사용해 보면
UPDATE Employee phone = '010-xxxx-xxxx'
WHERE name = 'James'
DELETE FROM Employee
WHERE name = 'James'
이렇게 사용 할 수 있다.
당연한 이야기 이지만, Employee 라는 테이블 안에 name 이라는 Column 이 포함 되어 있어야 사용 가능하다.
WHERE 뒤에 오는 조건에 따라 테이블 조회 속도 등에도 영향을 미치므로 매우 중요한 역활을 한다고 할 수 있다.
그리고 중요한 역활을 하는 만큼, WHERE 뒤에 오는 조건은 여러가지 방법으로 쓰일 수도 있다.
이와 관련된 내용은 다음 글에서 따로 모아 작성해 볼 예정이다.