CRUD Operations Explained. What is CRUD? | by Avelon Pang | Geek Culture | Medium
CRUD는 데이터 관리를 위해 필수적으로 지원해야 하는 부분이다. SQL 역시 가능하다.
C → INSERT
R → SELECT
U → UPDATE
D → DELETE
SQL에서는 위와 같은 명령어들로 CRUD가 가능하다. 그리고 이런 명령어들을 DML이라고 한다.
DML(Data Manipulation Language)는 데이터 조작어라고도 하며 데이터베이스(테이블)에 데이터를 추가하거나 이미 저장된 데이터를 조작하는 명령어들이다.
그러면 이제 CRUD를 위한 SQL 구문을 알아보도록 하겠다.
INSERT INTO 테이블명 (속성1, 속성2, ...) VALUES (데이터1, 데이터2, ...);
이때 (당연하지만) 속성과 그 속성에 해당하는 데이터는 같은 순서로 입력해주어야 한다.
예를 들어, 속성이 (name, phone_number, email)
이런 순서로 입력되었다면 추가할 데이터도 VALUES ('손흥민', '01011111111', 'football@google.com')
이런 순서로 입력해주어야 한다.
만약 INSERT INTO 테이블명 () VALUES (데이터1, 데이터2, ...);
이렇게 컬럼명을 명시해주지 않으면 이 테이블의 모든 컬럼의 데이터를 입력해주어야 한다.
주식별자(Primary Key)는 테이블에서 각각의 튜플(레코드)를 유일하게 식별해줄 수 있는 칼럼을 말한다. 그렇기 때문에 중복을 허용하지 않고, NULL값 역시 불가능하다.
만약 테이블을 생성할 때 Primary Key를 설정하지 않았다면 ALTER 명령어로 추가할 수 있다.
ALTER TABLE `테이블명` ADD CONSTRAINT PRIMARY KEY 주식별자명 (PK가 될 컬럼명);
기존 PK를 삭제하는 것은 간단하다.
ALTER TABLE '테이블명' DROP PRIMARY KEY;
UPDATE 테이블명
SET 컬럼명 = 데이터,
컬럼명 = 데이터;
예) UPDATE MEMBER SET name = '황희찬';
이 경우 DB툴을 사용하고 있다면 진짜 할 건지 경고창이 뜬다. name 컬럼의 모든 값을 '황희찬'으로 변경하는 것이기 때문이다.
UPDATE 테이블명
SET 컬럼명 = 데이터,
컬럼명 = 데이터
WHERE 조건;
예) UPDATE MEMBER SET name = '황희찬' WHERE name = '손흥민';
name이 '손흥민'인 튜플의 name을 '황희찬'으로 변경해주는 구문이다.
DELETE FROM 테이블명;
이렇게 하면 이 테이블의 데이터는 다 지워진다...
DELETE FROM 테이블명
WHERE 삭제 조건;
이렇게 삭제 조건을 명시해서 특정 튜플만 삭제하는 경우가 대부분이다.
SELECT 컬럼1, 컬럼2
FROM 테이블명
WHERE 조건;
이 구조가 SQL을 하면서 가장 많이 보게 될 명령문 조합이지 않나 생각한다.
SELECT *
FROM 테이블명;
SELECT문에서 *은 모든 컬럼을 의미한다.
그렇기 때문에 위 구문은 테이블의 모든 데이터를 보여달라는 것과 같다.
ALIAS는 쉽게 말해 컬럼이나 테이블의 별명이라고 생각하면 된다. 이번 쿼리문에서만 사용하는 임시 명칭 정도.
AS
를 사용해 설정해 준다.
# 원본
SELECT name
FROM MEMBER;
# ALIAS 사용
SELECT m.name AS 선수이름
FROM MEMBER AS m;
# AS 없이
SELECT m.name AS 선수이름
FROM MEMBER m;
주로 집계함수나 JOIN문을 작성할 때 사용하게 된다.