14์ผ์ฐจ SQL lite3

์ฐจ์ง€์˜ˆยท2025๋…„ 5์›” 30์ผ

์ƒ์„ฑAI

๋ชฉ๋ก ๋ณด๊ธฐ
14/56
post-thumbnail

๐ŸŸก SQL


๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

INSERT INTO Person (Name, Birthday, Height,Weight)
VALUES ('์ง€๋ฏผ','2001-08-23',169,52);


์ปฌ๋Ÿผ๋ช… ๋ณ„๋ช…์œผ๋กœ ๋ณ€๊ฒฝ

SELECT
    Name AS "์ด๋ฆ„",
    Birthday AS "์ƒ์ผ"
FROM Person;


์กฐ๊ฑด์ ˆ

case๋ฅผ ์‚ฌ์šฉํ•ด ์กฐ๊ฑด์ ˆ์„ ์‚ฌ์šฉํ•œ๋‹ค

SELECT
    Name,
    bdate,
    MM,
    CASE
        WHEN MM = '01' THEN 'Jan.'
        WHEN MM = '02' THEN 'Feb.'
        WHEN MM = '03' THEN 'Mar.'
        WHEN MM = '04' THEN 'Apr.'
        WHEN MM = '05' THEN 'May.'
        WHEN MM = '06' THEN 'Jun.'
        WHEN MM = '07' THEN 'Jul.'      
        WHEN MM = '08' THEN 'Aug.'
        WHEN MM = '09' THEN 'Sep.'
        WHEN MM = '10' THEN 'Oct.'
        WHEN MM = '11' THEN 'Nov.'
        WHEN MM = '12' THEN 'Dec.'
    END Month
FROM BirthdayView;

WHEN MM = '01' THEN 'Jan.'
WHEN MM = '01' -> ์›”์ด 01์ผ๋•Œ / THEN 'Jan.' -> Jan์œผ๋กœ ๋ณ€ํ™˜

๋ฏผ์•„๋Š” bdate๊ฐ€ null์ด์—ฌ์„œ MM๊ณผ Month๊ฐ€ null์ด ๋‚˜์˜จ๋‹ค.


์ง‘๊ณ„ํ•จ์ˆ˜

ํ•จ์ˆ˜์„ค๋ช…
COUNT()๊ฐœ์ˆ˜ ๊ณ„์‚ฐ
SUM()์ดํ•ฉ ๊ณ„์‚ฐ
AVG()ํ‰๊ท  ๊ณ„์‚ฐ
MIN()์ตœ์†Œ๊ฐ’ ๋ฐ˜ํ™˜
MAX()์ตœ๋Œ€๊ฐ’ ๋ฐ˜ํ™˜

โ“ํ…Œ์ด๋ธ” ์•ˆ์— null์ด ๋“ค์–ด๊ฐ€ ์žˆ์œผ๋ฉด?

ํ…Œ์ด๋ธ” ๋งŒ๋“ค๊ธฐ

CREATE TABLE employees (
    id INT,
    name VARCHAR(50),
    salary INT,
    bonus INT
);

INSERT INTO employees (id, name, salary) VALUES
(1, 'Alice', 5000, 300),
(2, 'Bob', NULL, 400),
(3, 'Charlie', 6000, NULL),
(4, 'David', NULL, NULL),
(5, 'Eve', 5500, 500);

SELECT COUNT(*) FROM employees; 
SELECT COUNT(salary) FROM employees;  

COUNT(*),COUNT(salary) ๋Š” ์ฐจ์ด์ ์ด ์žˆ๋‹ค

COUNT(*)COUNT(salary)
NULL ๊ฐ’์„ ํฌํ•จํ•ด countํ•œ๋‹ค.NULL ๊ฐ’์„ ์ œ์™ธํ•œ๋‹ค.

๐ŸŸก ํ•™์ƒ์ •๋ณด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„

student table

