์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„(25.12.01~)

์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„_๋ณธ์บ ํ”„_data11๊ธฐ ๊น€์„ ์˜_TIL_Day 2

0๏ธโƒฃ 2025. 12. 23. 21:20

1. ์˜ค๋Š˜์˜ ํ•™์Šต

  • '๋ฐ์ดํ„ฐ ๋ฆฌํ„ฐ๋Ÿฌ์‹œ' ๊ฐ•์˜ ์™„๊ฐ•
  • ์‚ฌ์ „์บ ํ”„ ๋•Œ ๋ชปํ–ˆ๋˜ ํ€˜์ŠคํŠธ>SQL ๊ฑท๊ธฐ๋ฐ˜ 1~5
  • SQL ๋ผ์ด๋ธŒ ์„ธ์…˜
  • ์ง๋ฌด ์„ธ์…˜

2. ํ•™์Šต ๋‚ด์šฉ ์ •๋ฆฌ

  • ๋ฐ์ดํ„ฐ ๋ฆฌํ„ฐ๋Ÿฌ์‹œ
1. ๊ฒฐ๊ณผ์™€ ๊ฒฐ๋ก ์˜ ์ฐจ์ด
- ๊ฒฐ๊ณผ: ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ๋ถ„์„, ๋ชจ๋ธ๋ง ํ›„์— ์–ป์–ด์ง„ ๊ตฌ์ฒด์ ์ธ ๋ฐ์ดํ„ฐ์˜ ์ถœ๋ ฅ
            ์ˆซ์ž, ํ†ต๊ณ„, ๊ทธ๋ž˜ํ”ผ, ์ฐจํŠธ ๋“ฑ์˜ ํ˜•ํƒœ
- ๊ฒฐ๋ก : ๋ถ„์„๋œ ๋ฐ์ดํ„ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ด๋Œ์–ด๋‚ธ ์˜๋ฏธ๋‚˜ ํ†ต์ฐฐ
            ๋ฐ์ดํ„ฐ์— ๊ธฐ๋ฐ˜ํ•œ ํ•ด์„, ์ถ”๋ก  ๋˜๋Š” ๊ถŒ๊ณ  ์‚ฌํ•ญ
            *ํ•„์š” ์ด์ƒ์œผ๋กœ ์ž์‹ ์˜ ํ•ด์„์„ ์œตํ•ฉํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜

2. ๊ฒฐ๋ก  ์ •๋ฆฌ ๋ฐฉ๋ฒ•
- ๋ฌธ์ œ์ •์˜, ์ง€ํ‘œ ์„ค์ • ๋‹น์‹œ์˜ ๊ถ๊ทน์  ๋ชฉ์ ์— ๋งž๊ฒŒ ์ •๋ฆฌํ•ด์•ผ ํ•จ.
- ๊ฒฐ๋ก ์„ ๊ณต์œ ํ•  ๋Œ€์ƒ, ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๊ธธ ์›ํ•˜๋Š”์ง€ ๊ณ ๋ คํ•ด์•ผ ํ•จ.
- ๋‹จ์ˆœํ•˜๊ณ  ์‰ฝ๊ฒŒ ์ „๋‹ฌํ•ด์•ผ ํ•จ.
     ใ„ด ํ•ต์‹ฌ ์ง€ํ‘œ ์œ„์ฃผ๋กœ, ์ง€ํ‘œ๋ฅผ ํ•ด์„ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์„ค๋ช…, ์•ก์…˜ ์•„์ดํ…œ ์ œ์‹œ
