본문 바로가기
DB/RDBMS

4. SQL(1)

by nomfang 2021. 4. 19.
728x90
반응형

SQL의 개요

  • database
    데이터의 관리와 사용을 완벽히 분리하기 위해 db사용,
    database 프로그램의 언어가 필요하게 되었다

SQL은 관계대수에 기초하여 RDBMS의 관리를 위해 설계된 언어

1986년 ANSI, 1987년 ISO에서 표준으로 제정

  • 국제표준을 확장한 독자적 버전이 존재

특징

  • 비절차적(선언형) 언어, 필요한 데이터만 기술
  • 인간의 언어(자연어)와 매유 유사하고 간단, 명료하다

데이터 정의 언어 (DDL)

  • 데이터베이스 내의 객체를 생성 및 삭제, 구조를 조작
  • 데이터가 준수해야하는 제약조건 기술
  • CREATE, ALTER, DROP 등

데이터 조작 언어 (DML)

  • DDL에 의해 정의된 테이블의 데이터를 조작하는 명령어의 집합
  • 데이터에 대한 CRUD(생성, 검색, 삭제, 수정)
  • INSERT, UPDATE, DELETE, SELECT 등

 

데이터 정의 언어의 사용

  1. 데이터베이스 객체 생성, 삭제 또는 구조 수정
  2. 데이터 베이스 객체 종류
    • 데이터 저장 - 테이블, 인덱스, 뷰
    • 데이터 조작 - 트리거, 프로시저, 함수
  3. 데이터 정의 명령어의 종류
  • CREATE - 객체 생성
  • ALTER - 객체 수정
  • DROP - 객체 삭제

스키마

  1. 스키마 == 데이터 베이스
  2. 테이블, 인덱스, 뷰 등의 데이터베이스 객체의 집합
  3. 스키마 관리 방법(MySQL)
  • Forward Engineer
  • SQL 에디터
  • 네비게이터 페널
CREATE SCHEMA 스키마 이름  // 스키마 생성

DROP SCHEMA 스키마 이름  // 스키마 삭제

// 스키마는 수정하는 것이 없음 -> 수정을 원할 시 삭제 후 재생성 해야함

테이블 정의

CREATE TABLE 테이블 이름 (
    컬럼명 data type(길이) 제약조건
)

데이터 타입

컬럼이 가질 수 있는 값의 범위 (도메인)

기본 데이터 타입

문자 : CAHR, VARCHAR, TEXT
숫자 : INT, FLOAT, DOUBLE
날짜/시간 : DATE, TIME, DATETIME

정수 데이터 타입

TINYINT - 1byte
SMALLINT - 2byte
INT - 4byte (-20억 ~ 20억)
BIGINT - 8byte

실수 데이터 타입

  1. 고정 소수형
  • DECIMAL(M, N) - 전체 M자리, 소수점 이하 N자리 까지의 숫자
  • NEMERIC - DECIMAL과 동일함
  1. 부동 소수형
  • FLOAT - 4byte 부동 소수
  • FLOAT(P) - 소수점 이하 P자리 부동 소수
  • DOUBLE - 8byte

날짜/시간 데이터 타입

  1. 날짜
    DATE - 'YYYY-MM-DD' 형식
    YEAR - 'YYYY'
  2. 시간
    TIME - 'HH:MI:SS'
  3. 날짜/시간
    DATETIME - 'YYYY-MM-DD HH:MI:SS'

문자 데이터 타입

  1. CHAR(N) - 최대 길이가 N인 고정길이 문자열
  2. VARCHAR(N) - 최대 길이가 N인 가변길이 문자열
  3. TEXT, CLOB - 최대 길이가 2~4GB의 가변길이
  4. ENUM - 유한한 문자 집합 내의 값만 들어갈 수 있는 형식

테이블 수정

  1. 생성된 테이블에 컬럼을 추가, 수정 또는 삭제 하는 명령
  2. 컬럼 삭제 또는 컬럼의 데이터 타입 수정 시 데이터 소실을 유의해야함
  3. 테이블 수정 : SQL 구문, 네비게이터 페널
ALTER TABLE 테이블 이름
    [ADD COLUMN 컬럼 데이터타입 [제약조건]]
    [DROP COLUMN 컬럼]
    [CHANGE COLUMN 수정전컬럼 수정후컬럼]
    [MODIFY COLUMN 컬럼 데이터타입]

테이블 삭제

  1. 존재하는 테이블을 스키마에서 삭제
  2. 삭제할 테이블의 모든 데이터 소실, 복구가 불가능한 연산이므로 각별한 주의
  • 테이블을 데이터베이스에서 제거
DROP TABLE 테이블 이름

제약 조건

  1. 테이블과 테이블에 존재하는 데이터를 보다 무결하게 관리하기 위한 목적 (참조 무결성)
  2. DBMS는 테이블 조작시 정의된 제약조건을 만족하는지 지속적 검사
  3. 적용하려는 제약의 유형에 따라 다양한 제약 조건을 지원

제약 조건의 종류

  1. PRIMARY KEY : 기본키, UNIQUE, NOT NULL 특성
  2. FOREIGN KEY : 외래키, 참조 컬럼 정의
  3. NOT NULL : NULL이 될 수 없는 컬럼
  4. UNIQUE : 중복 x
  5. AUTO_INCREMENT : 자동으로 1씩 증가되는 속성 값(숫자)
  6. CHECK : 사용자 정의 (특정 요건 준수 여부)
    -> CHECK(컬럼명 IN('조건1' or '조건2')) 조건에 해당하는 값만 들어갈 수 있음
CREATE TBBLE 테이블명(
    컬럼명 테이터타입 제약조건,
    컬럼명 테이터타입 제약조건

    PRIMARY KEY(컬럼명),
    FOREIGN KEY(컬럼명) REFERENCES 테이블(컬럼명)
)
반응형

'DB > RDBMS' 카테고리의 다른 글

6. SQL(3)  (0) 2021.04.29
3. 관계형 모델  (0) 2021.03.31
2. 데이터베이스 모델링  (0) 2021.03.13

댓글