컴퓨터 공학/알고리즘

👉 [SQL] 기본적이고 자주 사용하는 SQL 문법 정리

bitcodic 2019. 10. 20. 17:27

Structured Query Language: SQL

데이터 베이스 질의 언어

 

무슨 프로젝트를 하던, DB는 빠질 수 없는 요소이다. 나 또한 그렇기에 자주 사용한다.

하지만 다른 일을 하다가 SQL 작성하려면 종종 까먹기 마련이었다.

기본적인 것만 이 기회에 정리하고자 한다.

 

- INSERT : 데이터 입력 구문

 

INSERT INTO 테이블이름 (필드1, 필드2, ...) VALUES (value1, value2, ...);

 

ex) INSERT INTO user (name, password) VALUES ("Park Boyoung", "asd123");

 

- UPDATE : 데이터 수정 구문

 

UPDATE 테이블이름 SET field1=value1, field2=value2 WHERE field3 = value3;

 

ex) UPDATE user SET name = "Park Bo Young", password = "1q2w3e" WHERE phone_number = "010-XXXX-XXXX" ;

 

- DELETE : 데이터 삭제 구문

 

DELETE FROM 테이블이름 WHERE filed1=value1;

 

ex) DELETE FROM user WHERE name = "Park Bo Young";

 

- SELECT : 데이터를 읽어오는 구문. SELECT 뒤 필드 값들만 보여준다.

 

SELECT field1, field2, ... FROM 테이블이름 WHERE filed1=value1;

 

ex) SELECT name, password FROM user WHERE phone_number = "010-XXXX-XXXX" ;

* SELECT * FROM ---... 으로 변경시 모든 필드값을 포함하여 반환함.

 

- DROP : 개체 삭제

 

DROP TABLE ( 또는 DATABASE ) 테이블명 ( 또는 DB명);

 

ex1) DROP DATABASE USERS;

ex2) DROP TABLE user;

 

-------------------------------------------------------------------------------------------------

추가 가능한 조건절

 

- ORDER BY field DESC (또는 ASC) : 데이터 정렬 순서 변경

 

SELECT * FROM 테이블이름 WHERE field1=value1 ORDER BY field2 DESC;

 

ex) SELECT * FROM user WHERE name="Park Bo Young" ORDER BY birthday DESC;

= 이름이 "Park Bo Young" 인 행들을 birthday 필드값 기준으로 내림차순(DESC, 오름차순은 ASC)으로 정렬하여 반환. 

 

- LIMIT  : 반환 행의 개수 제한

 

SELECT * FROM 테이블이름 WHERE field1=value1 LIMIT 상수;

 

ex) SELECT * FROM user WHERE name="Park Bo Young" LIMIT 5;

= 이름이 "Park Bo Young" 인 행들을 5개까지만 반환.

 

- OFFSET : 반환 행에 대한 오프셋 적용

 

SELECT * FROM 테이블이름 WHERE field1=value1 OFFSET 상수;

 

ex) SELECT * FROM user WHERE name="Park Bo Young" OFFSET 5;

= 이름이 "Park Bo Young" 인 행들을 앞에 5개 빼고 반환.

 

-------------------------------------------------------------------------------------------------

그 외.

 

- LIKE : 해당 값을 포함하면 반환 ( = 의 경우, 같아야만 반환)

 

1) SELECT * FROM 테이블이름 WHERE filed1 LIKE '%value1%';

 

ex) SELECT * FROM user WHERE name LIKE '%Park%';

= 이름에 "Park"이 들어가는 행들 반환.

 

2) SELECT * FROM 테이블이름 WHERE filed1 LIKE '%value1';

 

ex) SELECT * FROM user WHERE name LIKE '%Park';

= 이름이 "Park"로 끝나는 행들 반환.

 

3) SELECT * FROM 테이블이름 WHERE filed1 LIKE 'value1%';

 

ex) SELECT * FROM user WHERE name LIKE 'Park%';

= 이름이 "Park"로 시작하는 행들 반환.