Notice
Recent Posts
Recent Comments
ยซ   2024/12   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
Archives
Today
In Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

A Joyful AI Research Journey๐ŸŒณ๐Ÿ˜Š

[51] 230313 SQL Ch. 2 ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰: 4๊ฐ• Hello World ์‹คํ–‰ํ•˜๊ธฐ, 5๊ฐ• ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ์ฐธ์กฐํ•˜๊ธฐ, 6๊ฐ• ๊ฒ€์ƒ‰ ์กฐ๊ฑด ์ง€์ •ํ•˜๊ธฐ, 7๊ฐ• ์กฐ๊ฑด ์กฐํ•ฉํ•˜๊ธฐ, 8๊ฐ• ํŒจํ„ด ๋งค์นญ์— ์˜ํ•œ ๊ฒ€์ƒ‰ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 51์ผ] ๋ณธ๋ฌธ

๐ŸŒณBootcamp Revision 2023โœจ/Python, Flask, SQL

[51] 230313 SQL Ch. 2 ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰: 4๊ฐ• Hello World ์‹คํ–‰ํ•˜๊ธฐ, 5๊ฐ• ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ์ฐธ์กฐํ•˜๊ธฐ, 6๊ฐ• ๊ฒ€์ƒ‰ ์กฐ๊ฑด ์ง€์ •ํ•˜๊ธฐ, 7๊ฐ• ์กฐ๊ฑด ์กฐํ•ฉํ•˜๊ธฐ, 8๊ฐ• ํŒจํ„ด ๋งค์นญ์— ์˜ํ•œ ๊ฒ€์ƒ‰ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 51์ผ]

yjyuwisely 2023. 3. 13. 10:46

230313 Mon 51st class

Ch. 2 ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰
์ง„๋„: p.  52 ~ (๊ต์žฌ: SQL ์ฒซ๊ฑธ์Œ, ์ €์ž: ์•„์‚ฌ์ด ์•„์ธ ์‹œ)
MySQL Workbench Manual: https://dev.mysql.com/doc/workbench/en/
MySQL ํŠœํ† ๋ฆฌ์–ผ: https://www.tutorialspoint.com/mysql/

SQLD ์š”์•ฝ pdf: https://yurimac.tistory.com/40
์ฑ… ์š”์•ฝ (9p) pdf: https://brunch.co.kr/@ydy702/10

 

SQL ์ฒซ๊ฑธ์Œ | ์•„์‚ฌ์ด ์•„์ธ ์‹œ - ๊ต๋ณด๋ฌธ๊ณ 

SQL ์ฒซ๊ฑธ์Œ | ์™•์ดˆ๋ณด๋ฅผ ์œ„ํ•œ ์ •๋ง ์‰ฌ์šด SQL ์ž…๋ฌธ์„œ๋ฅผ ๋งŒ๋‚˜๋ณด์ž!๋ณธ๊ฒฉ์ ์ธ ๋น…๋ฐ์ดํ„ฐ ์‹œ๋Œ€์— ์ ‘์–ด๋“ค๋ฉด์„œ ๊ธฐ์กด ๋Œ€๋น„ ๋” ํšจ์œจ์ ์ด๊ณ  ํญ๋„“์€ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•œ ์ˆ˜์š”๊ฐ€ ์ปค์งˆ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€๋˜๋Š” ๊ฐ€์šด๋ฐ, SQ

product.kyobobook.co.kr

์˜ค๋Š˜ ๋ฐฐ์šด ๊ฒƒ ์ค‘ ๊ธฐ์–ตํ•  ๊ฒƒ์„ ์ •๋ฆฌํ–ˆ๋‹ค.


๋‚ด๊ฐ€ ๋ชฐ๋ž๋˜ ๊ฒƒ ์ •๋ฆฌ 

- ๊ตฌ์˜ ์ˆœ์„œ์™€ ์ƒ๋žต p. 67
๊ตฌ์˜ ์ˆœ์„œ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์–ด ๋ฐ”๊ฟ”์ ์„ ์ˆ˜ ์—†๋‹ค. (SELECT ๊ตฌ → FROM ๊ตฌ → WHERE ๊ตฌ)

- no ์—ด ๊ฐ’์ด 2๊ฐ€ ์•„๋‹Œ ํ–‰๋งŒ ๊ฒ€์ƒ‰ p. 70

SELECT * FROM sample21;
-- WHERE๊ตฌ๋กœ no ์—ด ๊ฐ’์ด 2๊ฐ€ ์•„๋‹Œ ํ–‰๋งŒ ์ถ”์ถœ
SELECT * FROM sample21 WHERE no<>2;

<> ์—ฐ์‚ฐ์ž: ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์ธ์ง€๋ฅผ ๋น„๊ตํ•˜๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค.

- NULL ๊ฐ’์„ ๊ฒ€์ƒ‰ํ•  ๊ฒฝ์šฐ์—๋Š” IS NULL์„ ์‚ฌ์šฉํ•œ๋‹ค. p. 73