- ๋ชจ๋“  ๋‚ด์šฉ์„ ๋‹ด์ง€ ๋ง๊ณ , ์ƒ๋Œ€๊ฐ€ ๊ถ๊ธˆํ•ด ํ• ๋งŒ ํ•œ ๋‚ด์šฉ์„ ๋‹ด์•„์„œ ํฅ๋ฏธ ์œ ๋ฐœ (๋””ํ…Œ์ผํ•œ ๋ฌธ์„œ๋Š” ๋ณ„๋„ ์ค€๋น„)
- ๋Œ€์ƒ์ž(๊ณต์œ  ๋ฐ›๋Š” ์‚ฌ๋žŒ)์˜ ํ—ˆ๋“ค์ด ๋‚ฎ์€ ์‹œ๊ฐํ™” ํ™œ์šฉ

3. ๊ฒฐ๋ก  ๋ณด๊ณ ์„œ ํ”Œ๋กœ์šฐ
   1) ์ „์ฒด ๋‚ด์šฉ์„ ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์ •๋ฆฌ
   2) ํ•ด๋‹น ๋ณด๊ณ ์„œ์˜ ๋ฉ”์ธ ์ฃผ์ œ
   3) ํ•ด๋‹น ๋ณด๊ณ ์„œ๋ฅผ ์“ด ์ด์œ ์™€ ์›ํ•˜๋Š” ๋ณ€ํ™”
   4) ๋ฌธ์ œ ์ •์˜ ๋‹จ๊ณ„
   5) ํ•ต์‹ฌ ๋‚ด์šฉ ์ „๊ฐœ
   6) ๊ฒฐ๋ก  ๋ฐ ์•ก์…˜ ์•„์ดํ…œ

 

  • ์‚ฌ์ „์บ ํ”„์— ์žˆ๋˜ SQL ํ€˜์ŠคํŠธ
1. varchar(n) : ๊ฐ€๋ณ€ ๊ธธ์ด ๋ฌธ์ž์—ด
    - ๊ธธ์ด๊ฐ€ ๋‹ค์–‘ํ•œ ๊ฐ’์— ์‚ฌ์šฉ
    - n ๊ฐ’์ด ๋„ˆ๋ฌด ํฌ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚  ์ˆ˜๋„ ์žˆ์Œ / ๋„ˆ๋ฌด ์ž‘์œผ๋ฉด ๋ฐ์ดํ„ฐ ์†์‹ค ๊ฐ€๋Šฅ์„ฑ ์žˆ์Œ.
    - char() : ๊ธธ์ด๊ฐ€ ๊ณ ์ •๋œ ๊ฐ’์— ์‚ฌ์šฉ

<ํ™œ์šฉ>
CREATE TABLE users (
         user_id INT,
         name VARCHAR(50),
         email VARCHAR(100)
);

2. ๋ฐ์ดํ„ฐ ์กฐํšŒ

select ์กฐํšŒํ•  ์ปฌ๋Ÿผ from ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ฌ ํ…Œ์ด๋ธ”
where : ํŠน์ • ์กฐ๊ฑด์˜ ๊ฐ’ ํ•„ํ„ฐ๋ง
group by : ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌถ์–ด์„œ ํ‘œํ˜„ํ•  ๊ธฐ์ค€ ์ปฌ๋Ÿผ
order by : ๋ถˆ๋Ÿฌ์˜จ ๊ฐ’ ์ •๋ ฌ (defult: ์˜ฌ๋ฆผ์ฐจ์ˆœ)
   + desc: ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
limit(n) : ์กฐํšŒํ•  ๋ฐ์ดํ„ฐ ๊ฐ’ ์ œํ•œ
   - order by์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋จ (*๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉ์‹œ, ๋ฐ์ดํ„ฐ๋ฅผ ๋…ธ์ถœํ•˜๋Š” ๊ธฐ์ค€์— ๋Œ€ํ•œ ๋ณด์žฅ์ด ์—†์Œ.)

<์ž‘์„ฑ ์ˆœ์„œ>
SELECT
FROM
WHERE
GROUP BY
ORDER BY
LIMIT

