명령어 |
예시 |
의미 |
SHOW DATABASES |
SHOW DATABASES |
현재 서버에 어떤 DB가 있는지 보기 |
USE |
USE database_name |
database_name의 DB를 사용하겠다. |
SHOW TABLES |
|
DB에 있는 테이블 리스트를 보여줘 |
SHOW TABLE STATUS |
|
DB에 있는 테이블 상세리스트를 보여줘를 상세히 보여줘 |
DESCRIBE(DESC) |
DESCRIBE table_name |
table_name 테이블의 정보를 보여줘 |
SELECT |
|
데이터를 가져와 |
SELECT FROM |
SELECT * FROM table_name |
table_name 테이블에 있는 전체 정보를 보여줘 |
|
SELECT colum_name FROM table_name |
table_name 테이블에 colum_name의 colum만 보여줘 |
|
SELECT colum_name_1, colum_name_2 FROM table_name |
table_name 테이블에 colum_name_1과 colum_name_2의 colum만 보여줘 |
SELECT FROM WHERE |
SELECT * FROM table_name WHERE 조건_1 ※ 예) colum_name_1>10 ※ OR, AND, NOT, =, <, >, <=, >=, <>, != 등 사용가능 |
table_name 테이블에 조건1에 맞는 행들만 보여줘 예) colum_name_1이 10보다 큰 행들만 보여줘 |
|
SLEECT * FROM table_name WHERE 조건_1 AND 조건2 |
table_name 테이블에 조건1과 조건2를 동시에 만족하는 행등만 보여줘 |
SELECT FROM WHERE BETWEEN |
SELECT * FROM table_name WHERE colum_name BETWEEN 10 AND 100 |
colum_name이 10 이상 100이하인 데이터 |
SELECT FROM WHERE IN |
SELECT * FROM table_name WHERE colum_name IN('value_1', 'value_2', 'value_3') |
colum_name이 value_1이거나 value_2이거나 value_3인 데이터 |
SELECT FROM WHERE LIKE |
SELECT * FROM table_name WHERE colum_name LIKE 'ABC_' ※_는 1글자 대체 |
ABC로 시작하는 네글자가 단어가있는 모든 데이터 |
|
SELECT * FROM table_name WHERE colum_name LIKE 'ABC%' ※%는 2글자 이상 대체 |
ABC로 시작하는 단어가있는 모든 데이터 |
(SUB QUERY) |
SELECT * FROM table_name WHERE colum_name = ( SELECT coum_name FROM table_name WHERE 조건) |
쿼리문 안에 또다른 쿼리문이 있는 것 ※ 서브 쿼리의 결과가 둘 이상이 되면 에러 발생 |
ANY (SUB QUERY) |
WHERE colum_name > ANY (SUB QUERY) |
서브쿼리의 여러개의 결과 중 한가지만 만족해도 가능 ※ =ANY 는 IN 과 동일한 의미 ※ ANY는 SOME과 동일한 의미 |
ALL (SUB QUERY) |
WHERE colum_name > ALL (SUB QUERY) |
서브쿼리의 모든 결과를 모두 만족해야 함 |
SELECT FROM ORDER BY |
SELECT * FROM table_name ORDER BY colum_name (ASC) |
colum_name을 기준으로 오름차순 정렬 |
|
SELECT * FROM table_name ORDER BY colum_name DESC |
colum_name을 기준으로 내림차순 정렬 |
|
SELECT * FROM table_name ORDER BY colum_name_1 ASC, colum_name_2 DESC |
Colum_name_1을 기준으로 오름차순 정렬 Colum_name_2을 기준으로 내림차순 정렬 |
SELECT FROM WHERE ORDER BY |
|
|
DISTINCT |
SELECT DISTINCT colum_name FROM table_name |
colum_name의 중복된 것은 1개씩만 보여주면서 출력 |
LIMIT |
SELECT * FROM table_name ORDER BY colum_name LIMIT 10 |
상위의 N개만 출력 ※서버의 처리량을 줄이도록함 |
GROUP BY (집계함수를 같이 사용 ex. AVG, MIN, MAX, COUNT, COUNT(DISTINCT), STDEV, VARIANCE |
SELECT colum_name_1 MAX(colum_name_2) FROM table_name GROUP BY colum_name_1 |
colum_name_1 기준으로 그룹화하는데 그중에서 colum_name_2가 가장 큰 데이터만 출력한다. |
GROUP BY AS |
SELECT colum_name_1 AVG(colum_name_2) AS 'Average' FROM table_name GROUP BY colum_name_1 |
colum_name_1 기준으로 그룹화하는데 그중에서 colum_name_2의 평균값을 출력한다. 평균값 데이터의 colum_name은 Average로 표기한다.
|
|
SELECT COUNT(*) FROM table_name |
|
|
SELECT AVG(colum_name) FROM table_name |
|
Having |
|
WHERE과 비슷한 개념으로 조건 제한 집계 함수에 대해서 조건 제한하는 편리한 개념 HAVING 절은 반드시 GROUP BY 절 다음에 나와야함 |
|
SELECT colum_name_1, MAX(colum_name_2) FROM table_name GROUP BY colum_name_1 HAVING MAX (colum_name_2) > 10 |
|
ROLLUP |
|
총합 또는 중간합계가 필요할 경우 사용 GROUP BY 절과 함께 WITH ROLUP 문으로 사용 |
|
SELECT colum_name_1, Name, SUM(colum_name_2) FROM table_name GROUP BY colum_name_1, Name WITH ROLLUP |
묶인 그룹의 총합을 각 그룹의 마지막 행에 출력한다. |
JOIN |
SELECT * FROM table_name_1 JOIN table_name_2 ON table_name1.colum = table_name2.colum |
여러테이블에서 가져온 레크드롤 조합하여 하나의 테이블이나 결과 집합으로 표현 ON 뒤에는 합칠 조건 |
|
SELECT * FROM table_name_1 JOIN table_name_2 ON table_name1.colum = table_name2.colum JOIN table_name_3 ON table_name_1.colum = table_name_3.colum |
세개의 테이블 합칠경우 |