์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- Absolute
- AGI
- ai
- AI agents
- AI engineer
- AI researcher
- ajax
- algorithm
- Algorithms
- aliases
- Array ๊ฐ์ฒด
- ASI
- bayes' theorem
- Bit
- Blur
- BOM
- bootstrap
- canva
- challenges
- ChatGPT
- Today
- In Total
A Joyful AI Research Journey๐ณ๐
[51] 230313 SQL Ch. 2 ํ ์ด๋ธ์์ ๋ฐ์ดํฐ ๊ฒ์: 4๊ฐ Hello World ์คํํ๊ธฐ, 5๊ฐ ํ ์ด๋ธ ๊ตฌ์กฐ ์ฐธ์กฐํ๊ธฐ, 6๊ฐ ๊ฒ์ ์กฐ๊ฑด ์ง์ ํ๊ธฐ, 7๊ฐ ์กฐ๊ฑด ์กฐํฉํ๊ธฐ, 8๊ฐ ํจํด ๋งค์นญ์ ์ํ ๊ฒ์ [K-๋์งํธ ํธ๋ ์ด๋ 51์ผ] ๋ณธ๋ฌธ
[51] 230313 SQL Ch. 2 ํ ์ด๋ธ์์ ๋ฐ์ดํฐ ๊ฒ์: 4๊ฐ Hello World ์คํํ๊ธฐ, 5๊ฐ ํ ์ด๋ธ ๊ตฌ์กฐ ์ฐธ์กฐํ๊ธฐ, 6๊ฐ ๊ฒ์ ์กฐ๊ฑด ์ง์ ํ๊ธฐ, 7๊ฐ ์กฐ๊ฑด ์กฐํฉํ๊ธฐ, 8๊ฐ ํจํด ๋งค์นญ์ ์ํ ๊ฒ์ [K-๋์งํธ ํธ๋ ์ด๋ 51์ผ]
yjyuwisely 2023. 3. 13. 10:46230313 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
์ค๋ ๋ฐฐ์ด ๊ฒ ์ค ๊ธฐ์ตํ ๊ฒ์ ์ ๋ฆฌํ๋ค.
๋ด๊ฐ ๋ชฐ๋๋ ๊ฒ ์ ๋ฆฌ
- ๊ตฌ์ ์์์ ์๋ต 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;
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: ์กฐ๊ฑด์์ ์ฐธ ๋๋ ๊ฑฐ์ง์ ์ง๋ฆฌ๊ฐ์ ๋ฐํํ๋ ์์ผ๋ก ๋น๊ต ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด ํํํ๋ค.
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๊ฐ ์ฐ์ํด์ ๊ธฐ์ ํ๋ค.