SQL

김승규·2024년 2월 15일
0

SQL 구성

  • 데이터 조작어(Data Manipulation Language – DML)
    • SELECT, READ, UPDATE, DELTET
  • 데이터 정의어(Data Definition Language – DDL)
    • CREATE, ALTER, DROP
  • 데이터 제어어(Data Control Language – DCL)
    • GRANT, REVOKE (DENY), START(BEGIN), COMMIT, ROLLBACK
    • DENY 거의 안쓰고, BEGIN은 START랑 똑같다.
  • 트랜잭션 제어어(Transaction Control Language – TCL)
    • 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 트랜잭션별로 제어하는 질의어
명령어종류명령어
DMLSELECT
INSERT
UPDATE
DELETE
데이터베이스의 데이터를 조회하거나 검색하기 위한 질의 모음으로 RETRIEVE라고도 함
데이터베이스 테이블의 데이터에 변형을 가하는 종류(삽입, 수정, 삭제)등의 질의어
DDLCREATE
ALTER
DROP
RENAME
TRUNCATE
테이블, 뷰, 저장 프로시저 등의 데이터 구조를 정의하는데 사용되는 명령어로, 생성, 변경, 삭제, 이름 변경등의 데이터 구조와 관련된 질의어
DCLGRANT
REVOKE
DENY
데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 질의어
TCLCOMMIT
ROLLBACK
SAVEPOINT
논리적인 작업 단위를 묶어서 DML에 의해 조작된 결과를 트랜잭션별로 제어하는 질의어

SQL에서 DDL 구문

CREATE 문

테이블, 도메인(데이터 타입), 인덱스, 사용자, 별칭, ,저장 프로시저, 사용자 정의 함수, 트리거, 데이터베이스 생성

CREATE [데이터베이스 객체 형식] [객체 이름] [객체의 종류에 따른 정의]

DROP 문

CREATE 문으로 생성된 객체 제거

DROP [데이터베이스 객체 형식] [객체 이름]

ALTER 문

CREATE 문으로 생성된 객체의 특성 변경

ALTER [데이터베이스 객체 형식] [객체 이름] [객체의 종류에 따른 정의]

TRUNCATE 문

TRUNCATE 또는 TRUNCATE TABLE 문은 테이블에서 모든 투플을 삭제합니다. 무결성 제약조건을 생략하여 모든 데이터의 빠른 삭제를 가능하게 합니다. 삭제할 행 각각을 기록하는 트랜잭션 로그의 출력을 방지함으로써 효율적으로 모든 행을 삭제할 수 있습니다.

TRUNCATE문의 결과는 테이블의 모든 투플을 삭제하는 DELETE 문과 결과는 동일하지만 동작은 다릅니다.

  • WHERE 절을 지정할 수 없습니다. 모든 투플은 일괄 삭제됩니다.
  • 대상 테이블에 대한 단독 잠금을 얻을 수 있습니다.
  • 삭제시 외래 키의 무결성을 확인하지 않습니다.
  • 일부 데이터베이스(Oracle, MySQL 등)에서 TRUNCATE문은 롤백 할 수 없습니다.
  • 일부 데이터베이스(Microsoft SQL Server)에서 TRUNCATE TABLE문은 복제 및 로그 전달 대상인 테이블에 대해 실행할 수 없습니다.
TRUNCATE [TABLE] 테이블 이름 [, 테이블 이름]

테이블 생성, 수정, 삭제 DDL 문

https://github.com/gikpreet/class-relational_database/blob/main/Module%2006%20SQL/08_create_alter_drop.adoc

생성

CREATE TABLE {Table Name} (
	[Column Name] [Data Type] {NULL | NOT NULL} {Column Option}
	{Constraint List} [Constraint definition]
)

수정

ALTER TABLE [TableName]
	{ALTER COLUMN} [COLUMN NAME] {Column Option}
	{ADD} (Column | Constraints} {ADD Option}
	{DROP} (Column | Constraints} {DROP Option}

삭제

DROP TABLE [TableName]
profile
꿈꾸는 리얼리스트 개발자 김승규입니다.

0개의 댓글

관련 채용 정보