[SQLD] SQL 명령문

hwwwa·2022년 6월 1일
0

🍊 SQLD

목록 보기
1/16

SQL 명령문 개괄

  • 연산 순서: From → Where → Group by → Having → Select → Order by

DML

  • SELECT
  • INSERT
    • 삽입 컬럼 명시 생략 시 모든 컬럼 입력 필수
  • DELETE
    • DELETE FROM 테이블명; (DELETE 뒤에 * 또는 TABLE 붙이면 문법 오류)
    • 디스크 사용량 초기화 X, 로그 남음, 사용자 Commit
  • UPDATE
  • MERGE

DDL

  • ALTER
    • ALTER TABLE 테이블명 ADD CONTRAINT 제약조건명 PRIMARY KEY(컬럼명);
    • 오라클은 여러 컬럼 동시 수정 가능, SQL 서버는 불가능
    • 이미 정의된 PK 속성을 ALTER TABLE로 또 정의하려하면 오류 발생
  • CREATE
  • MODIFY
  • DROP
    • 로그를 남기지 않음. Auto Commit
  • RENAME
    • RENAME 기존컬럼명 TO 바꿀컬럼명;
  • TRUNCATE
    • 테이블을 초기 상태로 만듦. 스키마 유지. 디스크 사용량 초기화. DELETE 보다 빠름. 로그를 남기지 않음. Auto Commit

TCL

  • DML에 의해 조작된 결과를 트랜잭션별로 제어
  • ROLLBACK
    • Commit 되지 않은 모든 트랜잭션을 Rollback함
  • COMMIT
  • SAVEPOINT

DCL

  • GRANT / REVOKE
  • role 특징 - 명령어가 아닌 객체(Object)
    • role은 role에게 부여 가능
    • role은 사람에게 부여 가능
    • 사람들은 같은 role을 가질 수 있음
    • role 부여에는 권한이 필요
    • role은 권한이 있는 사용자에게서 만들어짐

제약조건 ⭐️

  • PK: UNIQUE + NOT NULL
  • UNIQUE
  • NOT NULL

비절차적/절차적

  • 비절차적 데이터 조작어: 사용자가 무슨 데이터를 원하는지만 명세 ⇒ DML
  • 절차적 데이터 조작어: 사용자가 무슨 데이터를 원하는지, 어떻게 데이터를 접근해야 하는지 명세 ⇒ PL/SQL(오라클), T-SQL(SQL Server)

데이터 부속어(Data Sub Language)

  • 호스트 프로그램 속에 삽입되어 사용되는 DML 명령어들

참조동작

  • DELETE/MODIFY Action
    • Cascade, Set Null, Set Default, No Action
    • Restrict: Child 테이블에 PK값이 없는 경우에만 Master 삭제 허용
  • INSERT Action (Master 테이블에 PK가 없는 경우에 대한 설정)
    • Automatic: Master에 PK 자동 생성 후 Child 입력
    • Set Null, Set Default: Child PK를 Null/Default 처리
    • Dependent: Master에 PK가 존재할 때만 입력 허용
    • No Action

0개의 댓글