𝘚𝘭𝘰𝘸 𝘣𝘢𝘡 𝘴𝘡𝘦𝘒π˜₯𝘺

[λ°μ΄ν„°λ² μ΄μŠ€/DB] SQL - 2. 데이터 μ‘°μž‘μ–΄(DML) 정리 λ³Έλ¬Έ

λ°μ΄ν„°λ² μ΄μŠ€/이둠

[λ°μ΄ν„°λ² μ΄μŠ€/DB] SQL - 2. 데이터 μ‘°μž‘μ–΄(DML) 정리

.23 2021. 8. 5. 03:37

2. 데이터 μ‘°μž‘μ–΄(DML)

데이터 μ‘°μž‘μ–΄ : ν…Œμ΄λΈ”μ— μƒˆ 데이터λ₯Ό μ‚½μž…ν•˜κ±°λ‚˜, ν…Œμ΄λΈ”μ— μ €μž₯된 데이터λ₯Ό μˆ˜μ •, μ‚­μ œ, κ²€μƒ‰ν•˜λŠ” κΈ°λŠ₯ 제곡


2.1 SQL 데이터 μ‘°μž‘

2.1.1 데이터 μ‚½μž… ; INSERT

데이터 직접 μ‚½μž…

INSERT
INTO ν…Œμ΄λΈ”_이름(속성_리슀트)
VALUES (속성값_리슀트);

- INTO ν‚€μ›Œλ“œμ™€ ν•¨κ»˜ νˆ¬ν”Œμ„ μ‚½μž…ν•  ν…Œμ΄λΈ”μ˜ 이름 μ œμ‹œ ν›„ μ†μ„±μ˜ 이름 λ‚˜μ—΄ ➑️ λ‚˜μ—΄ μˆœμ„œλŒ€λ‘œ VALUE ν‚€μ›Œλ“œ λ‹€μŒμ˜ 속성값듀 μ°¨λ‘€λ‘œ μ‚½μž…

- INTO 절의 속성 이름 & VALUE 절의 속성값 μˆœμ„œλŒ€λ‘œ μΌλŒ€μΌ λŒ€μ‘, κ°œμˆ˜λ„ κ°™μ•„μ•Ό 함

- INTO μ ˆμ—μ„œ [속성_리슀트] μƒλž΅ κ°€λŠ₯(ν…Œμ΄λΈ” μ •μ˜ν•  λ•Œ μ§€μ •ν•œ μ†μ„±μ˜ μˆœμ„œλŒ€λ‘œ VALUE 절의 속성 κ°’ μ‚½μž…)

 

λΆ€μ†μ§ˆμ˜λ¬Έ 이용

INSERT
INTO ν…Œμ΄λΈ”_이름(속성_리슀트)
SELECT문;

 

2.1.2 데이터 검색 ; SELECT

κΈ°λ³Έ 검색

SELECT [ALL / DISTINCT] 속성_리슀트
FROM ν…Œμ΄λΈ”_리슀트;

1. SELECT : ν•¨κ»˜ κ²€μƒ‰ν•˜κ³  싢은 μ†μ„±μ˜ 이름 콀마둜 κ΅¬λΆ„ν•˜μ—¬ μ°¨λ‘€λ‘œ λ‚˜μ—΄

2. FROM : ν•¨κ»˜ κ²€μƒ‰ν•˜κ³  싢은 속성이 μžˆλŠ” ν…Œμ΄λΈ”μ˜ 이름 콀마둜 κ΅¬λΆ„ν•˜μ—¬ μ°¨λ‘€λ‘œ λ‚˜μ—΄

 

ALL : 쀑볡 ν—ˆμš©(μƒλž΅μ‹œ κΈ°λ³Έκ°’)

DISTINCT : 쀑볡 λΉ„ν—ˆμš©

 

SELECT *
FROM ν…Œμ΄λΈ”;

SELECT * : ν…Œμ΄λΈ”μ— μ‘΄μž¬ν•˜λŠ” λͺ¨λ“  속성 검색

 

SELECT 속성 AS λ‹€λ₯Έμ΄λ¦„
FROM ν…Œμ΄λΈ”;

 

μ‚°μˆ μ‹ 이용

SELECT 속성 + (μ‚°μˆ μ‹)
FROM ν…Œμ΄λΈ”;

* μ‚°μˆ μ‹ : μ‚°μˆ μ—°μ‚°μž + μƒμˆ˜

속성값이 μ‹€μ œ λ³€ν•˜λŠ” 것은 μ•„λ‹ˆκ³ , κ²°κ³Ό ν…Œμ΄λΈ”μ—μ„œλ§Œ κ³„μ‚°λœ κ²°κ³Όκ°’ 좜λ ₯

 

μ˜ˆμ‹œ)

SELECT 단가 * 90 AS 할인가
FROM μ œν’ˆ;

 

쑰건 검색

