SQL 첫걸음(ch25. 데이터베이스 객체 ~ ch26. 테이블 작성 삭제 변경)

김도형·2022년 10월 12일
0

25장 데이터베이스 객체

데이터베이스 객체란? 테이블이나 뷰, 인덱스 등 데이터베이스 내에 정의하는 모든 것을 일컫는 말

SELECT나 INSERT 등 클라이언트 객체 조작 SQL 명령은 데이터베이스 객체라고 부를 수 없다.

객체의 제약 사항, 명령 규칙(테이블 열의 제약 사항과 공통점)

  • 기존 이름이나 예약어와 중복하지 않음
  • 숫자로 시작할 수 없음.
  • 언더스코어(_) 이외의 기호는 사용할 수 없다.
  • 한글을 사용할 때는 더블쿼트(MYSQL에서는 백쿼드)로 둘러싼다.
  • 시스템이 허용하는 길이를 초과하지 않는다.

스키마

데이터베이스 객체는 스키마 라는 그릇 안에 만들어짐.
그림과 같이
테이블은 열을 관리하고
스키마는 테이블, 뷰, 인덱스를 관리합니다.

스키마가 서로 다르면 이름이 같아도 상관없다.

우리는 이것을 이름이 충돌하지 않도록 기능하는 그릇을 네임스페이스라고 합니다.
즉, 스키마나 테이블은 네임스페이스이기도 합니다.

26장 테이블 작성 삭제 변경

작성(CREATE)
삭제(DROP)
변경(ALTER)

CREATE TABLE 테이블명(열 정의1, 열 정의2..)
DROP TABLE 테이블명 
ALTER TABLE 테이블명 하부명령

위의 명령어는 DDL에 속한다.
DDL은 데이터를 정의하는 명령로 스키마 내의 객체를 관리할 때 사용

테이블 작성

  • CREATE TABLE, CREATE VIEW 지정가능

문법

열명 자료형[DEFAULT 기본값][NULL|NOT NULL]

테이블 삭제

문법

DROP TABLE 테이블명

데이터 행 삭제

DML의 DELETE 명령과 DDL의 TRUNCATE는 결과값 같지만 처리 속도가 다르다.(단, 전체 행 삭제일 경우)

  • DML의 DELETE 명령 : 행 단위로 처리되기 때문에 상당히 느리다.
  • DDL의 TRUNCATE 명령 : 전체 행으로 삭제되서 상당히 빠르다.
    (단, 전체 행 삭제이므로, WHERE 구 사용할 수 없다)

테이블 변경

문법

ALTER TABLE 테이블명 변경명령 
  • 열 추가, 삭제, 변경
  • 제약 추가, 삭제

열 추가

ALTER TABLE 테이블명 ADD 열 정의 
ALTER TABLE sample62 ADD newcol INTEGER;

출처 : SQL 첫걸음 아사이 아츠시 지음 [한빛미디어] p.237

NOT NULL 제약이 걸린 열을 추가할 때는 기본값 지정

열 속성 변경

ALTER TABLE 테이블명 MODIFY 열 정의 
ALTER TABLE sample62 MODIFY newcol VARCHAR(20);

열 이름 변경

ALTER TABLE 테이블명 CHANGE [기존 열 이름][신규 열 정의]
ALTER TABLE sample62 CHANGE newcol c VARCHAR(20);

열 삭제

ALTER TABLE 테이블명 DROP 열명
ALTER TABLE sample62 DROP c;

총 정리

  • 스키마와 객체
    • 데이터베이스 객체는 스키마라는 불리는 네임스페이스 안에 작성
    • 객체에는 이름을 붙일 수 있으며 DDL 명령으로 관리
  • 테이블
    • 테이블은 데이터베이스에서 기본이 되는 객체입니다.
    • 테이블은 CREATE TABLE 명령으로 작성하고 DROP TABLE 명령으로 삭제

출처 : SQL 첫걸음 아사이 아츠시 지음 [한빛미디어]

profile
3년간 웹/앱, 자동제어 QA 🔜 개발자로 전향하여 현재 교육 회사에서 백엔드 개발자로 근무 중입니다.(LinkedIn : https://www.linkedin.com/in/dohyoung-kim-5ab09214b)

0개의 댓글