SQL / 01 / 기초-8

DOMADO·2024년 6월 12일

SQL

목록 보기
9/12

* DDL / 데이터 정의어

  • Data Definition Language
  • 테이블 같은 데이터저장소 객체의 생성, 수정, 삭제
  • 자료형(DATA TYPE)을 꼭 지정해주자 ▶ for 효율성
  • 뼈대 , 집짓기

CREATE : 새로운 저장소 객체를 생성 👉 무조건 영어,대문자로 시작

ALTER : 테이블을컬럼(열) 단위로수정 👉 이미 만들어진 객체를 수정할 때

DROP : 테이블 객체와 데이터까지 전부 삭제

RENAME : 컬럼의 이름을 변경

TRUNCATE : 테이블 내부데이터와 저장공간까지만 삭제


  • 컬럼 끼리 구분은 ( , ) 로 합니다.
  • 한 테이블 내, 중복 되는 컬럼명 ❌
  • 테이블명 끼리 중복 ❌
  • 테이블명 : 대문자 시작, 영어로 시작

VARCHAR2 : 'Variable Character' [가변글자열]

  • 기존에 VARCHAR(바차원) 쓰다가, VARCHAR2(바차투)로 변경 됨
  • VARCHAR으로 써도, VARCHAR2로 자동 변경

  • 요즘 추세는 NUMBER만 사용 (범위 제약,조건 없이)


✅ 만들어진, 객체를 수정할 때 👉 ALTER


[ ⭐ ⭐ ] 제약조건 CONSTRAINTS

  • 테이블에 입력 가능한 데이터를 조건으로 제약하는 것
  • [ ❗ ] ADD CONSTRAINTS ▶ 제약조건을 추가하겠다.

5가지 모두 중요하니 꼭 기억하기 !!
파란박스 : 실무 多
빨간박스 : 실무 + 시험 多


① NOT NULL : NULL값 존재 ❌❌


② UNIQUE : 하나의 컬럼(열)에, 중복 되는 튜플(인스턴스,행) ❌❌


③ CHECK : 특정 컬럼에 데이터 입력시, 조건에 해당 되는 데이터만 ⭕⭕


④ [ ⭐ ⭐ ] PRIMARY KEY (PK - 부모테이블)

  • 식별자 규칙을 물리적 모델링 한 것 : 기본 키,주 키, 프라이머리 키

  • 유일하고 고유한 특징을 PK로 지정

  • NULL 값 ❌ + 중복 ❌

  • 슈퍼키 : 하나의 컬럼이 아닌 여러 컬럼을 합쳐서 PK로 만든 것


ALTER TABLE 회원정보 ADD CONSTRAINT PK_회원정보 PRIMARY KEY(회원ID) ;
ALTER TABLE 회원연락처 ADD CONSTRAINT PK_회원연락처 PRIMARY KEY(회원ID,구분코드) ;

[ ❗ ] 회원ID, 구분코드 2개를 PK로 보는게 아니라,
👉 2개를 합친 행을 PK로 보겠다는 말


⑤ [ ⭐ ⭐ ] FOREIGN KEY (FK - 자식테이블)

  • 다른 테이블에 있는 프라이머리키를 참조하는 컬럼을 FK로 지정

  • 외래키라고 부르며, 데이터 무결성을 지원

  • 참조하는 테이블의 프라이머리키반드시 동일한 값으로 구성되여야 함

  • 부모테이블에 있는 값은 무조건 자식테이블에 있어야 함

  • 부모테이블에는 있지만, 자식테이블에는 없을 수 있음

데이터 무결성(Data Integrity) :
데이터베이스에 저장된 데이터가 정확하고 일관성 있게 유지되는 것을 보장하는 개념

  • B가 A를 참조한다
    👉 A(부모-PK) / B(자식-FK)


✔️ DROP : 테이블 및 제약조건 삭제

  • DROP TABLE : 테이블을 삭제

  • DROP TABLE CASCADE CONSTRAINTS : 테이블 연결고리까지 삭제

  • 제약조건의 부분만 삭제도 가능

  • DROP 후 복구 안 됨, 실무에서 주의

부모(PK)↔️(FK) 엮인 테이블의 경우 바로 삭제 ❌


  • ALTER TABLE 테이블명 DROP CONSTRAUNT 제약조건명 :
    ▶ 생성 되어 있는 테이블명의 제약조건만을 삭제하겠다.

✔️시퀀스(SEQUENCE)

  • 자동으로 증가하는 값을 만들어주는 객체
  • CREATE SEQUENCE 희망이름 ; 👉 생성
  • PK가 될 만한 컬럼이 없을 때 사용 예) 학교에서 3번 하면 김철수

✔️뷰(VIEW)

  • 가상의테이블, 물리적으로 존재 X

  • 정보 보안 측면에서 유리해서 사용

  • 자주 사용하는 쿼리를 VIEW에 저장해서 사용

profile
▪️ 검정 테마를 기준으로 작성되었읍니다.

0개의 댓글