- AND๋Š” OR์— ๋น„ํ•ด ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋†’๋‹ค. p. 80

ํŒจํ„ด ๋งค์นญ ๊ฒ€์ƒ‰ p. 84
%(๋ชจ๋“  ๋ฌธ์ž) _(ํ•˜๋‚˜์˜ ๋ฌธ์ž)
like 'SQL%' like 'SQL_'
SQL๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ž์—ด(๋ฌธ์žฅ)๋งŒ  SQL๋กœ ์‹œ์ž‘ํ•˜๋˜, ์ด ๊ธ€์ž์ˆ˜๊ฐ€ 4๊ธ€์ž์ธ ๋ฌธ์žฅ 
like '%SQL%' like '_SQL_'
SQL๋‹จ์–ด๊ฐ€ ํฌํ•จ๋œ ๋ฌธ์žฅ
(์ค‘๊ฐ„์— SQL ๋“ค์–ด๊ฐ€๋Š” / ์‹œ์ž‘ํ•˜๋Š” / ๋๋‚˜๋Š” ๋ฌธ์ž์—ด)
SQL๋‹จ์–ด๊ฐ€ ํฌํ•จํ•˜๋˜, ์ด ๊ธ€์ž์ˆ˜๊ฐ€ 5๊ธ€์ž์ธ ๋ฌธ์žฅ 
like '%SQL' like '_SQL'
SQL๋กœ ๋๋‚˜๋Š” ๋ฌธ์ž์—ด๋งŒ SQL๋กœ ๋๋‚˜๋˜, ์ด ๊ธ€์ž์ˆ˜๊ฐ€ 4๊ธ€์ž์ธ ๋ฌธ์žฅ 

ํ˜„ ๊ต์žฌ์—์„œ ๋ฆฌํ„ฐ๋Ÿด(literal): ์ž๋ฃŒํ˜•์— ๋งž๊ฒŒ ํ‘œ๊ธฐํ•œ ์ƒ์ˆ˜๊ฐ’

์•„๋ž˜๋Š” ์ž๋ฐ” ์šฉ์–ด์ง‘์—์„œ ๋‚˜์˜จ ๊ฒƒ
ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” ์ƒ์ˆ˜๋ฅผ “๊ฐ’์„ ํ•œ ๋ฒˆ ์ €์žฅํ•˜๋ฉด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ๋ณ€์ˆ˜”๋กœ ์ •์˜

๋ฆฌํ„ฐ๋Ÿด literal: ์†Œ์Šค ์ฝ”๋“œ ๋‚ด์—์„œ ์ง์ ‘ ์ž…๋ ฅ๋œ ๊ฐ’


Ch. 2 ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰

์ฑ…์˜ ๋ชฉ์ฐจ
__04๊ฐ•__Hello World ์‹คํ–‰ํ•˜๊ธฐ
1. 'SELECT * FROM ํ…Œ์ด๋ธ”๋ช…' ์‹คํ–‰
2. SELECT ๋ช…๋ น ๊ตฌ๋ฌธ
3. ์˜ˆ์•ฝ์–ด์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋ช…
4. Hellow World๋ฅผ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ = ํ…Œ์ด๋ธ”
5. ๊ฐ’์ด ์—†๋Š” ๋ฐ์ดํ„ฐ = NULL

__05๊ฐ•__ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ์ฐธ์กฐํ•˜๊ธฐ
1. DESC ๋ช…๋ น
2. ์ž๋ฃŒํ˜• 

__06๊ฐ•__๊ฒ€์ƒ‰ ์กฐ๊ฑด ์ง€์ •ํ•˜๊ธฐ
1. SELECT ๊ตฌ์—์„œ ์—ด ์ง€์ •ํ•˜๊ธฐ
2. WHERE ๊ตฌ์—์„œ ํ–‰ ์ง€์ •ํ•˜๊ธฐ
3. ๋ฌธ์ž์—ดํ˜•์˜ ์ƒ์ˆ˜
4. NULL๊ฐ’ ๊ฒ€์ƒ‰
5. ๋น„๊ต ์—ฐ์‚ฐ์ž

__07๊ฐ•__์กฐ๊ฑด ์กฐํ•ฉํ•˜๊ธฐ
1. AND๋กœ ์กฐํ•ฉํ•˜๊ธฐ
2. OR๋กœ ์กฐํ•ฉํ•˜๊ธฐ
3. AND์™€ OR๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ฃผ์˜ํ•  ์ 
4. NOT์œผ๋กœ ์กฐํ•ฉ

__08๊ฐ•__ํŒจํ„ด ๋งค์นญ์— ์˜ํ•œ ๊ฒ€์ƒ‰
1. LIKE๋กœ ํŒจํ„ด ๋งค์นญํ•˜๊ธฐ
2. LIKE๋กœ %๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ
3. ๋ฌธ์ž์—ด ์ƒ์ˆ˜ '์˜ ์ด์Šค์ผ€์ดํ”„!

