SQL Guide
SQL Guide
SQL (Structed Query Language)
RDBMS์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์์ ์กฐ์์ ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ด
๋ฐ์ดํฐ์ ์ฐธ์กฐ, ๋ณ๊ฒฝ, ์ญ์ , ๊ณ์ฐ ๋ฑ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ทธ ์์ ์๋ ํ ์ด๋ธ ๋ฐ ๋ฐ์ดํฐ๊ฐ ํ์
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ ์กฐ์
๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐํ
SHOW DATABASES;
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ
CREATE DATABASE <database_name>;
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํ
USE <database_name>;
.sql ํ์ผ์์ SQL ๋ฌธ ์ฐธ์กฐ
SOURCE <.sql file path>;
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ญ์
DROP DATABASE <database_name>;
ํ ์ด๋ธ์ ๊ธฐ๋ณธ ์กฐ์
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ ์กฐํ
SHOW TABLES;
ํ ์ด๋ธ ์์ฑ
datatype
INTEGER
NUMERIC
CHAR
VARCHAR
DATE
CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, ... )
ํ ์ด๋ธ ์ปฌ๋ผ ์ ๋ณด ํ์
DSCRIBE talble_name;
๊ธฐ์กด์ ํ ์ด๋ธ์ ๋ ์ฝ๋ ์ถ๊ฐ
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3);
๊ธฐ์กด ํ ์ด๋ธ ๋ ์ฝ๋ ๋ณ๊ฒฝ
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;
ํ ์ด๋ธ์์ ๋ ์ฝ๋๋ฅผ ์ญ์
DELETE FROM table_name WHERE condition;
ํ ์ด๋ธ์ ์ญ์
DROP TABLE table_name;
๊ธฐ์กด์ ํ ์ด๋ธ์ ์ปฌ๋ผ์ ์ถ๊ฐ, ์ญ์ ๋๋ ๋ณ๊ฒฝ
## ์ปฌ๋ผ ์ถ๊ฐ ALTER TABLE table_name ADD column_name datatype;
## ์ปฌ๋ผ ์ญ์ ALTER TABLE table_name DROP COLUMN column_name;
## ์ปฌ๋ผ ๋ณ๊ฒฝ ALTER TABLE table_name ALTER COLUMN column_name datatype;
ํ ์ด๋ธ ์ด๋ฆ ๋ณ๊ฒฝ
table-name (x) โ table_name(o)
RENAME TABLE table_name to table_name2;
๋ฐ์ดํฐ ๊ฒ์์ด
SELECT
SELECT * FROM table_name;
SELECT column1, column2, ... FROM table_name;
SELECT DISTINCT
SELECT DISTINCT column1, column2, ... FROM table_name;
WHERE
where์ ์กฐ๊ฑด
๋ฌธ์์ด ๋นํจ (text)
์์น์ ๋น๊ต(numbers)
AND, OR, NOT ๋ฑ์ ๋ ผ๋ฆฌ ์ฐ์ฐ
SELECT product_name, product_type FROM Product WHERE product_type = 'clothes';
GROUP BY
ํน์ ์ปฌ๋ผ์ ํค์ผ ํฉ๊ณ๋ ํ๊ท ์ผ๋ก ํ์
์ง๊ณ ํจ์
COUNT
MAX /MIN
SUM
AVG
SELECT ๋ฌธ์ ์คํ ์์ :
FROM โ WHERE โ GROUP BY โ SELECT
SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Country;
SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s);
Having
์ง๊ณ ํจ์์ ํจ๊ป ์ฌ์ฉ
HAVING vs WHERE
SELECT COUNT(CustomerID), Country FROM Customers Group BY Country HAVING COUNT(CustomerID) > 5;
SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) HAVING condition ORDER BY column_name(s);
ORDER BY
๊บผ๋ธ ๊ฒฐ๊ณผ ์ ๋ ฌ
ASC(์ค๋ฆ์ฐจ์)(default) or DESC(๋ด)์์ฐจ์
SELECT column1, column2, ... FROM table_name ORDER BY column1, column2, .... ASC|DESC;
BETWEEN
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;
LIKE
% : 0๋ฌธ์ ์ด์์ ์์์ ๋ฌธ์์ด
_ : ์์์ ๋ฌธ์
SELECT column1, coulumn2, ... FROM table_name WHERE column1 LIKE pattern;
IN
WHERE์ ํจ๊ป ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๊ฐ ์ง์ ๊ฐ๋ฅ
SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ....);
JOIN
SELECT column_name(s) FROTM table INNER JOIN table2 ON table.column_name = table2.column_name;
VIEW
๊ฐ์์ ํ ์ด๋ธ
ํญ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ต์ ๋ฐ์ดํฐ๋ฅผ ํ์
CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;
## view ์ญ์ DROP VIEW <view_name>;
ํ์
๊ธฐ์กด ํ ์ด๋ธ์ ๊ฐ๊ณตํ ๊ฒ์์ ๋ฐ์ดํฐ ๊ฒ์
SELECT DISTINCT course_id FROM section WHERE semester = 'Fall' AND year= 2018 AND course_id IN ( SELECT course_id FROM section WHERE semester = 'Spring' AND yesr= 2019 );
reference
Etc
How do I get SUM function in MySQL to return '0' if no values are found?
MySQL ๊ณ์ฐํ๊ฑฐ๋ ๋ฌธ์์ด์ ๊ฒฐํฉํด์ ํ์ํ๊ธฐ, MySQL ํจ์ ์ฌ์ฉํ๊ธฐ
OracleSQL - ์ค์ฒฉ ๊ทธ๋ฃนํจ์ / ๋ถ์ํจ์
sql group by 2๊ฐ ์ด์ : ๋๋ ๊ธฐ์ค์ select ์ ์๋ ๋๊ฐ์ด ์ ์ด์ฃผ๋ฉด ๋๋ค.
Last updated