3. ๋ฐ์ดํ„ฐ ์‚ฝ์ž… (insert into)
   : ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ”์— ์ƒˆ๋กœ์šด ํ–‰(row)์„ ์ถ”๊ฐ€
   
   insert into ํ…Œ์ด๋ธ”๋ช… (์ปฌ๋Ÿผ1, ์ปฌ๋Ÿผ2, ์ปฌ๋Ÿผ3...)
   values (๊ฐ’1, ๊ฐ’2, ๊ฐ’3...)


4. ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ (update)
**where๊ฐ€ ์—†์œผ๋ฉด ๋ชจ๋“  ํ–‰์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋จ! ๋Œ€์ฐธ์‚ฌ

UPDATE
 ํ…Œ์ด๋ธ”๋ช…
SET ์ปฌ๋Ÿผ1 = ๊ฐ’1,
        ์ปฌ๋Ÿผ2 = ๊ฐ’2
WHERE ์กฐ๊ฑด;


5. ๋ฐ์ดํ„ฐ ์‚ญ์ œ (delete)
   : ๋ฐ์ดํ„ฐ ํ–‰(row)์„ ์‚ญ์ œ
**where๊ฐ€ ์—†์œผ๋ฉด ๋ชจ๋“  ํ–‰์˜ ๊ฐ’์ด ์‚ญ์ œ๋จ! ๋Œ€์ฐธ์‚ฌ

DELETE FROM ํ…Œ์ด๋ธ”๋ช…
WHERE ์กฐ๊ฑด;


๊ธฐ๋ณธํ‚ค (Primary key)
: ํ…Œ์ด๋ธ” ์•ˆ์—์„œ ๊ฐ ํ–‰์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š” ์ปฌ๋Ÿผ (์ผ๋ จ๋ฒˆํ˜ธ ๊ฐ™์€!)
- ์œ ์ผ์„ฑ: ์ค‘๋ณต๋˜์ง€ ์•Š์•„์•ผ ํ•จ
- not null: ๋น„์›Œ์ ธ ์žˆ์œผ๋ฉด ์•ˆ ๋จ
- ์•ˆ์ •์„ฑ: ์›ฌ๋งŒํ•˜๋ฉด ๋ฐ”๋€Œ์ง€ ์•Š์•„์•ผ ํ•จ

primary key ์ปฌ๋Ÿผ

์™ธ๋ž˜ํ‚ค (Foreign key)
: ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธํ‚ค๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์ปฌ๋Ÿผ

FOREIGN KEY (์ปฌ๋Ÿผ๋ช…)
REFERENCES ํ…Œ์ด๋ธ”(์ปฌ๋Ÿผ)

  • SQL ํ€˜์ŠคํŠธ 
// 1. ํ…Œ์ด๋ธ”์—์„œ ๋ชจ๋“  ์ง์›์˜ ์ด๋ฆ„(name)๊ณผ ์ง๊ธ‰(position)์„ ์„ ํƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
// ์ •๋‹ต
select name,
       position
from sparta_employees;

// 2. ํ…Œ์ด๋ธ”์—์„œ ์ค‘๋ณต ์—†์ด ๋ชจ๋“  ์ง๊ธ‰(position)์„ ์„ ํƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
// ์ •๋‹ต
select distinct position
from sparta_employees;

// 3. ํ…Œ์ด๋ธ”์—์„œ ์—ฐ๋ด‰(salary)์ด 40000๊ณผ 60000 ์‚ฌ์ด์ธ ์ง์›๋“ค์„ ์„ ํƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
// ์ •๋‹ต
select *
from sparta_employees
where selary between 40000 and 60000;

// 4. ํ…Œ์ด๋ธ”์—์„œ ์ž…์‚ฌ์ผ(hire_date)์ด 2023๋…„ 1์›” 1์ผ ์ด์ „์ธ ๋ชจ๋“  ์ง์›๋“ค์„ ์„ ํƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
// ์ •๋‹ต
select *
from sparta_employees
where hire_date < '2023-01-01';
// 5. products ํ…Œ์ด๋ธ”์—์„œ ์ œํ’ˆ ์ด๋ฆ„(product_name)๊ณผ ๊ฐ€๊ฒฉ(price)๋งŒ์„ ์„ ํƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
// ์ •๋‹ต
select produst_name, price
from products;