4๊ฐ• Hello World ์‹คํ–‰ํ•˜๊ธฐ

4.1 'SELECT * FROM ํ…Œ์ด๋ธ”๋ช…' ์‹คํ–‰

SELECT ๋ช…๋ น

SELECT * FROM sample21;

4.2 SELECT ๋ช…๋ น ๊ตฌ๋ฌธ

์• ์Šคํ„ฐ๋ฆฌ์Šคํฌ(*)๋Š” ๋ชจ๋“  ์—ด

Point: *๋Š” ๋ชจ๋“  ์—ด์„ ์˜๋ฏธํ•˜๋Š” ๋ฉ”ํƒ€๋ฌธ์ž์ด๋‹ค. SQL ๋ช…๋ น์€ ๋ช‡ ๊ฐœ์˜ ๊ตฌ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.


4.3 ์˜ˆ์•ฝ์–ด์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋ช…

Point: ์˜ˆ์•ฝ์–ด์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋ช…์€ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ณ„ํ•˜์ง€ ์•Š๋Š”๋‹ค.


4.4 Hellow World๋ฅผ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ = ํ…Œ์ด๋ธ”

- ์—ด(์ปฌ๋Ÿผ/ํ•„๋“œ): no, name, birthday, address
- ์—ด ์ด๋ฆ„: address
- ํ–‰(๋ ˆ์ฝ”๋“œ): ๋Œ€๊ตฌ๊ด‘์—ญ์‹œ ์ˆ˜์„ฑ๊ตฌ, ๋Œ€๊ตฌ๊ด‘์—ญ์‹œ ๋™๊ตฌ, ์„œ์šธํŠน๋ณ„์‹œ ๋งˆํฌ๊ตฌ 
- ์…€: 1976-10-18

Point: ํ…Œ์ด๋ธ”์€ ํ–‰๊ณผ ์—ด๋กœ ๊ตฌ์„ฑ๋œ ํ‘œ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋‹ค.

Point: ๋ฐ์ดํ„ฐ๋Š” ์ž๋ฃŒํ˜•์„ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
์—ด์€ ํ•˜๋‚˜์˜ ์ž๋ฃŒํ˜•๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. 

create table sample21(
	no int,
        name varchar(20),
        birthday date,
        address varchar(40)
)

4.5 ๊ฐ’์ด ์—†๋Š” ๋ฐ์ดํ„ฐ = NULL

NULL = ๋น„์–ด์žˆ๋Š” ์…€
Point: NULL์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด์žˆ์ง€ ์•Š์€ ๊ฒƒ์„ ์˜๋ฏธํ•˜๋Š” ํŠน๋ณ„ํ•œ ๊ฐ’์ด๋‹ค.


5๊ฐ• ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ์ฐธ์กฐํ•˜๊ธฐ (DESC = DESCRIBE) 

DESC ๋ช…๋ น: ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค. 
์ฐธ์กฐ: ์ฐธ๊ณ ๋กœ ๋น„๊ตํ•˜๊ณ  ๋Œ€์กฐํ•˜์—ฌ ๋ณด๋‹ค.

The DESC command is used to sort the data returned in descending order.
The DESC command is a short form of the DESCRIBE command.

DESC ํ…Œ์ด๋ธ”๋ช…

5.1 DESC ๋ช…๋ น

mysql>DESC sample21;

Key: ๊ธฐ๋ณธํ‚ค ๋“ฑ 
Default: ๊ธฐ๋ณธ๊ฐ’


5.2 ์ž๋ฃŒํ˜• p. 63

1) INTEGER ํ˜•
์ˆ˜์น˜ํ˜•์˜ ํ•˜๋‚˜๋กœ ์ •์ˆ˜๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค. ์†Œ์ˆ˜์ ์€ ํฌํ•จ๋  ์ˆ˜ ์—†๋‹ค.

2) CHAR ํ˜• 
๋ฌธ์ž์—ด์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค. ์—ด์˜ ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ์ง€์ •ํ•ด์•ผํ•œ๋‹ค. 
ex) CHAR(10)์œผ๋กœ ์ž๋ฃŒํ˜•์„ ์ง€์ •ํ–ˆ์„ ๊ฒฝ์šฐ ์ตœ๋Œ€ 10๋ฌธ์ž๋กœ ๋œ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
์–ธ์ œ๋‚˜ ๊ณ ์ •๋œ ๊ธธ์ด๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ๋‹ค. ∴ '๊ณ ์ • ๊ธธ์ด ๋ฌธ์ž์—ด' ์ž๋ฃŒํ˜•
์ตœ๋Œ€ ๊ธธ์ด๋ณด๋‹ค ์ž‘์€ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•  ๊ฒฝ์šฐ ๊ณต๋ฐฑ๋ฌธ์ž๋กœ ๋‚˜๋จธ์ง€๋ฅผ ์ฑ„์šด ํ›„ ์ €์žฅํ•˜๊ฒŒ ๋œ๋‹ค. 

