[SQLD 암기] SQL 기본

younghyun·2023년 6월 9일
0

SQLD

목록 보기
3/18

DML

SELECT, INSERT, UPDATE, DELETE

INSERT INTO <테이블 명> (컬럼명 리스트) VALUES (컬럼 리스트에 넣을 값)
UPDATE <테이블 명> SET 수정되어야 할 컬럼명 = 수정되어야 할 값;
DELETE FROM <테이블 명>

DDL

CREATE, ALTER, DROP, RENAME, TRUNCATE

ALTER TABLE <테이블 명> DROP <컬럼 명>;
RENAME TALBE <테이블 명> TO <테이블 명>;
  • 명령어를 입력하는 순간 작업이 즉시 완료(AUTO COMMIT)된다.
  • TRUNCATE는 모든 데이터를 삭제하지만 테이블 구조는 남겨놓는다.

DCL

GRANT, REVOKE

  • GRANT: 데이터베이스 객체에 대한 접근 권한을 부여한다.
  • REVOKE: 이전에 부여된 권한을 취소한다.

TCL

COMMIT, ROLLBACK

  • ROLLBACK은 커밋되지 않은 모든 트랜잭션을 모두 롤백한다.

CONSTRAINT

데이터의 무결성을 지키기 위해 제한된 조건을 말한다.

제약 조건 추가

// PK 복합키 제약조건 추가
ALTER TABLE CONSTRAINT_TEST
  ADD CONSTRAINT PK_SEQ_ID PRIMARY KEY (SEQ, ID)
  
// FK 외래 키 설정
CREATE TABLE CONSTRAINT_TEST(
      SEQ INT NOT NULL CONSTRAINT PK_SEQ PRIMARY KEY
    , USER_NAME VARCHAR(100) NOT NULL 
                CONSTRAINT FK_USERNAME FOREIGN KEY REFERENCES USER_TBL(NAME)
)

[14번]
외래키 값은 NULL값을 가질 수 있다.
외래키 값은 참조 무결성 제약을 받을 수 있다.

[26번] DELETE vs TRUNCATE vs DROP

  • DELETE는 DML, TRUNCATE와 DROP은 DDL이다.
  • DELETE는 커밋 이전에 Rollback이 가능하지만, 나머지 둘은 불가능하다.
  • DELETE는 데이터만 삭제, TRUNCATE는 테이블을 초기 상태로, DROP은 테이블의 정의 자체를 완전히 삭제한다.

[28번]

  • Dirty Read: 다른 트랜잭션에 의해 수정되었지만 아직 커밋되지 않은 데이터를 읽는 것을 말한다.

[29번]

  • ORACLE에서는 DDL문장 수행 후 자동으로 커밋을 수행한다.
  • SQL Server에서는 DDL문장 수행 후 자동으로 커밋을 수행하지 않는다.

[36번]

SELECT * FROM TABLE WHERE <컬럼명> IS NOT NULL
profile
🌱 주니어 백엔드 개발자입니당

0개의 댓글