[SQL] MySQL 기본 문법
자주 쓰는 SQL 기본 문법을 정리해보자!
SQL 이란 ?
- Structured Query Language의 약자로 구조화된 질의 언어
- 데이터를 조회, 수정, 갱신 할 수 있는 명령어
- MySQL, Oracle, MariaDB등이 있음 ( 아래는 MySQL을 기준으로 작성 )
SELECT
- SELECT 문은 테이블에서 원하는 정보를 불러올 때 사용하는 문법
- 테이블의 열에 속하는 데이터를 불러온다.
- *은 모든 것을 가져오는 것을 뜻함
SELECT col1, col2, ....
FROM table_name;
DISTINCT
- 중복을 배제하고 고유값만을 출력하고자 할 때 사용 ( SELECT와 같이 사용 )
SELECT DISTINCT col1, col2, ...
FROM table_name;
WHERE
- 조건을 걸어 검색하고자 할 때 사용
SELECT col1, col2, ...
FROM table
WHERE condition;
- 비교 연산자
- 같을 때 "="
- 같지 않을 때 "!=", "<>"
- 클 때 "<"
- 크거나 같을 때 "<="
AND, OR, NOT
- 복합 연산자
SELECT col1, col2, ...
FROM table
WHERE condition1 and condition2;
SELECT col1, col2, ....
FROM table
WHERE condition1 or condition2;
SELECT col1, col2, ...
FROM table
WHERE NOT condition;
ORDER BY
- 결과를 오름차순이나 내림차순으로 정렬
SELECT col1, col2, ...
FROM table
ORDER BY col1 ASC|DESC;
SELECT col1, col2, ...
FROM table
ORDER BY FIELD (col1, order1, order2, ...);
일정한 순서 아닐 때
order by field ( 컬럼명, "순서1", "순서2", .... )
임의로 정한 순서대로 보여주려면 아래와 같이 하면 된다.
select * from testbl where sid in (3,4,1) order by field (sid, 3, 4, 1);
LIMIT
- 출력 결과의 갯수를 제한
SELECT * FROM table LIMIT 3;
SELECT * FROM table LIMIT 2, 3;
SELECT * FROM table LIMIT 0, 4;
NULL VALUE
- 값이 NULL인 값을 검색
SELECT col1, col2, ...
FROM table
WHERE col_name IS NOT NULL;
SELECT col1, col2, ...
FROM table
WHERE col_name IS NULL;
IF NULL
- 값이 NULL 인 값 변경
IFNULL(NAME, 'No name')
LIKE
- 특정 패턴을 탐색
SELECT col1, col2, ...
FROM table
WHERE col_name LIKE pattern;
- %, _
- % : 0개 문자 혹은 여러 개의 문자를 의미
- _ : 하나의 문자를 의미
IN()
- WHERE 절 내 여러 값을 설정하고 할 때 사용
SELECT col
FROM table
WHERE col_name IN (val1, val2, ...);
BETWEEN
- WHERE 절 내 검색 조건으로 범위를 지정하고자 할 때 사용
SELECT col1
FROM table
WHERE col_name BETWEEN val1 AND val2;
JOIN
- 두 개나 그 이상의 테이블의 행을 서로 결합하고자 할 때
- INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN 이 존재
SELECT col1
FROM table1 INNER JOIN table2
ON table1.col = table2.col;
SELECT col1
FROM table1 LEFT INNER JOIN table2
ON table1.col = table2.col;
SELECT col1
FROM table1 RIGHT JOIN table2
ON table1.col = table2.col;
SELECT col1
FROM table1 FULL OUTER JOIN table2 # 쉽게말해 합집합, A테이블이 가지고 있는 데이터 , B테이블이 가지고있는 데이터 모두 검색
ON table1.col = table2.col;
SELECT
A.NAME, --A테이블의 NAME조회
B.AGE --B테이블의 AGE조회
FROM EX_TABLE A
CROSS JOIN JOIN_TABLE B # 모든 경우의 수를 전부 표현해주는 방식
UNION
- SELECT의 컬럼 리스트를 기준으로 두 개 이상의 질의 결과를 하나의 테이블로 합치고자 할 때
SELECT col FROM table1
UNION
SELECT col FROM table2;
- 주의 사항
- UNION은 기본적으로 중복값을 제거함, 제거하고 싶지 않을 때는 UNION ALL을 사용해야 한다.
MIN, MAX, ABS, COUNT, AVG, SUM
SELECT MIN (col) FROM table;
SELECT MAX (col) FROM table;
SELECT ABS (col) FROM table;
SELECT COUNT (col) FROM table;
SELECT AVG (col) FROM table;
SELECT SUM (col) FROM table;
GROUP BY
특정 컬럼을 그룹화 하는 GROUP BY
- 집계함수와 함께 사용되어, 결과를 지정한 칼럼에 따라 그룹으로 묶고자 할 때
SELECT col1
FROM table
WHERE condition
GROUP BY col_name;
HAVING
특정 컬럼을 그룹화한 결과에 조건을 거는 HAVING
- WHERE 조건을 걸 수 없는 집계함수에 조건을 걸고자 할 때 사용
SELECT col1
FROM table
WHERE condition
GROUP BY col_name
HAVING condition;
CONCAT
- 여러 문자열을 하나로 합치고자 할 때 사용
SELECT CONCAT(str1, str2, str3, ...);
ROUND(), TRUNC()
- ROUND는 반올림, TRUNC는 버림
SELECT ROUND|TRUNC (val, digit)
FROM table
Author And Source
이 문제에 관하여([SQL] MySQL 기본 문법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hanakim120/SQL-MySQL-기본-문법저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)