// 6. products ํ…Œ์ด๋ธ”์—์„œ ์ œํ’ˆ ์ด๋ฆ„์— 'ํ”„๋กœ'๊ฐ€ ํฌํ•จ๋œ ๋ชจ๋“  ์ œํ’ˆ์„ ์„ ํƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
// ์ •๋‹ต
select *
from products
where product_name like '%ํ”„๋กœ%';

// 7. products ํ…Œ์ด๋ธ”์—์„œ ์ œํ’ˆ ์ด๋ฆ„์ด '๊ฐค'๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ์ œํ’ˆ์„ ์„ ํƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
// ์ •๋‹ต
select *
from products
where product_name like '๊ฐค%';

// 8. products ํ…Œ์ด๋ธ”์—์„œ ๋ชจ๋“  ์ œํ’ˆ์„ ๊ตฌ๋งคํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ˆ์„ ๊ณ„์‚ฐํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.
// ์ •๋‹ต
select sum(price)
from products;
// 9. orders ํ…Œ์ด๋ธ”์—์„œ ์ฃผ๋ฌธ ์ˆ˜๋Ÿ‰(amount)์ด 2๊ฐœ ์ด์ƒ์ธ ์ฃผ๋ฌธ์„ ์ง„ํ–‰ํ•œ ์†Œ๋น„์ž์˜ ID(customer_id)๋งŒ ์„ ํƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!
// ์ •๋‹ต
select customer_id
from orders
where amount >= 2;

// 10. orders ํ…Œ์ด๋ธ”์—์„œ 2023๋…„ 11์›” 2์ผ ์ดํ›„์— ์ฃผ๋ฌธ๋œ ์ฃผ๋ฌธ ์ˆ˜๋Ÿ‰(amount)์ด 2๊ฐœ ์ด์ƒ์ธ ์ฃผ๋ฌธ์„ ์„ ํƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!
// ์ •๋‹ต
select *
from orders
where order_date > '2023-11-02' and amount >= 2;

// 11. orders ํ…Œ์ด๋ธ”์—์„œ ์ฃผ๋ฌธ ์ˆ˜๋Ÿ‰์ด 3๊ฐœ ๋ฏธ๋งŒ์ด๋ฉด์„œ ๋ฐฐ์†ก๋น„(shipping_fee)๊ฐ€ 15000์›๋ณด๋‹ค ๋น„์‹ผ ์ฃผ๋ฌธ์„ ์„ ํƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!
// ์ •๋‹ต
select *
from orders
where amount<3 and shipping_fee>15000;

// 12. orders ํ…Œ์ด๋ธ”์—์„œ ๋ฐฐ์†ก๋น„๊ฐ€ ๋†’์€ ๊ธˆ์•ก ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!
// ์ •๋‹ต
select *
from orders
order by shipping_fee desc;
// 13. sparta_students ํ…Œ์ด๋ธ”์—์„œ ๋ชจ๋“  ํ•™์ƒ์˜ ์ด๋ฆ„(name)๊ณผ ํŠธ๋ž™(track)์„ ์„ ํƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!
// ์ •๋‹ต
select name, track
from sparta_students;

// 14. sparta_students ํ…Œ์ด๋ธ”์—์„œ Unity ํŠธ๋ž™ ์†Œ์†์ด ์•„๋‹Œ ํ•™์ƒ๋“ค์„ ์„ ํƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!
//๐Ÿ“Œ์˜ค๋‹ต
select *
from sparta_students
where track <> 'Unity'; --๋ฌธ์ž์—ด์— ''