3) VARCHAR ํ˜•
๋ฌธ์ž์—ด์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค. ์—ด์˜ ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ์ง€์ •ํ•ด์•ผํ•œ๋‹ค. 
๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ์— ๋งž์ถฐ ์ €์žฅ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๋„ ๋ณ€๊ฒฝ๋œ๋‹ค.  ∴ '๊ฐ€๋ณ€ ๊ธธ์ด ๋ฌธ์ž์—ด' ์ž๋ฃŒํ˜•

create table test(            
     name char(5) char(5) ์ • ์ž ๋ฐ” O O
     name varchar(5)
)
varchar(5) ์ • ์ž ๋ฐ” X X

4) DATE ํ˜•
๋‚ ์งœ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค. ex) '2013๋…„ 3์›” 23์ผ'
์—ฐ์›์ผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•์ด๋‹ค.

The SYSDATE() function returns the current date and time.
Note: The date and time is returned as "YYYY-MM-DD HH:MM:SS" (string) or as YYYYMMDDHHMMSS (numeric).

์ฐธ๊ณ 

5) TIME ํ˜•
์‹œ๊ฐ„์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค. ex) '12์‹œ 30๋ถ„ 20์ดˆ'
์‹œ๋ถ„์ดˆ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•์ด๋‹ค.

Point: ๋ฌธ์ž์—ดํ˜•์—๋Š” ๊ณ ์ • ๊ธธ์ด์™€ ๊ฐ€๋ณ€ ๊ธธ์ด๊ฐ€ ์žˆ๋‹ค.


6๊ฐ• ๊ฒ€์ƒ‰ ์กฐ๊ฑด ์ง€์ •ํ•˜๊ธฐ p. 65

SELECT ๊ตฌ์™€ WHERE ๊ตฌ

SELECT ์—ด1, ์—ด2 FROM ํ…Œ์ด๋ธ”๋ช… WHERE ์กฐ๊ฑด์‹

6.1 SELECT ๊ตฌ์—์„œ ์—ด ์ง€์ •ํ•˜๊ธฐ

SELECT ๊ตฌ์—์„œ ์—ด ์ง€์ • 

SELECT ์—ด1, ์—ด2 ... FROM ํ…Œ์ด๋ธ”๋ช…

์˜ˆ์ œ) no ์—ด๊ณผ name ์—ด ์„ ํƒํ•˜๊ธฐ

SELECT * FROM sample21;
-- no ์—ด๊ณผ name ์—ด ๊ฐ’๋งŒ ์ฝ์–ด๋ณด๊ธฐ
SELECT no, name FROM sample21;

name, address ์—ด ๊ฐ’๋งŒ ์ฝ์–ด๋ณธ๋‹ค.
์ˆœ์„œ๋Š” ์ƒ๊ด€์—†๋‹ค. (์—๋Ÿฌ ๋ฐœ์ƒX)


Point: SELECT ๊ตฌ์—์„œ ๊ฒฐ๊ณผ๋กœ ํ‘œ์‹œํ•˜๊ณ  ์‹ถ์€ ์—ด์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.


6.2 WHERE ๊ตฌ์—์„œ ํ–‰ ์ง€์ •ํ•˜๊ธฐ p. 67

WHERE ๊ตฌ๋กœ ํ–‰ ์ถ”์ถœ

SELECT ์—ด FROM ํ…Œ์ด๋ธ”๋ช… WHERE ์กฐ๊ฑด์‹

1) ๊ตฌ์˜ ์ˆœ์„œ์™€ ์ƒ๋žต p. 67

๊ตฌ์˜ ์ˆœ์„œ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์–ด ๋ฐ”๊ฟ”์ ์„ ์ˆ˜ ์—†๋‹ค. (SELECT ๊ตฌ FROM ๊ตฌ WHERE ๊ตฌ)
๋งŒ์•ฝ WHERE ๊ตฌ๋ฅผ ์ƒ๋žตํ•  ๊ฒฝ์šฐ๋Š” ํ…Œ์ด๋ธ” ๋‚ด์˜ ๋ชจ๋“  ํ–‰์ด ๊ฒ€์ƒ‰ ๋Œ€์ƒ์ด ๋œ๋‹ค.


2) WHERE ๊ตฌ

์˜ˆ์ œ) no ์—ด์˜ ๊ฐ’์ด 2์ธ ํ–‰๋งŒ ๊ฒ€์ƒ‰

SELECT * FROM sample21;
-- WHERE๊ตฌ๋กœ no ์—ด ๊ฐ’์ด 2์ธ ํ–‰๋งŒ ์ถ”์ถœ
SELECT * FROM sample21 WHERE no = 2;


Point: WHERE ๊ตฌ์˜ ์กฐ๊ฑด์— ์ผ์น˜ํ•˜๋Š” ํ–‰๋งŒ ๊ฒฐ๊ณผ๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค.


