본문 바로가기

back-end/sql

SQL/ SQK Keywords

*** 속성 = column name,  테이블 = table name

속성attribute = column = field투플tuble = row = record

 

SELECT문의 전체적인 문법

SELECT [ALL|DISTINCT] 속성
FROM 테이블
[WHERE 조건]
[GROUP BY 속성]
[HAVING 조건]
[ORDER BY 속성 [ASC|DESC]];

 

SELECT

데이터베이스에서 데이터를 선택할 때 사용한다.

SELECT 속성
FROM 테이블;

 

SELECT DISTINCT

중복을 제거한 결과를 얻고 싶을 때 SELECT문과 같이 사용한다.

SELECT DISTINCT 속성
FROM 테이블;

 

WHERE

조건에 맞는 결과를 얻고 싶을 때 WHERE 절을 사용한다.

SELECT 속성
FROM 테이블
WHERE 조건;

 

*SQL 비교 연산자

= 같음
>  
<  
>=  
<=  
<> 같지 않음

 

 

AND, OR, NOT

WHERE 절에서 둘 이상의 조건을 가진 행을 얻기 위해 AND, OR, NOT 연산자를 사용할 수 있다.

SELECT 속성
FROM 테이블
WHERE 조건 [AND|OR] 조건;
SELECT 속성
FROM 테이블
WHERE NOT 조건;

 

ORDER BY

결과를 정렬할 때 사용한다. Default는 오름차순, DESC 키워드로 내림차순으로 정렬할 수 있다. ORDER BY 절에 속성을 한 개 이상 입력하는 경우 먼저 오는 속성순으로 정렬하되 중복된 값이 있다면 그 다음 속성순으로 정렬한다.

e.g. 오름차순

SELECT 속성
FROM 테이블
ORDER BY 속성, 속성2, ... [DESC];

e.g. 오름차순 + 내림차순: 속성 1으로 오름차순 정렬하고 속성1의 값이 같다면 속성2를 기준으로 내림차순 정렬

SELECT 속성
FROM 테이블
ORDER BY 속성1 ASC, 속성2 DESC;

 

INSERT INTO  ~ VALUES

테이블에 새로운 행을 추가하기 위해 사용한다. 테이블의 모든 속성에 대해 값을 추가하는 경우 속성 명을 명시해주지 않아도 되지만 아닐 경우 속성 명을 명시하고 그 순서대로 데이터를 입력해야 한다.

INSERT INTO 테이블 [(속성1, 속성2, ...)]
VALUES ('값1', '값2', ...);

 

 

IS NULL / IS NOT NULL

WHERE 절에서 값이 NULL을 갖거나 갖지 않는 데이터를 지정해 검색한다.

SELECT 속성
FROM 테이블
WHERE 속성 [IS NULL|IS NOT NULL];

 

UPDATE ~ SET ~ WHERE

테이블에 존재하는 행의 값을 수정한다. WHERE 절으로 조건을 지정하지 않으면 SET 절에 입력한 모든 속성의 값이 UPDATE 되므로 주의한다.

UPDATE 테이블
SET 속성1='값1', 속성2='값2', ...
WHERE 조건;

 

DELETE

테이블에 존재하는 행을 삭제한다. WHERE 절으로 조건을 지정하지 않으면 모든 행이 DELETE 되므로 주의한다.

DELETE FROM 테이블
WHERE 조건;

 

LIMIT (mysql)

반환되는 행의 개수의 최대값을 지정한다. 많은 데이터를 가진 테이블에서 사용할 수 있다.

SELECT 속성
FROM 테이블
WHERE 조건
LIMIT 반환할 행의 수;

 

MIN, MAX, COUNT, AVG, SUM

테이블에서 최소값, 최대값, 개수, 평균, 총합을 구할 때 사용한다.

SELECT MIN|MAX|COUNT|AVG|SUM(속성)
FROM 테이블
[WHERE 조건];

 

LIKE

WHERE 절에서 사용되어 열의 특정한 패턴을 찾을 때 사용한다.

SELECT 속성
FROM 테이블
WHERE 속성 LIKE 패턴;
LIKE 'a%' a로 시작하는 값을 찾는다
LIKE '%a' a로 끝나는 값을 찾는다
LIKE '%ab%' ab를 포함하는 값을 찾는다(위치 상관X)
LIKE '_a%' a가 두 번째 자리에 있는 값을 찾는다
LIKE 'a_%' a로 시작하고, 길이가 2 이상인 값을 찾는다
LIKE 'a__%' a로 시작하고, 길이가 3 이상인 값을 찾는다
LIKE 'a%b' a로 시작하고 b로 끝나는 값을 찾는다

 

WILDCARDS

문자열에서 하나 이상의 문자를 대체하는 식

    input output
% 0개 이상의 문자를 대체 bl% bl, black, blow, blue
_ 한 개의 문자를 대체 h_t hot, hat, hit
[] [] 안에 있는 하나의 문자를 대체 h[oa]t hot, hat
^ []가 아닌 모든 문자 h[^oa]t hit
- 지정된 범위 내의 모든 문자 c[a-c]t cat, cbt, cct

 

IN

WHERE 절에서 사용되어 여러 값을 지정할 수 있다. 직접적인 값 대신 서브쿼리로 SELECT 문을 넣어 사용할 수 있고, IN에서 선택된 값들을 OR로 연산한다.

SELECT 속성
FROM 테이블
WHERE 조건 IN|NOT IN ('값1', '값2', ...);

 

BETWEEN

WHERE 절에서 사용되어 범위를 지정한다. 시작과 끝 값을 포함한다.

SELECT 속성
FROM 테이블
WHERE 속성 BETWEEN 값1 AND 값2;

 

 

 

 

*보충

UNION

GROUP BY

HAVING

EXISTS

ANY, ALL

SELECT INTO

INSERT INTO SELECT

CASE

NULL FUNCTIONS

SOTRED PROCEDURES

COMMENTS

OPERATORS

 

'back-end > sql' 카테고리의 다른 글

SQL/ 조인 JOIN  (0) 2022.06.13
SQL/ 데이터 모델링  (0) 2022.06.13
SQL/ 키 Key  (0) 2022.06.10
SQL/ 릴레이션의 개념  (0) 2022.06.10