* SQL(Structured Query Language)
: IBM, ๊ตญ์ ํ์ค DB์ธ์ด, RDBMS ์ง์, ๊ด๊ณ๋์์ ๊ด๊ณํด์์ ๊ธฐ์ด
1. DDL(Data Definition Language)
: ์คํค๋ง, ๋๋ฉ์ธ, ํ ์ด๋ธ, ๋ทฐ, ์ธ๋ฑ์ค๋ฅผ ์ ์, ๋ณ๊ฒฝ, ์ญ์ ํ๋ ๋ช ๋ น์ด
: ๋ ผ๋ฆฌ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ฌผ๋ฆฌ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ฌ์ ์ ์
: DBA ๋๋ ์ค๊ณ์๋ง ์ฌ์ฉ โจ ์ค์ ๋ก ๊ฐ๋ฐ์๋ DML์ ์ฃผ๋ก ์ฌ์ฉํ๋ฉฐ, DDL์ DB์ค๊ณ์๋ค์ด ์ฃผ๋ก ์ฌ์ฉ
1) CREATE
CREATE SCHEMA ์ค๋ฏธ์นด๋ช
AUTHORIZATION ์ฌ์ฉ์;
CREATE DOMAIN ๋๋ฉ์ธ๋ช
[AS] ๋ฐ์ดํฐํ์
[DEFAULT ๊ธฐ๋ณธ๊ฐ] [CONSTRAINT ์ ์ฝ์กฐ๊ฑด];
-- CREATE TABLE ํ
์ด๋ธ๋ช
(์์ฑ๋ช
๋ฐ์ดํฐํ์
, … FOREIGN KEY(์ธ๋ํค์ ์ฉ์์ฑ๋ช
) REFERENCES ์ฐธ์กฐํ
์ด๋ธ๋ช
(๊ธฐ๋ณธํค) .. );
CREATE TABLE ํ์ (ํ๋ฒ NUMBER(8), ์ด๋ฆ VARCHAR2 NOT NULL, ์ ๊ณต VARCHAR2,
PRAMARY KEY(ํ๋ฒ),
FOREIGN KEY(์ ๊ณต) REFERENCESํ๊ณผ(ํ๊ณผ์ฝ๋)
ON DELETE SET NULL
ON UPDATE CASCADE);
-- CREATE TABLE ํ
์ด๋ธ๋ช
AS SELECT ์์ฑ๋ช
FROM ๊ธฐ์กดํ
์ด๋ธ๋ช
;
CREATE TABLE ๊ณต๊ณผ๋ํ AS SELECT ํ๋ฒ, ์ด๋ฆ FROM ๋ํ;
-- CREATE VIEW ๋ทฐ๋ช
(์์ฑ๋ช
, ..) AS SELECT๋ฌธ; โก๏ธ ์๋ธ์ฟผ๋ฆฌ(UNION, ORDER BY์ฌ์ฉ๋ถ๊ฐ)์ ๋ํ ๊ฒฐ๊ณผ๋ก ๋ทฐ๋ฅผ ์์ฑ
-- ์์ฑ๋ช
์๋ต์ ์๋์ผ๋ก ๊ธฐ์กด ์์ฑ๋ช
์ ์ฉ
CREATE VIEW ๊ฐ๋จ๊ตฌ๊ณ ๊ฐ(์ด๋ฆ, ์ ํ๋ฒํธ) AS SELECT ์ฑ๋ช
, ํด๋ํฐ FROM ๊ณ ๊ฐ WHERE ์ฃผ์1='๊ฐ๋จ๊ตฌ';
-- CREATE [UNIQUE] INDEX ์ธ๋ฑ์ค๋ช
ON ํ
์ด๋ธ๋ช
(์์ฑ DESC|ASC);
CREATE UNIQUE INDEX ๊ณ ๊ฐ๋ฒํธ_idx ON ๊ณ ๊ฐ(๊ณ ๊ฐ๋ฒํธ DESC);
2) ALTER : ๋ณ๊ฒฝ
-- ADD : ์ด ์ถ๊ฐ
ALTER TABLE ํ์ ADD ์ฃผ์ VARCHAR2(100);
-- ALTER : ์ปฌ๋ผ ๊ธฐ๋ณธ๊ฐ ๋ณ๊ฒฝ
ALTER TABLE ํ์ ALTER ํ๋ฒ NUMBER(8) NOT NULL;
-- DROP : ์ด ์ญ์
ALTER TABLE ํ์ DROP ์ทจ๋ฏธ;
3) DROP : ์ญ์ (TRUNCATE๋ ๋ฐ์ดํฐ๋ง ๋ ๋ฆฌ๋๊ฒ)
DROP SCHEMA|DOMAIN|TABLE|VIEW|INDEX|CONSTRAINT ๋ช
์นญ [CASCADE|RESTRICTED];
-- CASCADE : ์ฐธ์กฐํ๋ ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ์ฐ์์ ์ผ๋ก ์ญ์ ์ฒ๋ฆฌ
-- RESTRICTED : ์ฐธ์กฐ์ค์ธ ๊ฒฝ์ฐ ์ ๊ฑฐ ๋ช
๋ น์ ์ทจ์
2. DML(Data Manipulation Language)
: ํ๋ฒ์ ํ ํ ์ด๋ธ๋ง ์กฐ์ ๊ฐ๋ฅ
: DB์ฌ์ฉ์์ DBMS๊ฐ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ฉฐ ์ค์ง์ ์ธ ๋ฐ์ดํฐ ๊ด๋ฆฌ ๋ช ๋ น์ด
1) INSERT
-- INSERT INTO ํ
์ด๋ธ๋ช
(์์ฑ๋ช
,...) VALUES(๊ฐ,...);
INSERT INTO STUDENT(NAME, NUM, SCORE) VALUES('๊ธธ๋์ด',30203940, 'A');
INSERT INTO ๋ฐฉ์ก๋ถ์(์ด๋ฆ, ํ๋
, ์ ํ๋ฒํธ) SELECT ์ด๋ฆ, ํ๋
, ์ ํ๋ฒํธ FROM ํ์ WHERE ๋ถ์='๋ฐฉ์ก๋ถ';
2) UPDATE
-- UPDATE ํ
์ด๋ธ๋ช
SET ์์ฑ๋ช
=๊ฐ,... WHERE ์กฐ๊ฑด์;
UPDATE ์ํ๊ณผ SET ์ฃผ์='์์ธ์ ์กํ๊ตฌ' WHERE ์ด๋ฆ='๋๋์ด';
-- ์์์ฌ์ฉ ๊ฐ๋ฅ
UPDATE ์ฌ์ SET ์ง๊ธ='๋๋ฆฌ', ์๊ธ=์๊ธ+500000 WHERE ์ฌ์๋ฒํธ=93820;
3) DELETE
-- DELETE FROM ํ
์ด๋ธ๋ช
[WHERE ์กฐ๊ฑด์];
DELETE FROM ์ฌ์ WHERE ๋ถ์='์์
3';
-- ์กฐ๊ฑด์ ์๋ต์ ํด๋น ํ
์ด๋ธ์ ๋ชจ๋ ํํ ์ ๊ฑฐ
DELETE FROM ์์ฝ๋ช
๋จ;
4) SELECT
-- SELECT ์์ฑ๋ช
.. FROM ํ
์ด๋ธ๋ช
[WHERE ์กฐ๊ฑด์] [GROUP BY ์์ฑ๋ช
] [HAVING ์กฐ๊ฑด] [ORDER BY ์์ฑ๋ช
[DESC|ASC]];
SELECT ์ด๋ฆ FROM ํ์ WHERE ์ฃผ์ LIKE '์์ธ์'% AND ํ๋
IN(3,4);
-- DISTINCT : ์ค๋ณต์ ๊ฑฐ
SELECT DISTINT ์ฃผ์ FROM ์ง์ ;
-- BETWEEN : ์ฌ์ด๊ฐ(ํฌํจ)
SELECT ์ฌ์๋ช
FROM ์ฌ์ WHERE ์๋
์์ผ BETWEEN '90/01/01' AND '99/12/31';
-- IS NULL : ๋๊ฐ ๋น๊ต
SELECT ์ด๋ฆ FROM ํ์ WHERE ์ ์ IS NULL;
SELECT ์ด๋ฆ FROM ํ์ WHERE ์ ์ IS NOT NULL;
-- ๋ณต์ํ
์ด๋ธ ๊ฒ์ : ํ
์ด๋ธ.์ปฌ๋ผ๋ช
์ผ๋ก ์ ๊ทผ
SELECT ์ฌ์.์ด๋ฆ, ์ฌ์.๋ถ์, ์ฌ๊ฐํ๋.์ทจ๋ฏธ, ์ฌ๊ฐํ๋.๊ฒฝ๋ ฅ FROM ์ฌ์, ์ฌ๊ฐํ๋ WHERE ์ฌ๊ฐํ๋.๊ฒฝ๋ ฅ>=10 AND ์ฌ๊ฐํ๋.์ด๋ฆ=์ฌ์.์ด๋ฆ;
3. DCL(Data Control Language)
: ๋ฐ์ดํฐ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ๋ ๋ช ๋ น์ด
: ๋ณด์, ๋ฌด๊ฒฐ, ํ๋ณต, ๋ณํ์ ์ด ๋ฑ ๋ฐ์ดํฐ ๊ด๋ฆฌ๊ฐ ๋ชฉ์
# ์ฌ์ฉ์ ๋ฑ๊ธ : DBA(DB๊ด๋ฆฌ์), Resource(DB๋ฐ ํ ์ด๋ธ ์์ฑ ๊ฐ๋ฅ์), Connect(๋จ์์ฌ์ฉ์)
1) GRNAT : ๊ถํ๋ถ์ฌ
-- ์ฌ์ฉ๋ฑ๊ธ ๊ถํ ๋ถ์ฌ : GRANT ์ฌ์ฉ์๋ฑ๊ธ TO ์ฌ์ฉ์ID;
GRANT RESOURCE TO IRENE;
-- ํ
์ด๋ธ ๊ถํ ๋ถ์ฌ : GRANT ๊ถํ ON ๊ฐ์ฒด TO ์ฌ์ฉ์ [WITH GRANT OPTION];
GRANT UALL ON ๊ณ ๊ฐ TO NATE WITH GRANT OPTION;
2) REVOKE : ๊ถํํ์
-- ์ฌ์ฉ์ ๊ถํ ๋ฐํ : REVOKE ๋ฑ๊ธ FROM ์ฌ์ฉ์ID;
REVOKE DBA FROM AMY;
-- ํ
์ด๋ธ ๊ถํ ๋ฐํ : REVOKE [GRANT OPTION FOR] ๊ถํ ON ๊ฐ์ฒด FROM ์ฌ์ฉ์ [CASCADE];
REVOKE GRANT OPTION FOR UPDATE ON ๊ณ ๊ฐ FROM JIMMY CASCADE;
4. TCL(Transaction control Language)
: ํธ๋์ญ์ ์ ์ด์ด
1) COMMIT
: ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์ข ๋ฃ๋ ๊ฒฝ์ฐ ์ผ๊ด์ฑ์ ์ ์งํ๊ธฐ ์ํด ์ ์ฒด DB์ ๋ฐ์ํ๋ ๋ช ๋ น์ด
2) ROLLBACK
: ์์ง COMMIT๋์ง ์์ ๋ณ๊ฒฝ๋ ๋ชจ๋ ๋ด์ฉ์ ์ทจ์ํ๊ณ DB๋ฅผ ์ด์ ์ํ๋ก ๋๋๋ฆฌ๋ ๋ช ๋ น์ด
3) SAVEPOINT
: ROLLBACK ์ง์ ์ ์ง์ ํ๋ ๋ช ๋ น์ด โจ SAVEPOINT S1;
'Note for moment' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์นํ์ค๊ณผ ์น ์ ๊ทผ์ฑ, ํ์ง์๊ตฌ์ฌํญ (0) | 2020.09.09 |
---|---|
์ฟ ํค(Cookie)์ ์ธ์ (Session) (0) | 2020.09.09 |
์ ๋ค๋ฆญ(Generic) - ํ์ฉ์ ์ : ์๋ฃ๊ตฌ์กฐ (0) | 2020.09.05 |
[thread] main์ค๋ ๋, ๋ค์ค์ค๋ ๋, ์ค๋ ๋๋๊ธฐํ (0) | 2020.09.05 |
[Java] String, StringBuffer, StringBuilder (0) | 2020.09.05 |
๋๊ธ