3) ์กฐ๊ฑด์‹

no(์—ด) =(์—ฐ์‚ฐ์ž) 2(์ƒ์ˆ˜) ∴ no ์—ด์˜ ๊ฐ’์ด 2์™€ ๋™์ผํ•œ ๊ฒฝ์šฐ ์ฐธ์ด๋œ๋‹ค.
= ์—ฐ์‚ฐ์ž: ์„œ๋กœ ๊ฐ™์€ ๊ฐ’์ธ์ง€๋ฅผ ๋น„๊ตํ•˜๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค.

Point: ์กฐ๊ฑด์‹์€ ์ฐธ ๋˜๋Š” ๊ฑฐ์ง“์˜ ์ง„๋ฆฌ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์‹์œผ๋กœ ๋น„๊ต ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด ํ‘œํ˜„ํ•œ๋‹ค.

no ์—ด ๊ฐ’์ด 2๊ฐ€ ์•„๋‹Œ ํ–‰๋งŒ ์ถ”์ถœํ•œ๋‹ค.


4) ๊ฐ’์ด ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฝ์šฐ '<>'

์˜ˆ์ œ) no ์—ด ๊ฐ’์ด 2๊ฐ€ ์•„๋‹Œ ํ–‰๋งŒ ๊ฒ€์ƒ‰ p. 70

SELECT * FROM sample21;
-- WHERE๊ตฌ๋กœ no ์—ด ๊ฐ’์ด 2๊ฐ€ ์•„๋‹Œ ํ–‰๋งŒ ์ถ”์ถœ
SELECT * FROM sample21 WHERE no<>2;

<> ์—ฐ์‚ฐ์ž: ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์ธ์ง€๋ฅผ ๋น„๊ตํ•˜๋Š” ์—ฐ์‚ฐ์ž์ด๋‹ค.

Point: <>์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด '๊ฐ’์ด ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฝ์šฐ' ์ฐธ์ด ๋˜๋Š” ์กฐ๊ฑด์‹์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ณต์ˆ˜์˜ ํ–‰์ด ๋ฐ˜ํ™˜๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ์กฐ๊ฑด์‹์— ์ผ์น˜ํ•˜๋Š” ํ–‰์ด ์ „ํ˜€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ์•„๋ฌด๊ฒƒ๋„ ๋ฐ˜ํ™˜๋˜์ง€ ์•Š๋Š”๋‹ค. 


6.3 ๋ฌธ์ž์—ดํ˜•์˜ ์ƒ์ˆ˜

์˜ˆ์ œ) name ์—ด ๊ฐ’์ด '๋ฐ•์ค€์šฉ'์ธ ํ–‰๋งŒ ์ถ”์ถœ

SELECT * FROM sample21;
-- WHERE ๊ตฌ๋กœ name ์—ด ๊ฐ’์ด '๋ฐ•์ค€์šฉ'์ธ ํ–‰๋งŒ ์ถ”์ถœ
SELECT * FROM sample21 WHERE name = '๋ฐ•์ค€์šฉ';

๋ฌธ์ž์—ด์„ ๋น„๊ตํ•  ๊ฒฝ์šฐ๋Š” '๋ฐ•์ค€์šฉ'์ฒ˜๋Ÿผ ์‹ฑ๊ธ€์ฟผํŠธ(' ')๋กœ ๋‘˜๋Ÿฌ์‹ธ ํ‘œ๊ธฐํ•ด์•ผ ํ•œ๋‹ค.
๋‚ ์งœ์‹œ๊ฐ„ํ˜•์˜ ๊ฒฝ์šฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. 

์ž๋ฃŒํ˜•์— ๋งž๊ฒŒ ํ‘œ๊ธฐํ•œ ์ƒ์ˆ˜๊ฐ’: ๋ฆฌํ„ฐ๋Ÿด(literal)

-- ์ˆ˜์น˜ํ˜• ์ƒ์ˆ˜
1
100
-3.8

-- ๋ฌธ์ž์—ดํ˜• ์ƒ์ˆ˜
'ABC'
'๋ฐ•์ค€์šฉ'

-- ๋‚ ์งœ์‹œ๊ฐ„ํ˜• ์ƒ์ˆ˜
'2013-01-25'
'2013-03-03 10:21:00'

6.4 NULL๊ฐ’ ๊ฒ€์ƒ‰ p. 73

์˜ˆ์ œ) IS NULL๋กœ NULL ๊ฒ€์ƒ‰ํ•˜๊ธฐ

SELECT * FROM sample21;
-- IS NULL์„ ์‚ฌ์šฉํ•ด birthday๊ฐ€ NULL์ธ ํ–‰๋งŒ ์ถ”์ถœ
SELECT * FROM sample21 WHERE birthday IS NULL;

Point: NULL ๊ฐ’์„ ๊ฒ€์ƒ‰ํ•  ๊ฒฝ์šฐ์—๋Š” IS NULL์„ ์‚ฌ์šฉํ•œ๋‹ค. 
IS๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์“ด๋‹ค. 