CREATE TABLE "Student" (
	"id"	INTEGER NOT NULL,
	"name"	TEXT NOT NULL,
	"address"	TEXT NOT NULL,
	"grade"	INTEGER NOT NULL,
	"birth"	TEXT NOT NULL,
	"depart_number"	INTEGER NOT NULL,
	"score"	INTEGER NOT NULL,
	PRIMARY KEY("id")
); 
INSERT INTO Student (id, name, address, grade, birth, depart_number, score) VALUES
(1, '์ฐจํƒœ์›', '๋Œ€์ „ ์„œ๊ตฌ', 4, '19800102', 10, 7),
(2, '๊น€ํ–ฅ๊ธฐ', '์„œ์šธ ์˜๋“ฑํฌ๊ตฌ', 4, '19901012', 9, 7),
(3, 'ํ•˜์ •์šฐ', '์ธ์ฒœ ๋‚จ๋™๊ตฌ', 4, '19850304', 8, 6),
(4, '์ฃผ์ง€ํ›ˆ', '์„œ์šธ ์˜๋“ฑํฌ๊ตฌ', 3, '19801212', 7, 6),
(5, '๋งˆ๋™์„', '์„œ์šธ ์˜๋“ฑํฌ๊ตฌ', 3, '19840704', 6, 5),
(6, '์ด์ •์žฌ', '์ธ์ฒœ ๋‚จ๋™๊ตฌ', 2, '19870924', 5, 5),
(7, 'ํ™ฉ์ •๋ฏธ', '์„œ์šธ ๊ธˆ์ฒœ๊ตฌ', 2, '19790506', 4, 4),
(8, '์†ก๊ฐ•ํ˜ธ', '์„œ์šธ ๊ตฌ๋กœ๊ตฌ', 2, '19740825', 3, 3),
(9, '๊ฐ•๋™์›', '์ธ์ฒœ ๋‚จ๋™๊ตฌ', 1, '19850613', 2, 2),
(10, '๋ฐ•์„ฑ์›…', '์„œ์šธ ๊ตฌ๋กœ๊ตฌ', 1, '19781018', 1, 1);

Professor table

CREATE TABLE "Professor" (
	"p_number"	INTEGER NOT NULL,
	"p_name"	TEXT NOT NULL,
	"depart_number"	INTEGER NOT NULL,
	PRIMARY KEY("p_number")
);
INSERT INTO Professor (p_number, p_name, depart_number) VALUES
(1, '๊น€๊ต์ˆ˜', 1),
(2, '์ด๊ต์ˆ˜', 3),
(3, '๋ฐ•๊ต์ˆ˜', 5),
(4, '์กฐ๊ต์ˆ˜', 7),
(5, '์ตœ๊ต์ˆ˜', 9),
(6, '์ง€๊ต์ˆ˜', 2),
(7, '์ฐจ๊ต์ˆ˜', 4),
(8, 'ํ™๊ต์ˆ˜', 6),
(9, 'ํ™ฉ๊ต์ˆ˜', 8),
(10, '๊ตฌ๊ต์ˆ˜', 10);

CREATE TABLE "Depart" (
	"b_value"	TEXT,
	"m_value"	TEXT,
	"depart_name"	TEXT,
	"depart_number"	INTEGER NOT NULL,
	PRIMARY KEY("depart_number")
);
INSERT INTO Depart (b_value, m_value, depart_name, depart_number) VALUES
('๊ณตํ•™', '๊ฑด์ถ•', '๊ฑด์ถ•ํ•™๊ณผ', 1),
('๊ณตํ•™', '์‚ฐ์—…', '์‚ฐ์—…๊ณตํ•™๊ณผ', 2),
('๊ต์œก', '์œ ์•„๊ต์œก', '์œ ์•„๊ต์œกํ•™๊ณผ', 3),
('๊ต์œก', '์ค‘๋“ฑ๊ต์œก', '์–ธ์–ด๊ต์œกํ•™๊ณผ', 4),
('์‚ฌํšŒ', '๋ฒ•๋ฅ ', '๋ฒ•ํ•™๊ณผ', 5),
('์‚ฌํšŒ', '์‚ฌํšŒ๊ณผํ•™', '์ •์น˜์™ธ๊ตํ•™๊ณผ', 6),
('์˜ˆ์ฒด๋Šฅ', '๋””์ž์ธ', '์‚ฐ์—…๋””์ž์ธ๊ณผ', 7),
('์˜ˆ์ฒด๋Šฅ', '์Œ์•…', '๊ตญ์•…๊ณผ', 8),
('์ž์—ฐ', '์ƒํ™œ๊ณผํ•™', '๊ฐ€์ •๊ด€๋ฆฌํ•™๊ณผ', 9),
('์ž์—ฐ', '์ƒ๋ฌผ', '์ƒ๋ฌผํ•™๊ณผ', 10);


โ“ ๋ฌธ์ œ

  1. ์‚ฐ์—…๋””์ž์ธ๊ณผ์— ๋“ฑ๋ก๋˜์–ด์žˆ๋Š” ํ•™์ƒ์„ ๊ตฌํ•ด๋ผ
select s.name
from student s  inner join depart d 
on s.depart_number = d.depart_number 
where d.depart_name = '์‚ฐ์—…๋””์ž์ธ๊ณผ';

์ฃผ์ง€ํ›ˆ

  1. ์ •์น˜์™ธ๊ตํ•™๊ณผ ๊ต์ˆ˜๋ฅผ ๊ตฌํ•ด๋ผ
select p.p_name 
from professor p inner join depart d 
on p.depart_number = d.depart_number
where d.depart_name = '์ •์น˜์™ธ๊ตํ•™๊ณผ';

ํ™๊ต์ˆ˜

0๊ฐœ์˜ ๋Œ“๊ธ€