SELECT 속성_리슀트
FROM ν…Œμ΄λΈ”
WHERE 쑰건;

WHERE ν‚€μ›Œλ“œμ™€ ν•¨κ»˜ λΉ„κ΅μ—°μ‚°μž, λ…Όλ¦¬μ—°μ‚°μž μ΄μš©ν•œ 검색쑰건 μ œμ‹œ

 

λΉ„κ΅μ—°μ‚°μž 의미
= κ°™λ‹€
<> λ‹€λ₯΄λ‹€
< μž‘λ‹€
<= μž‘κ±°λ‚˜ κ°™λ‹€
> 크닀
>= ν¬κ±°λ‚˜ κ°™λ‹€

 

λ…Όλ¦¬μ—°μ‚°μž 의미
AND λͺ¨λ“  쑰건을 λ§Œμ‘±ν•΄μ•Ό 검색
OR μ—¬λŸ¬ 쑰건 쀑 ν•œ κ°€μ§€λ§Œ λ§Œμ‘±ν•΄λ„ 검색
NOT 쑰건을 λ§Œμ‘±ν•˜μ§€ μ•ŠλŠ” κ²ƒλ§Œ 검색

 

LIKE 이용(WHERE)

검색쑰건 λΆ€λΆ„μ μœΌλ‘œλ§Œ μ•Œκ³ μžˆλ‹€λ©΄ LIKE 이용.

단, λ¬Έμžμ—΄ μ΄μš©ν•˜λŠ” μ‘°κ±΄μ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯

 

기호 μ„€λͺ…
% 0개 μ΄μƒμ˜ 문자(문자의 λ‚΄μš©κ³Ό 개수 상관 X)
_ 1개의 문자(문자의 λ‚΄μš© 상관 X)

 

μ˜ˆμ‹œ)

SELECT 고객이름, 고객아이디, 포인트
FROM 고객
WHERE 고객이름 LIKE '이%';

이름이 '이'둜 μ‹œμž‘ν•˜λŠ” 고객을 λͺ¨λ‘ 찾음

SELECT 고객이름, 고객아이디, 포인트
FROM 고객
WHERE 고객아이디 LIKE 'J _ _ _';

고객아이디가 J둜 μ‹œμž‘ν•˜κ³  4자(J 포함)인 고객을 λͺ¨λ‘ 찾음

 

NULL 이용(WHERE)

νŠΉμ • 쑰건의 값이 NULL값인지 μ•„λ‹Œμ§€ λΉ„κ΅ν•˜λ €λ©΄ IS (NOT) NULL ν‚€μ›Œλ“œ μ‚¬μš©

 

μ˜ˆμ‹œ)

SELECT 고객이름, 고객아이디
FROM 고객
WHERE 직업 IS NULL;

직업이 μž…λ ₯λ˜μ§€ μ•Šμ€ 고객을 λͺ¨λ‘ 찾음

 

μ •λ ¬ 검색

SELECT 속성_리슀트
FROM ν…Œμ΄λΈ”
[WHERE 쑰건]
ORDER BY 속성_리슀트 [ASC / DESC];

ASC : μ˜€λ¦„μ°¨μˆœ(μƒλž΅μ‹œ κΈ°λ³Έκ°’)

DESC : λ‚΄λ¦Όμ°¨μˆœ

 

μ§‘κ³„ν•¨μˆ˜ 이용

νŠΉμ • 속성 값을 ν†΅κ³„μ μœΌλ‘œ κ³„μ‚°ν•œ κ²°κ³Ό κ²€μƒ‰ν•˜κΈ° μœ„ν•΄ μ§‘κ³„ν•¨μˆ˜(=μ—΄ν•¨μˆ˜) 이용

ν•¨μˆ˜ 의미 μ‚¬μš©κ°€λŠ₯ν•œ λͺ¨λ“  μ†μ„±μ˜ νƒ€μž…
COUNT μ†μ„±κ°’μ˜ 개수 λͺ¨λ“  데이터
MAX μ†μ„±κ°’μ˜ μ΅œλŒ“κ°’
MIN μ†μ„±κ°’μ˜ μ΅œμ†Ÿκ°’
SUM μ†μ„±κ°’μ˜ 합계 숫자 데이터
AVG μ†μ„±κ°’μ˜ 평균

* 주의 : 널인 속성값은 μ œμ™Έν•˜κ³  계산

            WHERE μ ˆμ—μ„œλŠ” μ‚¬μš© X, SELECT / HAVING μ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯

 

그룹별 검색

SELECT 속성_리슀트
FROM ν…Œμ΄λΈ”
[WHERE 쑰건]
GROUP BY 속성 [HAVING 쑰건];

1. GROUP BY ν‚€μ›Œλ“œλ‘œ ν…Œμ΄λΈ”μ—μ„œ νŠΉμ • μ†μ„±μ˜ 값이 같은 νˆ¬ν”Œλ“€ λͺ¨μ•„ 그룹을 λ§Œλ“€κ³ , κ·Έλ£Ήλ³„λ‘œ 검색