6.5 ๋น„๊ต ์—ฐ์‚ฐ์ž

= ์—ฐ์‚ฐ์ž
<> ์—ฐ์‚ฐ์ž
> ์—ฐ์‚ฐ์ž
>= ์—ฐ์‚ฐ์ž
< ์—ฐ์‚ฐ์ž
<= ์—ฐ์‚ฐ์ž


7๊ฐ• ์กฐ๊ฑด ์กฐํ•ฉํ•˜๊ธฐ p. 75

์กฐ๊ฑด์‹1 AND ์กฐ๊ฑด์‹2
์กฐ๊ฑด์‹1 OR ์กฐ๊ฑด์‹2
NOT ์กฐ๊ฑด์‹

7.1 AND๋กœ ์กฐํ•ฉํ•˜๊ธฐ

์กฐ๊ฑด์‹1 AND ์กฐ๊ฑด์‹2

 

-- sample24 ํ…Œ์ด๋ธ”์˜ ๋‚ด์šฉ์„ ์ฐธ์กฐํ•œ๋‹ค.
SELECT * FROM sample24;

-- a ์—ด๊ณผ b ์—ด์ด ๋ชจ๋‘ 0์ด ์•„๋‹Œ ํ–‰ ๊ฒ€์ƒ‰
SELECT * FROM sample24 WHERE a<>0 AND a<>0;

AND ์—ฐ์‚ฐ์ž๋Š” ๋…ผ๋ฆฌ๊ณฑ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž์ด๋‹ค. 
Point: AND๋กœ ์กฐ๊ฑด์‹์„ ์—ฐ๊ฒฐํ•˜๋ฉด ๋ชจ๋“  ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํ–‰์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค. 


7.2 OR๋กœ ์กฐํ•ฉํ•˜๊ธฐ

์กฐ๊ฑด์‹1 OR ์กฐ๊ฑด์‹2
SELECT * FROM sample24;
-- a ์—ด์ด 0์ด ์•„๋‹ˆ๊ฑฐ๋‚˜ b์—ด์ด 0์ด ์•„๋‹Œ ํ–‰์„ ๊ฒ€์ƒ‰
SELECT * FROM sample24 WHERE a <> 0 OR b <> 0;

OR ์—ฐ์‚ฐ์ž๋Š” ๋…ผ๋ฆฌํ•ฉ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž์ด๋‹ค.
Point: OR๋กœ ์กฐ๊ฑด์‹์„ ์—ฐ๊ฒฐํ•˜๋ฉด ์–ด๋Š ์ชฝ์ด๋“  ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํ–‰์„ ๋ชจ๋‘ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.


7.3 AND์™€ OR๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ฃผ์˜ํ•  ์ 

์˜ฌ๋ฐ”๋ฅธ ์กฐ๊ฑด์‹

SELECT * FROM sample24 WHERE no = 1 OR no = 2;

1) AND์™€ OR๋ฅผ ์กฐํ•ฉํ•ด ์‚ฌ์šฉํ•˜๊ธฐ

SELECT * FROM sample24;
-- a ์—ด์ด 1 ๋˜๋Š” 2์ด๊ณ , b ์—ด์ด 1 ๋˜๋Š” 2์ธ ํ–‰์„ ๊ฒ€์ƒ‰
SELECT * FROM sample24 WHERE a = 1 OR a = 2 AND b = 1 OR b = 2;

์กฐ๊ฑด์‹ ๊ฒฐ๊ณผ์™€๋Š” ๋‹ค๋ฅด๋‹ค.


2) ์—ฐ์‚ฐ์ž์˜ ์šฐ์„  ์ˆœ์œ„

๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ์ด์œ ๋Š” AND ์ชฝ์ด ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋†’๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 
์ฒ˜์Œ ์›ํ•œ ๋Œ€๋กœ ์กฐ๊ฑด์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ด„ํ˜ธ๋กœ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ๋œ๋‹ค.

Point: AND๋Š” OR์— ๋น„ํ•ด ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋†’๋‹ค. 


7.4 NOT์œผ๋กœ ์กฐํ•ฉ p. 81

NOT ์กฐ๊ฑด์‹

NOT ์—ฐ์‚ฐ์ž๋Š” ์˜ค๋ฅธ์ชฝ์—๋งŒ ํ•ญ๋ชฉ์„ ์ง€์ •ํ•˜๋Š” '๋‹จํ•ญ ์—ฐ์‚ฐ์ž'์ด๋‹ค.
์˜ค๋ฅธ์ชฝ์— ์ง€์ •ํ•œ ์กฐ๊ฑด์‹์˜ ๋ฐ˜๋Œ€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
๋งŒ์•ฝ ์กฐ๊ฑด์‹์ด ์ฐธ์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด NOT์€ ์ด์— ๋ฐ˜ํ•˜๋Š” ๊ฑฐ์ง“์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
์ฃผ๋กœ ๋ณต์ˆ˜์˜ ์กฐ๊ฑด์‹์— ๋Œ€ํ•ด '~์•„๋‹Œ', '~์™ธ์—', '~๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€'๋“ฑ์˜ ์กฐ๊ฑด์„ ์ง€์ •ํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉํ•œ๋‹ค.