// 15. sparta_students ํ…Œ์ด๋ธ”์—์„œ ์ž…ํ•™๋…„๋„(enrollment_year)๊ฐ€ 2021๋…„์ธ ํ•™์ƒ๊ณผ 2023๋…„์ธ ํ•™์ƒ์„ ์„ ํƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!
// ์ •๋‹ต
select *
from sparta_students
where enrollment_year in (2021, 2023);

// 16. sparta_students ํ…Œ์ด๋ธ”์—์„œ Node.js ํŠธ๋ž™ ์†Œ์†์ด๊ณ  ํ•™์ ์ด ‘A’์ธ ํ•™์ƒ์˜ ์ž…ํ•™๋…„๋„๋ฅผ ์„ ํƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!
//๐Ÿ“Œ์˜ค๋‹ต
select enrollment_year
from sparta_students
where track='Node.js' and grade='A'; --๋ฌธ์ž์—ด์— ''
//17.team_projects ํ…Œ์ด๋ธ”์—์„œ AWS ์˜ˆ์‚ฐ(aws_cost)์ด 40000 ์ด์ƒ ๋“ค์–ด๊ฐ„ ํ”„๋กœ์ ํŠธ๋“ค์˜ ์ด๋ฆ„์„ ์„ ํƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!
// ์ •๋‹ต
select name
from team_projects
where aws_cost >= 40000;

//18.team_projects ํ…Œ์ด๋ธ”์—์„œ 2022๋…„์— ์‹œ์ž‘๋œ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”! ๋‹จ, start_date < ‘2023-01-01’ ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ณ  ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!
//๐Ÿ“Œ์˜ค๋‹ต
select *
from team_projects
where int(date(start_date, '%y')) = 2022;
//๐Ÿ’กํ•ด์„ค
select *
from team_projects
where year(start_date) = 2022; --year() ๊ฒฐ๊ณผ ํƒ€์ž…: int

//19.team_projects ํ…Œ์ด๋ธ”์—์„œ ํ˜„์žฌ ์ง„ํ–‰์ค‘์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ๋‹จ, ์ง€๊ธˆ ์‹œ์ ์˜ ๋‚ ์งœ๋ฅผ ํ•˜๋“œ์ฝ”๋”ฉํ•ด์„œ ์ฟผ๋ฆฌํ•˜์ง€ ๋ง์•„์ฃผ์„ธ์š”!
//๐Ÿ“Œ์˜ค๋‹ต
//๐Ÿ’กํ•ด์„ค
select *
from team_projects
where curdate() between start_date and end_date; --curdate(): ํ˜„์žฌ ๋‚ ์งœ ๋ฐ˜ํ™˜

//20.team_projects ํ…Œ์ด๋ธ”์—์„œ ๊ฐ ํ”„๋กœ์ ํŠธ์˜ ์ง€์† ๊ธฐ๊ฐ„์„ ์ผ ์ˆ˜๋กœ ๊ณ„์‚ฐํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!
//๐Ÿ“Œ์˜ค๋‹ต
select date((int(end_date)-int(start_date)) + 1), '%d') as "ํ”„๋กœ์ ํŠธ ์ง€์† ๊ธฐ๊ฐ„"
from team_projects
//๐Ÿ’กํ•ด์„ค
select name,
       datediff(day, start_date, end_date) as working_days --๋‚ ์งœ(์ผ) ์ฐจ์ด ๊ณ„์‚ฐ ํ•จ์ˆ˜
