์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ๋ธ๋์น ํ์ธ
- ์ฝ๋๋ธ๋ก
- ๋ธ๋์น ์์ฑ
- markdown
- branch ํ์ธ
- ![rejected]
- ๋ธ๋์น ์ญ์
- ๋งํฌ๋ค์ด
- Git๋ช ๋ น์ด
- branch ์์ฑ
- branch ์ญ์
- ์ฝ๋๋ธ๋ญ
- Today
- Total
DevLog
SQL ๊ธฐ๋ณธ๋ฌธ๋ฒ ๋ณธ๋ฌธ
๊ธฐ๋ณธ ์ฟผ๋ฆฌ๋ฌธ ์์๋ณด๊ธฐ
๋ค์์ SQL์ ์ฌ์ฉ์ ํ์ํ ๊ธฐ๋ณธ ๋ฌธ๋ฒ์ ๋๋ค.
- Select
- Where
- And, Or, Not
- Order By
- Insert Into
- Null Values
- Update
- Delete
- Count
- Like
- Wildcards
- Aliases
- Joins
- Inner Join
- Left Join
- Right Join
- Group By
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ์ฉ์ด
- SQL Create DB
- SQL Drop DB
- SQL Create Table
- SQL Drop Table
- SQL Alter Table
- SQL Not Null
- SQL Unique
- SQL Primary Key
- SQL Foreign Key
- SQL Default
- SQL Auto Increment
- SQL Dates
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ๋ช ๋ น์ด
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ ๋ฐ ํ ์ด๋ธ ์์ฑ์ ๋ํด ์์๋ด ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ
CREATE DATABASE ๋ฐ์ดํฐ๋ฒ ์ด์ค_์ด๋ฆ;
[์ฝ๋] ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด์ฉํด ํ ์ด๋ธ์ ๋ง๋ค๊ฑฐ๋ ์์ ํ๊ฑฐ๋ ์ญ์ ํ๋ ๋ฑ์ ์์ ์ ํ๋ ค๋ฉด, ๋จผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๊ฒ ๋ค๋ ๋ช ๋ น์ ์ ๋ฌํด์ผ ํฉ๋๋ค.
USE ๋ฐ์ดํฐ๋ฒ ์ด์ค_์ด๋ฆ;
[์ฝ๋] ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํ ์ด๋ธ ์์ฑ
USE
๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํ๋ค๋ฉด, ์ด์ ํ
์ด๋ธ์ ๋ง๋ค ์ ์์ต๋๋ค. ๋ค์์ user๋ผ๋ ํ
์ด๋ธ์ ๋ง๋๋ ์์ ์
๋๋ค. ํ
์ด๋ธ์ ํ๋(ํ์ ์ด)์ ํจ๊ป ๋ง๋ค์ด์ผ ํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ํ๋ ์กฐ๊ฑด์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
ํ๋ ์ด๋ฆ | ํ๋ ํ์ | ๊ทธ ์ธ์ ์์ฑ |
---|---|---|
id | ์ซ์ | Primary key์ด๋ฉด์ ์๋ ์ฆ๊ฐํ๋๋ก ์ค์ (์ดํ์ ์ฒ์ฒํ ๋ฐฐ์๋๋ค) |
name | ๋ฌธ์์ด (์ต๋ 255๊ฐ์ ๋ฌธ์) | |
๋ฌธ์์ด (์ต๋ 255๊ฐ์ ๋ฌธ์) |
[ํ] user ํ ์ด๋ธ ์์
CREATE TABLE user (
id int PRIMARY KEY AUTO_INCREMENT,
name varchar(255),
email varchar(255)
);
[์ฝ๋] user ํ ์ด๋ธ์ ์์ฑํฉ๋๋ค.
SQL ์ฝ์์์ Enter ํค๋ฅผ ์ด์ฉํด ์ฌ๋ฌ ์ค์ ์ฝ๋๋ฅผ ์
๋ ฅํ ์ ์์ต๋๋ค. ์์ ๊ฐ์ด ์
๋ ฅํ๊ณ , ๋ค์์์ ์ค๋ช
ํ DESCRIBE
๋ช
๋ น์ด๋ฅผ ์ด์ฉํด ํ
์ด๋ธ ์ ๋ณด๋ฅผ ํ์ธํฉ๋๋ค.
ํ ์ด๋ธ ์ ๋ณด ํ์ธ
๋ค์์ ๋ช ๋ น์ด๋ฅผ ํตํด ํ ์ด๋ธ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
DESCRIBE user;
[์ฝ๋] user ํ ์ด๋ธ์ ์ ๋ณด๋ฅผ ํ์ธํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด user ํ ์ด๋ธ์ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
mysql> describe user;
+-------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
| email | varchar(255) | YES | | NULL | |
+-------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
[์์] user ํ ์ด๋ธ์ ์ ๋ณด๋ฅผ ํ์ธํฉ๋๋ค.
SQL ๋ช ๋ น์ด ๊ฐ๋ตํ๊ฒ ์ดํด๋ณด๊ธฐ
MySQL์์ ์์ฃผ ์ฌ์ฉํ๋ ๋ช ๋ น์ด ๋ช ๊ฐ์ง๋ฅผ ๊ฐ๋ตํ๊ฒ ์ดํด๋ด ๋๋ค.
SELECT
- SELECT๋ ๋ฐ์ดํฐ์ ์ ํฌํจ๋ ํน์ฑ์ ํน์ ํฉ๋๋ค.[์ฝ๋] ์ผ๋ฐ ๋ฌธ์์ด[์ฝ๋] ์ซ์[์ฝ๋] ๊ฐ๋จํ ์ฐ์ฐ
SELECT 15 + 3
SELECT 2
SELECT 'hello world'
FROM
- ํ ์ด๋ธ๊ณผ ๊ด๋ จํ ์์ ์ ํ ๊ฒฝ์ฐ ๋ฐ๋์ ์ ๋ ฅํด์ผ ํฉ๋๋ค. FROM ๋ค์๋ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํด๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ๋ช ์ํฉ๋๋ค.[์ฝ๋] ํน์ ํน์ฑ์ ํ ์ด๋ธ์์ ์ฌ์ฉ[์ฝ๋] ๋ช ๊ฐ์ง์ ํน์ฑ์ ํ ์ด๋ธ์์ ์ฌ์ฉ[์ฝ๋] ํ ์ด๋ธ์ ๋ชจ๋ ํน์ฑ์ ์ ํ
- * ๋ ์์ผ๋์นด๋ (wildcard) ๋ก ์ ๋ถ ์ ํํ ๋์ ์ฌ์ฉ๋ฉ๋๋ค.
SELECT * FROM ํ ์ด๋ธ_์ด๋ฆ
SELECT ํน์ฑ_1, ํน์ฑ_2 FROM ํ ์ด๋ธ_์ด๋ฆ
SELECT ํน์ฑ_1 FROM ํ ์ด๋ธ_์ด๋ฆ
WHERE
- ํํฐ ์ญํ ์ ํ๋ ์ฟผ๋ฆฌ๋ฌธ์ ๋๋ค. WHERE์ ์ ํ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.[์ฝ๋] ํน์ ๊ฐ๊ณผ ๋์ผํ ๋ฐ์ดํฐ ์ฐพ๊ธฐ[์ฝ๋] ํน์ ๊ฐ์ ์ ์ธํ ๊ฐ์ ์ฐพ๊ธฐ[์ฝ๋] ํน์ ๊ฐ๋ณด๋ค ํฌ๊ฑฐ๋ ์์ ๋ฐ์ดํฐ๋ฅผ ํํฐํ ๋์๋ '<', '>', ๋น๊ตํ๋ ๊ฐ์ ํฌํจํ๋ '์ด์', '์ดํ' ๊ฐ์ '<=', '>=' ์ ์ฌ์ฉํฉ๋๋ค.[์ฝ๋] ๋ฌธ์์ด์์ ํน์ ๊ฐ๊ณผ ๋น์ทํ ๊ฐ๋ค์ ํํฐํ ๋์๋ 'LIKE'์ '%' ํน์ '*' ๋ฅผ ์ฌ์ฉํฉ๋๋ค.[์ฝ๋] ๋ฆฌ์คํธ์ ๊ฐ๋ค๊ณผ ์ผ์นํ๋ ๋ฐ์ดํฐ๋ฅผ ํํฐํ ๋์๋ 'IN' ์ ์ฌ์ฉํฉ๋๋ค.[์ฝ๋] ๊ฐ์ด ์๋ ๊ฒฝ์ฐ 'NULL' ์ ์ฐพ์ ๋์๋ 'IS' ์ ๊ฐ์ด ์ฌ์ฉํฉ๋๋ค.[์ฝ๋] ๊ฐ์ด ์๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ ๋์๋ 'NOT' ์ ์ถ๊ฐํด ์ด์ฉํฉ๋๋ค.
SELECT * FROM ํ ์ด๋ธ_์ด๋ฆ WHERE ํน์ฑ_1 IS NOT NULL
SELECT * FROM ํ ์ด๋ธ_์ด๋ฆ WHERE ํน์ฑ_1 IS NULL
SELECT ํน์ฑ_1, ํน์ฑ_2 FROM ํ ์ด๋ธ_์ด๋ฆ WHERE ํน์ฑ_2 IN ("ํน์ ๊ฐ_1", "ํน์ ๊ฐ_2")
SELECT ํน์ฑ_1, ํน์ฑ_2 FROM ํ ์ด๋ธ_์ด๋ฆ WHERE ํน์ฑ_2 LIKE "%ํน์ ๋ฌธ์์ด%"
SELECT ํน์ฑ_1, ํน์ฑ_2 FROM ํ ์ด๋ธ_์ด๋ฆ WHERE ํน์ฑ_1 > "ํน์ ๊ฐ" SELECT ํน์ฑ_1, ํน์ฑ_2 FROM ํ ์ด๋ธ_์ด๋ฆ WHERE ํน์ฑ_1 <= "ํน์ ๊ฐ"
SELECT ํน์ฑ_1, ํน์ฑ_2 FROM ํ ์ด๋ธ_์ด๋ฆ WHERE ํน์ฑ_2 <> "ํน์ ๊ฐ"
SELECT ํน์ฑ_1, ํน์ฑ_2 FROM ํ ์ด๋ธ_์ด๋ฆ WHERE ํน์ฑ_1 = "ํน์ ๊ฐ"
ORDER BY
- ๋๋ ค๋ฐ๋ ๋ฐ์ดํฐ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ค ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ์ฌ ์ถ๋ ฅํ ์ง ๊ฒฐ์ ํฉ๋๋ค. ORDER BY๋ ์ ํ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.[์ฝ๋] ๊ธฐ๋ณธ ์ ๋ ฌ์ ์ค๋ฆ์ฐจ์์ ๋๋ค.[์ฝ๋] ๋ด๋ฆผ์ฐจ์์ผ๋ก๋ ์ ๋ ฌํ ์ ์์ต๋๋ค.
SELECT * FROM ํ ์ด๋ธ_์ด๋ฆ ORDER BY ํน์ฑ_1 DESC
SELECT * FROM ํ ์ด๋ธ_์ด๋ฆ ORDER BY ํน์ฑ_1
LIMIT
- ๊ฒฐ๊ณผ๋ก ์ถ๋ ฅํ ๋ฐ์ดํฐ์ ๊ฐฏ์๋ฅผ ์ ํ ์ ์์ต๋๋ค. LIMIT์ ์ ํ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฟผ๋ฆฌ๋ฌธ์์ ์ฌ์ฉํ ๋์๋ ๊ฐ์ฅ ๋ง์ง๋ง์ ์ถ๊ฐํฉ๋๋ค.[์ฝ๋] ๋ฐ์ดํฐ ๊ฒฐ๊ณผ๋ฅผ 200๊ฐ๋ง ์ถ๋ ฅํฉ๋๋ค.
SELECT * FROM ํ ์ด๋ธ_์ด๋ฆ LIMIT 200
DISTINCT
- ์ ๋ํฌํ ๊ฐ์ ๋ฐ๊ณ ์ถ์ ๋์๋
SELECT DISTINCT
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.[์ฝ๋] ํน์ฑ_1์ ๊ธฐ์ค์ผ๋ก ์ ๋ํฌํ ๊ฐ๋ค๋ง ์ ํํฉ๋๋ค.[์ฝ๋] ํน์ฑ_1, ํน์ฑ_2, ํน์ฑ_3์ ์ ๋ํฌํ '์กฐํฉ' ๊ฐ๋ค์ ์ ํํฉ๋๋ค. SELECT DISTINCT ํน์ฑ_1 ,ํน์ฑ_2 ,ํน์ฑ_3 FROM ํ ์ด๋ธ_์ด๋ฆ
SELECT DISTINCT ํน์ฑ_1 FROM ํ ์ด๋ธ_์ด๋ฆ
INNER JOIN
INNER JOIN
์ด๋JOIN
์ผ๋ก ์คํํ ์ ์์ต๋๋ค.[์ฝ๋] ๋ ์ด์์ ํ ์ด๋ธ์ ์๋ก ๊ณตํต๋ ๋ถ๋ถ์ ๊ธฐ์ค์ผ๋ก ์ฐ๊ฒฐํฉ๋๋ค.[๊ทธ๋ฆผ] Inner Join์ ์๊ฐ์ ์ผ๋ก ํํํ ์์-
SELECT * FROM ํ ์ด๋ธ_1 JOIN ํ ์ด๋ธ_2 ON ํ ์ด๋ธ_1.ํน์ฑ_A = ํ ์ด๋ธ_2.ํน์ฑ_B
OUTER JOIN
Outer JOIN
์ ๋ค์ํ ์ ํ์ง๊ฐ ์์ต๋๋ค.[์ฝ๋] 'LEFT OUTER JOIN'์ผ๋ก LEFT INCLUSIVE์ ์คํํฉ๋๋ค.[์ฝ๋] 'RIGHT OUTER JOIN'์ผ๋ก RIGHT INCLUSIVE์ ์คํํฉ๋๋ค.SELECT * FROM ํ ์ด๋ธ_1 RIGHT OUTER JOIN ํ ์ด๋ธ_2 ON ํ ์ด๋ธ_1.ํน์ฑ_A = ํ ์ด๋ธ_2.ํน์ฑ_B
SELECT * FROM ํ ์ด๋ธ_1 LEFT OUTER JOIN ํ ์ด๋ธ_2 ON ํ ์ด๋ธ_1.ํน์ฑ_A = ํ ์ด๋ธ_2.ํน์ฑ_B
์ฌ๋ฌ ์ฟผ๋ฆฌ๋ฌธ์ ํ ๋ฒ์ ์จ๋ณด๊ธฐ
- ๋ค์์ Brazil์์ ์จ ๊ณ ๊ฐ์ ๋์๋ณ๋ก ๋ฌถ์ ๋ค์, ๊ฐ ๋์ ์์ ๋ฐ๋ผ ๋ด๋ฆ์ฐจ์ ์ ๋ ฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ CustomerId์ ๋ฐ๋ผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ 3๊ฐ์ ๊ฒฐ๊ณผ๋ง ์์ฒญํ๋ ์์์
๋๋ค.
[์ฝ๋] ์ฌ๋ฌ ์ฟผ๋ฆฌ๋ฌธ์ ํ ๋ฒ์ ์จ๋ณด๊ธฐSELECT c.CustomerId, c.FirstName, count(c.City) as 'City Count' FROM customers AS c JOIN employees AS e ON c.SupportRepId = e.EmployeeId WHERE c.Country = 'Brazil' GROUP BY c.City ORDER BY 3 DESC, c.CustomerId ASC LIMIT 3
- ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ์๋ก ๋ค๋ฅธ ์ฟผ๋ฆฌ๋ฌธ์ด ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก, ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ํํํ ์ ์์ต๋๋ค.
'๐ง๐ปโ๐ป ๊ฐ๋ฐ๊ฐ๋ฐ > Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MySQL foreign key ์กฐํ๋ฐฉ๋ฒ (0) | 2022.01.03 |
---|---|
Database - SQL ๋ด์ฅํจ์ (0) | 2021.11.11 |
Database - ACID (0) | 2021.11.11 |
SQL - DataBase, Table ์ ๋ณด ์ฟผ๋ฆฌ (0) | 2021.10.12 |
MySQL - safe ๋ชจ๋ ํด์ (0) | 2021.10.10 |