2. HAVING ν‚€μ›Œλ“œλ‘œ 그룹에 λŒ€ν•œ 쑰건 μΆ”κ°€

κ·Έλ£Ήλ³„λ‘œ κ²€μƒ‰μ‹œ 그룹을 λ‚˜λˆ„λŠ” 기쀀이 λ˜λŠ” 속성 리슀트 SELECT에도 μž‘μ„±ν•˜λŠ” 것이 μ’‹μŒ

μ§‘κ³„ν•¨μˆ˜λ‚˜ GROUP BY μ ˆμ— μžˆλŠ” 속성 μ™Έμ˜ 속성은 SELECT μ ˆμ— μ‚¬μš© λΆˆκ°€

 

쑰인 검색

    - μ—¬λŸ¬κ°œμ˜ ν…Œμ΄λΈ”μ„ μ—°κ²°ν•˜μ—¬ 데이터λ₯Ό κ²€μƒ‰ν•˜λŠ” 것

    - μ‘°μΈμ†μ„±μ˜ 이름은 달라도 도메인은 λ°˜λ“œμ‹œ κ°™μ•„μ•Ό 됨

    - 일반적으둜 ν…Œμ΄λΈ”μ˜ 관계 λ‚˜νƒ€λ‚΄λŠ” μ™Έλž˜ν‚€ μ‘°μΈμ†μ„±μœΌλ‘œ 이용

    - FROM μ ˆμ— 검색이 ν•„μš”ν•œ λͺ¨λ“  ν…Œμ΄λΈ” λ‚˜μ—΄

    - WHERE μ ˆμ— 쑰인 속성이 κ°™μ•„μ•Ό 함을 μ˜λ―Έν•˜λŠ” 쑰인쑰건 μ œμ‹œ

    - μ—¬λŸ¬ ν…Œμ΄λΈ” μ΄μš©ν•˜λŠ” 쑰인 검색은 이름 같은 속성 μ„œλ‘œ λ‹€λ₯Έ ν…Œμ΄λΈ”μ— μ‘΄μž¬ν•  수 있기 λ•Œλ¬Έμ— μ†μ„±μ˜ 이름 μ•žμ— ν•΄λ‹Ή 속성이 μ†Œμ†λœ ν…Œμ΄λΈ”μ˜ 이름 ν‘œμ‹œν•΄μ£ΌλŠ” 것이 μ’‹μŒ

 

λΆ€μ†μ§ˆμ˜λ¬Έ μ΄μš©ν•œ 검색

    - SELECT λ¬Έ μ•ˆμ— λ“€μ–΄μžˆλŠ” 또 λ‹€λ₯Έ SELECT λ¬Έ

    - κ΄„ν˜Έλ‘œ λ¬Άμ–΄ μž‘μ„±ν•˜κ³  ORDER BY 절 μ‚¬μš©ν•  수 μ—†μœΌλ©°, μƒμœ„ μ§ˆμ˜λ¬Έλ³΄λ‹€ λ¨Όμ € μˆ˜ν–‰

 

 

2.1.3 데이터 μˆ˜μ • ; UPDATE

μ €μž₯된 νˆ¬ν”Œμ—μ„œ νŠΉμ • μ†μ„±μ˜ κ°’ μˆ˜μ •

 

데이터 μˆ˜μ •

UPDATE ν…Œμ΄λΈ”
SET 속성이름1=κ°’, 속성이름2=κ°’, ...
[WHERE 쑰건];

SET : κ°’ μ–΄λ–»κ²Œ μˆ˜μ •ν•  것인지 지정

WHERE : μ œμ‹œλœ 쑰건 λ§Œμ‘±ν•˜λŠ” νˆ¬ν”Œλ§Œ 속성 κ°’ μˆ˜μ •, μƒλž΅μ‹œ ν…Œμ΄λΈ”μ— μ‘΄μž¬ν•˜λŠ” λͺ¨λ“  νˆ¬ν”Œ λŒ€μƒμœΌλ‘œ ν•˜μ—¬ SET μ ˆμ—μ„œ μ§€μ •ν•œ λŒ€λ‘œ 속성값 μˆ˜μ •

 

2.1.4 데이터 μ‚­μ œ ; DELETE

데이터 μ‚­μ œ

DELETE
FROM ν…Œμ΄λΈ”
[WHERE 쑰건];

WHERE : μ œμ‹œν•œ 쑰건 λ§Œμ‘±ν•˜λŠ” νˆ¬ν”Œλ§Œ μ‚­μ œ. μƒλž΅μ‹œ ν…Œμ΄λΈ”μ— μ‘΄μž¬ν•˜λŠ” λͺ¨λ“  νˆ¬ν”Œ μ‚­μ œν•˜μ—¬ 빈 ν…Œμ΄λΈ”μ΄ 됨

Comments