728x90
반응형
SQL의 개요
- database
데이터의 관리와 사용을 완벽히 분리하기 위해 db사용,
database 프로그램의 언어가 필요하게 되었다
SQL은 관계대수에 기초하여 RDBMS의 관리를 위해 설계된 언어
1986년 ANSI, 1987년 ISO에서 표준으로 제정
- 국제표준을 확장한 독자적 버전이 존재
특징
- 비절차적(선언형) 언어, 필요한 데이터만 기술
- 인간의 언어(자연어)와 매유 유사하고 간단, 명료하다
데이터 정의 언어 (DDL)
- 데이터베이스 내의 객체를 생성 및 삭제, 구조를 조작
- 데이터가 준수해야하는 제약조건 기술
- CREATE, ALTER, DROP 등
데이터 조작 언어 (DML)
- DDL에 의해 정의된 테이블의 데이터를 조작하는 명령어의 집합
- 데이터에 대한 CRUD(생성, 검색, 삭제, 수정)
- INSERT, UPDATE, DELETE, SELECT 등
데이터 정의 언어의 사용
- 데이터베이스 객체 생성, 삭제 또는 구조 수정
- 데이터 베이스 객체 종류
- 데이터 저장 - 테이블, 인덱스, 뷰
- 데이터 조작 - 트리거, 프로시저, 함수
- 데이터 정의 명령어의 종류
- CREATE - 객체 생성
- ALTER - 객체 수정
- DROP - 객체 삭제
스키마
- 스키마 == 데이터 베이스
- 테이블, 인덱스, 뷰 등의 데이터베이스 객체의 집합
- 스키마 관리 방법(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
실수 데이터 타입
- 고정 소수형
- DECIMAL(M, N) - 전체 M자리, 소수점 이하 N자리 까지의 숫자
- NEMERIC - DECIMAL과 동일함
- 부동 소수형
- FLOAT - 4byte 부동 소수
- FLOAT(P) - 소수점 이하 P자리 부동 소수
- DOUBLE - 8byte
날짜/시간 데이터 타입
- 날짜
DATE - 'YYYY-MM-DD' 형식
YEAR - 'YYYY' - 시간
TIME - 'HH:MI:SS' - 날짜/시간
DATETIME - 'YYYY-MM-DD HH:MI:SS'
문자 데이터 타입
- CHAR(N) - 최대 길이가 N인 고정길이 문자열
- VARCHAR(N) - 최대 길이가 N인 가변길이 문자열
- TEXT, CLOB - 최대 길이가 2~4GB의 가변길이
- ENUM - 유한한 문자 집합 내의 값만 들어갈 수 있는 형식
테이블 수정
- 생성된 테이블에 컬럼을 추가, 수정 또는 삭제 하는 명령
- 컬럼 삭제 또는 컬럼의 데이터 타입 수정 시 데이터 소실을 유의해야함
- 테이블 수정 : SQL 구문, 네비게이터 페널
ALTER TABLE 테이블 이름
[ADD COLUMN 컬럼 데이터타입 [제약조건]]
[DROP COLUMN 컬럼]
[CHANGE COLUMN 수정전컬럼 수정후컬럼]
[MODIFY COLUMN 컬럼 데이터타입]
테이블 삭제
- 존재하는 테이블을 스키마에서 삭제
- 삭제할 테이블의 모든 데이터 소실, 복구가 불가능한 연산이므로 각별한 주의
- 테이블을 데이터베이스에서 제거
DROP TABLE 테이블 이름
제약 조건
- 테이블과 테이블에 존재하는 데이터를 보다 무결하게 관리하기 위한 목적 (참조 무결성)
- DBMS는 테이블 조작시 정의된 제약조건을 만족하는지 지속적 검사
- 적용하려는 제약의 유형에 따라 다양한 제약 조건을 지원
제약 조건의 종류
- PRIMARY KEY : 기본키, UNIQUE, NOT NULL 특성
- FOREIGN KEY : 외래키, 참조 컬럼 정의
- NOT NULL : NULL이 될 수 없는 컬럼
- UNIQUE : 중복 x
- AUTO_INCREMENT : 자동으로 1씩 증가되는 속성 값(숫자)
- 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 |
댓글