์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ์ด๋ ธํ ์ด์
- ํ๋ IT&E
- Kotlin
- http method
- ๊ธฐ์ด100์
- Dialog
- ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ
- swagger
- di
- menutab
- Factory Method Pattern
- ์ฑ์ฉํ์ ํ
- datepicker
- IOC
- URN
- 2024-08-20
- FACTORY
- Python
- 2024-08-21
- udp
- AndroidStudio
- ์ฝ๋์
- Android Studio
- tcp
- fontstyle
- url
- OOP
- uri
- reflection
- OpenAPI
dingdong coding
[ MySQL ] ๊ธฐ๋ณธ ์ฟผ๋ฆฌ๋ฌธ ์ ๋ฆฌ ๋ณธ๋ฌธ
SQL (Structured Query Language)
• SQL์ ๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ฐ๋ฅด๋ DBMS์ ํ์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ด
• ๊ด๊ณ ๋์๋ฅผ ๊ธฐ์ด๋ก ๋ง๋๋ฌ์ง DB๊ด๋ จ ๋ช ๋ น์ด ํ์
SQL ๋ช ๋ น์ด ๋ถ๋ฅ
1 )
๋ฐ์ดํฐ ์ ์์ด DDL, Data Definition Language
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ ์ด๋ธ ๋ฑ์ ์์ฑ, ์ญ์ ํ๊ฑฐ๋ ๊ทธ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํ ๋ช ๋ น์ด
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ํ๊ฑฐ๋ ์์
- ๋ช ๋ น์ด ์ํ์ ์ด์ ์ํ๋ก ๋ณต๊ท ๋ถ๊ฐ
๊ตฌ๋ถ | DDL ๋ช ๋ น์ด | ๋ด์ฉ |
์์ฑ | CREATE | ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๋ธ์ ํธ ์์ฑ |
๋ณ๊ฒฝ | ALTER | ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๋ธ์ ํธ ๋ณ๊ฒฝ |
์ญ์ | DROP | ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๋ธ์ ํธ ์ญ์ |
TRUNCATE | ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๋ธ์ ํธ์ ๋ด์ฉ ์ญ์ |
2 ) ๋ฐ์ดํฐ ์กฐ์์ด DML, Data Manipulation Language
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ฑฐ๋ ์กฐํ, ๊ฒ์ํ๊ธฐ ์ํ ๋ช ๋ น์ด
- ๋ฐ์ดํฐ๋ฅผ ๊ฒ์, ์ฝ์ , ์ญ์ , ๊ฐฑ์
- ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ๊ฐ์ ์ธํฐํ์ด์ค ์ ๊ณต
- ํธ๋์ญ์ ์ ์ด์ด๋ฅผ ํ์ฉํ์ฌ ์คํ ์ ์ํ๋ก ๋ณต๊ท ๊ฐ๋ฅ
๊ตฌ๋ถ | DML ๋ช ๋ น์ด | ๋ด์ฉ |
๋ฐ์ดํฐ ์ฝ์ | INSERT | ์ฝ์ ํํ๋ก ์ ๊ท ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ์ ์ ์ฅ |
๋ฐ์ดํฐ ์์ | UPDATE | ํ ์ด๋ธ์ ๋ด์ฉ์ ์์ |
๋ฐ์ดํฐ ์ญ์ | DELETE | ํ ์ด๋ธ์ ๋ด์ฉ์ ์ญ์ |
๋ฐ์ดํฐ ์กฐํ | SELECT | ํ ์ด๋ธ์ ๋ด์ฉ์ ์กฐํ |
3 ) ๋ฐ์ดํฐ ์ ์ด์ด DCL, Data Control Language
- ๋ฌด๊ฒฐ์ฑ์ ์ ์ง์ํค๋ฉด์ ๋ด๋ถ์ ์ผ๋ก ์ฌ๋ฌ๊ฐ์ง ๊ท์ ์ด๋ ์ ์ฝ์กฐ๊ฑด ๋ฑ์ ๊ธฐ์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ช ๋ น์ด
- ์ฌ์ฉ์ ๋ณ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ ๋ถ์ฌํ๊ฑฐ๋ ํ์
DCL ๋ช ๋ น์ด | ๋ด์ฉ |
GRANT | ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์์๊ฒ ๊ถํ์ ๋ถ์ฌ |
REVOKE | ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์์๊ฒ ๊ถํ์ ํ์ |
• ํ ์ด๋ธ : ์๋ก ์ฐ๊ด๋ ๋ ์ฝ๋์ ์งํฉ
• ๋ ์ฝ๋, ํํ : ํ๋์ ๋จ์๋ก ์ทจ๊ธ๋๋ ์๋ฃ์ ์งํฉ. DB์์๋ ํ(Row)์ ํด๋น, ๊ด๊ณ๋ ๋ฐ์ดํฐ์ ๋ฌถ์
• ํ๋, ์์ฑ : ๊ฐ์ฅ ์์ ๋จ์์ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธ. DB์์๋ ์ด(Column)์ ํด๋น, ์์ ๋ง์ ํ์ ์ ๊ฐ์ง๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค
• ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐํ
SHOW DATABASES;
• ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ
USE ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
;
• ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ
CREATE ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
;
• ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ญ์
DROP DATABASES ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
;
ํ ์ด๋ธ
• ํ ์ด๋ธ ์ ์
CREATE TABLE ํ
์ด๋ธ ์ด๋ฆ(
ํ๋๋ช
๋ฐ์ดํฐํ์
(์๋ฆฌ ์) ์กฐ๊ฑด;
ํ๋๋ช
๋ฐ์ดํฐํ์
์กฐ๊ฑด;
ํ๋๋ช
๋ฐ์ดํฐํ์
์กฐ๊ฑด;
PRIMARY KEY(๊ธฐ๋ณธํค๋ก ์ง์ ํ ํ๋๋ช
)
);
CREATE TABLE posts (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
subject varchar(255) NOT NULL,
content mediumtext,
created datetime,
user_id int(10) unsigned NOT NULL,
user_name varchar(32) NOT NULL,
hit int(10) unsigned NOT NULL default '0',
PRIMARY KEY (id)
);
• ์ ์ฝ ์กฐ๊ฑด(constraint)
- ์ ์ฝ ์กฐ๊ฑด(constraint)์ด๋ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ์งํค๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ ์คํ๋๋ ๊ฒ์ฌ ๊ท์น์ ์๋ฏธ
- ALTER ๋ฌธ์ผ๋ก ํ๋๋ฅผ ์ถ๊ฐํ ๋๋ ์ค์ ํ ์๋ ์๋ค.
CREATE TABLE ๋ฌธ์์ ์ฌ์ฉํ ์ ์๋ ์ ์ฝ ์กฐ๊ฑด
1 ) NOT NULL : ํด๋น ํ๋๋ NULL ๊ฐ์ ์ ์ฅํ ์ ์๊ฒ ๋ฉ๋๋ค.
2 ) UNIQUE : ํด๋น ํ๋๋ ์๋ก ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ ธ์ผ๋ง ํฉ๋๋ค.
3 ) PRIMARY KEY : ํด๋น ํ๋๊ฐ NOT NULL๊ณผ UNIQUE ์ ์ฝ ์กฐ๊ฑด์ ํน์ง์ ๋ชจ๋ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
4 ) FOREIGN KEY : ํ๋์ ํ ์ด๋ธ์ ๋ค๋ฅธ ํ ์ด๋ธ์ ์์กดํ๊ฒ ๋ง๋ญ๋๋ค.
5 ) DEFAULT : ํด๋น ํ๋์ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํฉ๋๋ค.
๋ํ, AUTO_INCREMENT ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋น ํ๋์ ๊ฐ์ 1๋ถํฐ ์์ํ์ฌ ์๋ก์ด ๋ ์ฝ๋๊ฐ ์ถ๊ฐ๋ ๋๋ง๋ค 1์ฉ ์ฆ๊ฐ๋ ๊ฐ์ ์ ์ฅํฉ๋๋ค. ์ด๋ AUTO_INCREMENT ํค์๋ ๋ค์์ ๋์ ์ฐ์ฐ์(=)๋ฅผ ์ฌ์ฉํ์ฌ ์์๊ฐ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
• ํ ์ด๋ธ ์ ๋ณด ์กฐํ
DESCRIBE ํ
์ด๋ธ๋ช
; // "DESC ํ
์ด๋ธ๋ช
;"
• ํ ์ด๋ธ ์ญ์
DROP TABLE ํ
์ด๋ธ๋ช
;
• ํ ์ด๋ธ ์์
ALTER TABLE ํ
์ด๋ธ๋ช
ADD COLUMN ํ๋๋ช
๋ฐ์ดํฐ ํ์
;
ALTER TABLE table_name ADD COLUMN ex_column varchar(32) NOT NULL;
ALTER TABLE ํ
์ด๋ธ๋ช
MODIFY COLUMN ํ๋๋ช
๋ฐ์ดํฐ ํ์
;
ALTER TABLE table_name MODIFY COLUMN ex_column varchar(16) NULL;
ALTER TABLE ํ
์ด๋ธ๋ช
DROP COLUMN ํ๋๋ช
;
ALTER TABLE table_name DROP COLUMN ex_column;
ALTER TABLE ํ
์ด๋ธ๋ช
1 RENAME ํ
์ด๋ธ๋ช
2;
ALTER TABLE table_name1 RENAME table_name2;
๋ ์ฝ๋
• ๋ ์ฝ๋ ์กฐํ
SELECT * FROM ํ
์ด๋ธ๋ช
; // * ๋ฅผ ์ฌ์ฉํ๋ฉด ํ
์ด๋ธ์ ๋ชจ๋ ๋ฐ์ดํฐ ์กฐํ
SELECT ํ๋๋ช
1, ํ๋๋ช
2 FROM ํ
์ด๋ธ์ด๋ฆ; // ํ๋๋ช
1,2๋ง ์กฐํ
SELECT * FROM ํ
์ด๋ธ์ด๋ฆ WHERE ํ๋๋ช
= '๋ด์ฉ'; // ํด๋น ํ๋์์ ๊ฐ์ด '๋ด์ฉ'์ธ ๋ ์ฝ๋ ์กฐํ
SELECT * FROM ํ
์ด๋ธ์ด๋ฆ WHERE ํ๋๋ช
BETWEEN 00:00:00 AND 12:00:00 // 00์~12์ ์ฌ์ด
SELECT * FROM ํ
์ด๋ธ์ด๋ฆ WHERE ํ๋๋ช
IN (A, B); // ๊ดํธ ๋ด์ ์ผ์นํ๋ ๊ฐ์ด ์๋ค๋ฉด ์กฐํ
SELECT * FROM ํ
์ด๋ธ์ด๋ฆ WHERE ํ๋๋ช
LIKE '%๋ฌธ์์ด%'; // ๋ฌธ์์ด ํฌํจ๋ ๋ ์ฝ๋ ์กฐํ
SELECT * FROM ํ
์ด๋ธ์ด๋ฆ WHERE ํ๋๋ช
IS NULL; // ๋๋ "IS NOT NULL"
SELECT COUNT(*) FROM ํ
์ด๋ธ๋ช
WHERE ํ๋๋ช
='๋ด์ฉ'; // ํด๋น ํ๋์์ ๊ฐ์ด '๋ด์ฉ'์ธ ๋ ์ฝ๋ ๊ฐ์
SELECT * FROM Customers WHERE country='KR';
SELECT * FROM Customers WHERE id='asd111';
SELECT * FROM Costomers ORDER BY age; // ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
SELECT * FROM Costomers ORDER BY age DESC; // ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
SELECT DISTINCT ํ๋๋ช
FROM ํ
์ด๋ธ์ด๋ฆ; // ํด๋น ํ๋ ๊ธฐ์ค์ผ๋ก ์ค๋ณต๋ ๋ ์ฝ๋์ ๊ฑฐ
// Info ๋ฐ์ดํฐ๋ฒ ์ด์ค์ Users ํ
์ด๋ธ์์ userName์ด 'A'๋ก ์์ํ๋ ๋ ์ฝ๋๋ค์ userId, userName ํ๋ ์กฐํ
SELECT userId, userName FROM Info.Users WHERE userName LIKE 'A%'
SELECT COUNT(*) FROM Customers WHERE age='25';
• ๋ ์ฝ๋ ์ถ๊ฐ
INSERT INTO ํ
์ด๋ธ๋ช
(ํ๋๋ช
1, ํ๋๋ช
2) VALUES (ํ๋๊ฐ1, ํ๋๊ฐ2); // ํ
์ด๋ธ์ ์ ๋ ์ฝ๋ ์ถ๊ฐ
INSERT INTO ๋ชฉ์ ์งํ
์ด๋ธ๋ช
SELECT * FROM ์ถ๋ฐ์งํ
์ด๋ธ๋ช
; // ๋ชจ๋ ํ๋ ๋ณต์ฌ
INSERT INTO ๋ชฉ์ ์งํ
์ด๋ธ๋ช
(ํ๋1,ํ๋2,ํ๋3) SELECT ํ๋1,ํ๋2,ํ๋3 FROM ์ถ๋ฐ์งํ
์ด๋ธ๋ช
; // ์ง์ ํ๋ ๋ณต์ฌ
INSERT INTO Customers (userName, age) VALUES ('John', '25'), ('coco', '27');
• ๋ ์ฝ๋ ์์
UPDATE ํ
์ด๋ธ๋ช
SET ํ๋๋ช
1=ํ๋๊ฐ1, ํ๋๋ช
2=ํ๋๊ฐ2 WHERE ์กฐ๊ฑด;
UPDATE Reservation SET RoomNum = 2002 WHERE Name = 'ํ๊ธธ๋';
• ๋ ์ฝ๋ ์ญ์
DELETE FROM ํ
์ด๋ธ๋ช
WHERE ์กฐ๊ฑด;
DELETE FROM Reservation WHERE Name = 'ํ๊ธธ๋';
์กฐ์ธ
• ์ผ์ชฝ ์ธ๋ถ ์กฐ์ธ (left outer join)
SELECT * FROM A
LEFT JOIN B ON A.key = B.key
• ์ค๋ฅธ์ชฝ ์ธ๋ถ ์กฐ์ธ (right outer join)
SELECT * FROM A
RIGHT JOIN B ON A.key = B.key
• ๋ด๋ถ ์กฐ์ธ (inner join)
SELECT * FROM A
INNER JOIN B ON A.key = B.key
• ์ผ์ชฝ ์ํฐ ์กฐ์ธ (left anti join)
SELECT * FROM A
LEFT JOIN B ON A.key = B.key
WHERE B.key IS NULL
• ์ค๋ฅธ์ชฝ ์ํฐ ์กฐ์ธ (right anti join)
SELECT * FROM A
RIGHT JOIN B ON A.key = B.key
WHERE A.key IS NULL
• ์ ์ฒด ์กฐ์ธ (full outer join)
SELECT * FROM A
FULL OUTER JOIN B ON A.key = B.key
• ์ ์ฒด ์กฐ์ธ ๋ณํ (full outer join ๋ณํ)
SELECT * FROM A
FULL OUTER JOIN B ON A.key = B.key
WHERE A.key IS NULL OR B.key IS NULL
ํ์ต์ ๋ง์ ๋์์ด ๋ ๋งํฌ๋ฅผ ์ฐธ์กฐํ์ต๋๋ค. ๐
์ฐธ์กฐ ๋ฐ ์ถ์ฒ
'๐ฌDB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
SQL Injection (0) | 2022.06.17 |
---|