Spring 입문주차/1주차

18. SQL

note994 2024. 8. 14. 18:18

개념

SQL은 'Structured Query Language'의 약자로 RDBMS에서 사용되는 언어이다. 수 많은 정보를 Database에서 조작하고 관리하기 위해서는 SQL 언어를 사용해야 한다.

국제 표준화 기구에서 SQL에 대한 표준을 정해서 발표하고있다.

하지만 DBMS를 만드는 회사가 여러 곳이기 때문에 DBMS마다 표준 SQL을 준수하되, 각 제품의 특성을 반영하기 위한 약간의 차이가 존재한다.


DDL

Data Definition Language의 약자로 테이블이나 관계의 구조를 생성하는데 사용한다.

CREATE : 새로운 데이터베이스 및 테이블을 생성해 준다.

CREATE DATABASE 데이터베이스이름;
CREATE TABLE 테이블이름
(
		필드이름1 필드타입1,
    필드이름2 필드타입2,
    ...
);

ALTER : 데이터베이스와 테이블의 내용을 수정할 수 있다.

ALTER TABLE 테이블이름 ADD 필드이름 필드타입;
ALTER TABLE 테이블이름 DROP 필드이름;
ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입;

DROP : 데이터베이스와 테이블을 삭제할 수 있다. 데이터 및 테이블 전체를 삭제한다.

DROP DATABASE 데이터베이스이름;
DROP TABLE 테이블이름;

TRUNCATE : 데이터베이스와 테이블을 삭제할 수 있다. 최초 테이블이 만들어졌던 상태 즉, 컬럼값만 남긴다.

TRUNCATE DATABASE 데이터베이스이름;
TRUNCATE TABLE 테이블이름;

DCL

Data Control Language의 약자로 데이터의 사용 권한을 관리하는데 사용한다.

GRANT : 사용자 또는 ROLE에 대해 권한을 부여할 수 있다.

GRANT [객체권한명] (컬럼)
ON [객체명]
TO { 유저명 | 롤명 | PUBLC} [WITH GRANT OPTION];

//ex
GRANT SELECT ,INSERT 
ON mp
TO scott WITH GRANT OPTION;

REVOKE : 사용자 또는 ROLE에 부여한 권한을 회수할 수 있다.

REVOKE { 권한명 [, 권한명...] ALL}
ON 객체명
FROM {유저명 [, 유저명...] | 롤명(ROLE) | PUBLIC} 
[CASCADE CONSTRAINTS];

//ex
REVOKE SELECT , INSERT
ON emp
FROM scott
[CASCADE CONSTRAINTS];

DML

Data Manipulation Language의 약자로 테이블에 데이터를 검색, 삽입, 수정, 삭제하는데 사용한다.

INSERT : 테이블에 새로운 row를 추가할 수 있다. 

INSERT INTO 테이블이름(필드이름1, 필드이름2, 필드이름3, ...) VALUES(데이터값1, 데이터값2, 데이터값3, ...);
INSERT INTO 테이블이름 VALUES(데이터값1, 데이터값2, 데이터값3, ...);

SELECT : 테이블의 row를 선택할 수 있다.

SELECT 필드이름 FROM 테이블이름 [WHERE 조건];

UPDATE : 테이블의 row의 내용을 수정할 수 있다.

UPDATE 테이블이름 SET 필드이름1=데이터값1, 필드이름2=데이터값2, ... WHERE 필드이름=데이터값;

DELETE : 테이블의 row를 삭제할 수 있다.

DELETE FROM 테이블이름 WHERE 필드이름=데이터값;

'Spring 입문주차 > 1주차' 카테고리의 다른 글

20. JDBC란 무엇일까  (0) 2024.08.15
19. SQL 연습하기  (0) 2024.08.14
17. Database  (0) 2024.08.14
16. Update, Delete 구현하기  (0) 2024.08.14
15. Create, Read 구현하기(DTO)  (0) 2024.08.14