SELECT * FROM sample24;
-- a ์—ด์ด 0์ด ์•„๋‹ˆ๊ฑฐ๋‚˜ b์—ด์ด 0์ด ์•„๋‹Œ ํ–‰์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ํ–‰์„ ๊ฒ€์ƒ‰
SELECT * FROM sample24 WHERE NOT(a<>0 OR b<>0);


8๊ฐ• ํŒจํ„ด ๋งค์นญ์— ์˜ํ•œ ๊ฒ€์ƒ‰ (LIKE) p. 83

์—ด LIKE ํŒจํ„ด
ํŒจํ„ด ๋งค์นญ ๊ฒ€์ƒ‰
%(๋ชจ๋“  ๋ฌธ์ž) _(ํ•˜๋‚˜์˜ ๋ฌธ์ž)
like 'SQL%' like 'SQL_'
SQL๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ž์—ด(๋ฌธ์žฅ)๋งŒ  SQL๋กœ ์‹œ์ž‘ํ•˜๋˜, ์ด ๊ธ€์ž์ˆ˜๊ฐ€ 4๊ธ€์ž์ธ ๋ฌธ์žฅ 
like '%SQL%' like '_SQL_'
SQL๋‹จ์–ด๊ฐ€ ํฌํ•จ๋œ ๋ฌธ์žฅ
(์ค‘๊ฐ„์— SQL ๋“ค์–ด๊ฐ€๋Š” / ์‹œ์ž‘ํ•˜๋Š” / ๋๋‚˜๋Š” ๋ฌธ์ž์—ด)
SQL๋‹จ์–ด๊ฐ€ ํฌํ•จํ•˜๋˜, ์ด ๊ธ€์ž์ˆ˜๊ฐ€ 5๊ธ€์ž์ธ ๋ฌธ์žฅ 
like '%SQL' like '_SQL'
SQL๋กœ ๋๋‚˜๋Š” ๋ฌธ์ž์—ด๋งŒ SQL๋กœ ๋๋‚˜๋˜, ์ด ๊ธ€์ž์ˆ˜๊ฐ€ 4๊ธ€์ž์ธ ๋ฌธ์žฅ 

8.1 LIKE๋กœ ํŒจํ„ด ๋งค์นญํ•˜๊ธฐ

์—ด๋ช… LIKE 'ํŒจํ„ด'
-- LIKE์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”ํƒ€๋ฌธ์ž
% _

๋ฉ”ํƒ€ ๋ฌธ์ž: '์™€์ผ๋“œ์นด๋“œ'๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค.
ํŒจํ„ด ๋งค์นญ ์‹œ '์ž„์˜์˜ ๋ฌธ์ž ๋˜๋Š” ๋ฌธ์ž์—ด'์— ๋งค์น˜ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด ์“ฐ์ด๋Š” ํŠน์ˆ˜ ๋ฌธ์ž์ด๋‹ค.
ํผ์„ผํŠธ(%): ์ž„์˜์˜ ๋ฌธ์ž์—ด์„ ์˜๋ฏธํ•œ๋‹ค.
์–ธ๋”์Šค์ฝ”์–ด(_): ์ž„์˜์˜ ๋ฌธ์ž ํ•˜๋‚˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. 

Point: LIKE ์ˆ ์„œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ„ด ๋งค์นญ์œผ๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
ํŒจํ„ด์„ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”ํƒ€๋ฌธ์ž๋กœ๋Š” %์™€ _์ด ์žˆ๋‹ค.

์˜ˆ์ œ) sample25 ํ…Œ์ด๋ธ”

SELECT * FROM sample25;
-- %์€ ์ž„์˜์˜ ๋ฌธ์ž์—ด์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฉ”ํƒ€๋ฌธ์ž 
WHERE text LIKE 'SQL%'

์˜ˆ์ œ) LIKE ์ˆ ์–ด 'SQL%'๋กœ ํŒจํ„ด ๋งค์นญ(์ „๋ฐฉ ์ผ์น˜)

SELECT * FROM sample25;
-- Text ์—ด์ด 'SQL'์„ ํฌํ•จํ•˜๋Š” ํ–‰์„ ๊ฒ€์ƒ‰
SELECT * FROM sample25 WHERE text LIKE 'SQL%';

์˜ˆ์ œ) LIKE ์ˆ ์–ด '%SQL%'๋กœ ํŒจํ„ด ๋งค์นญ(์ค‘๊ฐ„ ์ผ์น˜)

