SQL

데이터베이스에서 사용하는 생성, 삽입, 조회 명령문을 SQL ( Structured Query Language )라고 한다.

 

SQL의 종류

  • DDL ( Data Definition Language )
  • DML ( Data Manipulation Language )
  • DCL ( Data Control Language )
  • TCL ( Transaction Control Language )

DDL ( Data Definition Language )

데이터를 정의할 때 사용하는 언어로 테이블이나 데이터베이스를 생성, 수정, 삭제와 같은 행위를 할 때 사용한다.

  • CREATE ( DATABASE, TABLE, VIEW, INDEX 등을 생성할 때 사용한다. )
CREATE DATABASE 데이터베이스명;
CREATE TABLE 테이블명
{
 컬럼명 컬럼속성
}
  • DROP ( DATABASE, TABLE, VIEW, INDEX 등을 삭제할 때 사용한다. )
DROP DATABASE 데이터베이스명;
DROP TABLE 테이블명;
  • ALTER ( DATABASE, TABLE 등의 속성을 변경할 때 사용한다. )
ALTER DATABASE 데이터베이스명 변경조건;
ALTER TABLE 테이블명 ADD 변경조건; -- 테이블에 새로운 컬럼을 추가합니다.
ALTER TABLE 테이블명 DROP 변경조건; -- 테이블에서 컬럼을 삭제합니다.
ALTER TABLE 테이블명 MODIFY 변경조건; -- 테이블의 컬럼을 수정합니다.
ALTER TABLE 테이블명 RENAME 변경조건; -- 테이블의 이름을 변경합니다.
...

 


DML ( Data Manipulation Language )

데이터베이스에서 데이터를 조작할 때 사용하는 언어로 데이터의 저장, 삭제, 수정, 조회와 같은 행위를 한다.

  • SELECT ( 일반적으로 TABLE에서 원하는 데이터들을 조회할 때 사용한다. )
SELECT 컬럼목록 FROM 테이블명 [WHERE 조건];
  • INSERT ( TABLE에 새로운 데이터들을 삽입할 때 사용한다. ) 
INSERT INTO 테이블명 (컬럼목록) VALUES (값목록);

 ● DELETE

  • TABLE에서 특정한 조건에 맞는 데이터들을 삭제할 때 사용한다.
  • WHERE 조건이 없을 경우, 모든 데이터가 삭제 된다.
DELETE FROM 테이블명 [WHERE 조건];

 ● UPDATE

  • TABLE에서 특정한 조건에 맞는 데이터들을 수정할 때 사용한다.
  • WHERE 조건이 없을 경우, 모든 데이터가 수정된다
UPDATE 테이블명 SET 컬럼 = 값 [WHERE 조건];

 


 

DCL ( Data Control Language )

데이터베이스에 대한 권한과 관련된 문법으로 특정 유저가 DB에 접근할 수 있는 권한을 설정할 때 사용한다.

 ● GRANT

  • 데이터베이스의 특정한 유저에게 사용 권한을 부여할 때 사용한다.
  • 권한에는 SELECT, INSERT, UPDATE, DELETE 등 다양한 종류가 존재한다.
GRANT [권한] ON 객체명 TO 사용자;

 ● REVOKE

  • 데이터베이스의 특정한 유저에게 사용 권한을 취소할 때 사용한다.
REVOKE [권한] ON 객체명 FROM 사용자;

 


 

TCL ( Transaction Control Language )

데이터베이스 내의 트랜잭션을 관리하는 문법으로, 트랜잭션의 시작과 종료, 그리고 롤백을 수행할 때 사용한다.

 ● COMMIT

  • 데이터베이스의 작업이 정상적으로 완료되었음을 관리자에게 알려줄 때 사용한다.
START TRANSACTION;
...
COMMIT;

  ● ROLLBACK

  • 데이터베이스의 작업이 비정상적으로 완료되었음을 관리자에게 알려줄 때 사용한다.
  • 작업 중 오류가 발생한 경우 이를 취소하고, 이전 상태로 되돌릴 때 사용한다.
START TRANSACTION;
...
ROLLBACK;

 


 

'데이터베이스' 카테고리의 다른 글

[DATABASE] ORM과 Prisma  (0) 2024.09.06
[DATABASE] Raw Query  (0) 2024.09.06
[DATABASE] SELECT JOIN 연산자  (0) 2024.09.05
[DATABASE] SQL 제약조건  (0) 2024.09.05
[DATABASE] 관계형 데이터베이스  (0) 2024.09.05

+ Recent posts