from team_projects;
<์˜ค๋‹ต๋…ธํŠธ>
8. ์ง‘๊ณ„ํ•จ์ˆ˜ ์‚ฌ์šฉ ์‹œ, ์ปฌ๋Ÿผ ์ด๋ฆ„์ด ํ•จ์ˆ˜๋กœ ์ถ”์ถœ -> as ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์Œ
14. ๋ฌธ์ž ์‚ฌ์šฉ ์‹œ ์ž‘์€๋”ฐ์˜ดํ‘œ('') ์‚ฌ์šฉํ•ด์•ผ ํ•จ. ๋†“์น˜์ง€ ๋ง๊ธฐ!
18. date_format('๋‚ ์งœ๊ฐ’(๋ฌธ์ž์—ด)' or ์ปฌ๋Ÿผ, '๋‚ ์งœ ์ถœ๋ ฅ ํฌ๋งท(๋ฌธ์ž์—ด)') [๊ฒฐ๊ณผ ํƒ€์ž…: ๋ฌธ์ž์—ด]
     *date(): ๋‚ ์งœ/์‹œ๊ฐ„ ๊ฐ’์—์„œ ๋‚ ์งœ ๋ฐ์ดํ„ฐ๋งŒ ์ถ”์ถœ => ๊ฒฐ๊ณผ ํƒ€์ž…: date
      year('๋‚ ์งœ๊ฐ’(๋ฌธ์ž์—ด)' or ์ปฌ๋Ÿผ) [๊ฒฐ๊ณผํƒ€์ž…: INT]
19. curdate(): ํ˜„์žฌ ๋‚ ์งœ ์ถœ๋ ฅ [๊ฒฐ๊ณผ ํƒ€์ž…: DATE]
      now(): ํ˜„์žฌ ๋‚ ์ฐŒ/์‹œ๊ฐ„ ์ถœ๋ ฅ [๊ฒฐ๊ณผ ํƒ€์ž…: DATETIME]
20. datediff(datepart, start date, end date) [๊ฒฐ๊ณผ ํƒ€์ž…: INT]
       : dateapart์— ๋”ฐ๋ฅธ ์ผ์ž ์ฐจ์ด๋ฅผ ๋ฐ˜ํ™˜
<ํ—ท๊ฐˆ๋ ธ๋˜ ๊ฒƒ>
- where ์กฐ๊ฑด1 and ์กฐ๊ฑด2
   ์กฐ๊ฑด ์—ฌ๋Ÿฌ ๊ฐœ ์‚ฌ์šฉ ์‹œ, and ์‚ฌ์šฉ
- in(ํฌํ•จ1, ํฌํ•จ2)
   in์œผ๋กœ ํฌํ•จํ•˜๋Š” ๊ฐ’ ์กฐ๊ฑด ๋‹ฌ ๋•Œ ๊ด„ํ˜ธ๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•จ.

 

3. ๋‚ด์ผ์˜ ํ•™์Šต

  • 10:00 ~ 12:00 SQL ๋ผ์ด๋ธŒ ์„ธ์…˜
  • 15:00 ~ 18:00 ์ง๋ฌด ์„ธ์…˜
  • SQL ๊ฑท๊ธฐ๋ฐ˜ ํ€˜์ŠคํŠธ ์ด์–ด์„œ ํ•˜๊ธฐ
  • ์•„ํ‹ฐํด: ๋„ทํ”Œ๋ฆญ์Šค์™€ ์•„๋งˆ์กด์€ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์–ด๋–ป๊ฒŒ ํ• ๊นŒ์š”?

4. ํŠœํ„ฐ๋‹˜ pick | ๋ฐ์ดํ„ฐ ๋ฆฌํ„ฐ๋Ÿฌ์‹œ ๊ด€๋ จ ์ฑ… ์ถ”์ฒœ

  • ๋น…๋ฐ์ดํ„ฐ ์‹œ๋Œ€, ์„ฑ๊ณผ๋ฅผ ์ด๋Œ์–ด ๋‚ด๋Š” ๋ฐ์ดํ„ฐ ๋ฌธํ•ด๋ ฅ / ์นด์‹œ์™€๊ธฐ ์š”์‹œํ‚ค
  • ๋กœ์ง€์ปฌ ์”ฝํ‚น / ๋ฐ๋ฃจ์•ผ ํ•˜๋‚˜์ฝ”, ์˜ค์นด๋‹ค ๊ฒŒ์ด์ฝ”