SELECT * FROM sample25;
-- Text ์—ด์ด 'SQL'์„ ํฌํ•จํ•˜๋Š” ํ–‰์„ ๊ฒ€์ƒ‰
SELECT * FROM sample25 WHERE text LIKE '%SQL%';


8.2 LIKE๋กœ %๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ

WHERE text LIKE '%/%%'

์˜ˆ์ œ) LIKE ์ˆ ์–ด๋กœ ํŒจํ„ด ๋งค์นญ

SELECT * FROM sample25;
-- Text ์—ด์ด %๋ฅผ ํฌํ•จํ•˜๋Š” ํ–‰์„ ๊ฒ€์ƒ‰
SELECT * FROM sample25 where text LIKE '%\%%';

'%\%%'
%: ๋ฉ”ํƒ€๋ฌธ์ž % = ์ž„์˜์˜ ๋ฌธ์ž์—ด
\%: % ๊ทธ ์ž์ฒด ๋ฌธ์ž

Point: %๋ฅผ LIKE๋กœ ๊ฒ€์ƒ‰ํ•  ๊ฒฝ์šฐ์—๋Š” \%๋กœ ํ•œ๋‹ค.
_๋ฅผ LIKE๋กœ ๊ฒ€์ƒ‰ํ•  ๊ฒฝ์šฐ์—๋Š” \_๋กœ ํ•œ๋‹ค. 


8.3 ๋ฌธ์ž์—ด ์ƒ์ˆ˜ '์˜ ์ด์Šค์ผ€์ดํ”„! p. 89

ํ‘œ์ค€ SQL์—์„œ๋Š” '๋ฅผ 2๊ฐœ ์—ฐ์†ํ•ด์„œ ๊ธฐ์ˆ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ด์Šค์ผ€์ดํ”„ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
ex) 'It's'๋ผ๋Š” ๋ฌธ์ž์—ด์„ ๋ฌธ์ž์—ด ์ƒ์ˆ˜๋กœ ํ‘œ๊ธฐํ•˜๋ฉด 'It''(2๊ฐœ)s'๋กœ ์“ด๋‹ค.
'ํ•˜๋‚˜๋งŒ ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ์ผ ๊ฒฝ์šฐ '''(2๊ฐœ)'๋กœ ์“ด๋‹ค.

-- ๋ฌธ์ž์—ด ์ƒ์ˆ˜ ์•ˆ์— '๊ธฐ์ˆ ํ•˜๊ธฐ
It's -> 'It''s'     ' -> ''''

Point: '์„ ๋ฌธ์ž์—ด ์ƒ์ˆ˜ ์•ˆ์— ํฌํ•จํ•  ๊ฒฝ์šฐ๋Š” '๋ฅผ 2๊ฐœ ์—ฐ์†ํ•ด์„œ ๊ธฐ์ˆ ํ•œ๋‹ค.


728x90
๋ฐ˜์‘ํ˜•

'๐ŸŒณBootcamp Revision 2023โœจ > Python, Flask, SQL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[52] 230314 SQL Ch 3. ์ •๋ ฌ๊ณผ ์—ฐ์‚ฐ: 9๊ฐ• ์ •๋ ฌ - ORDER BY, 10๊ฐ• ๋ณต์ˆ˜์˜ ์—ด์„ ์ง€์ •ํ•ด ์ •๋ ฌํ•˜๊ธฐ, 11๊ฐ• ๊ฒฐ๊ณผ ํ–‰ ์ œํ•œํ•˜๊ธฐ - LIMIT, 12๊ฐ• ์ˆ˜์น˜ ์—ฐ์‚ฐ, 13๊ฐ• ๋ฌธ์ž์—ด ์—ฐ์‚ฐ, 14๊ฐ• ๋‚ ์งœ ์—ฐ์‚ฐ, 15 CASE ๋ฌธ์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜ํ•˜..  (1) 2023.03.14
[50~55] 230310~230317 SQL ๋ฌธ์ œ ํ’€์–ด๋ณด๊ธฐ (๋ฐ์ดํ„ฐ: Employer, Department) [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 50์ผ~55์ผ]  (1) 2023.03.13
[50] 230310 SQL Ch. 6 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ SQL: 25๊ฐ• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด, 26๊ฐ• ํ…Œ์ด๋ธ” ์ž‘์„ฑ, ์‚ญ์ œ, ๋ณ€๊ฒฝ, 27๊ฐ• ์ œ์•ฝ, 28๊ฐ• ์ธ๋ฑ์Šค ๊ตฌ์กฐ, 29๊ฐ• ์ธ๋ฑ์Šค ์ž‘์„ฑ๊ณผ ์‚ญ์ œ, 30๊ฐ• ๋ทฐ ์ž‘์„ฑ๊ณผ ์‚ญ์ œ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 50์ผ]  (0) 2023.03.10
[49] 230309 SQL Ch. 1 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ SQL: 1๊ฐ• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, 2๊ฐ• ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 49์ผ]  (0) 2023.03.09
Comments