*** 속성 = 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 |