SQL개념(1)
SQL 개요
- Structured Query Langage 는 관계대수에 기초하여 RDMS의 데이터관리를 위해 설계된 언어
SQL의 구성
1) 데이터 정의 언어(DDL)
- 데이터베이스 내의 객체를 생성 및 삭제하고 그 구조를 조작하는 명령어의 집합
- 데이터가 준수해야 하는 제약조건을 기술
- CREATE, ALTER, DROP 문 등
객체의 종류
- 데이터 저장 - 테이블, 인덱스, 뷰
- 데이터 조작 - 트리거, 프로시저, 함수 등
1-1 스키마 생성
스키마 란?
- 스키마 = 데이터베이스
- 한 조직의 데이터베이스 시스템의 운영에 필요한 테이블, 인덱스, 뷰 등의 데이터베이스 객체의 집합
-- 1. 스키마 생성
CREATE SCHEMA [스키마 이름]
-- 2. 스키마 삭제
DROP SCHEMA [스키마 이름]
1-2 테이블 생성 / 삭제
-- 1. 테이블 생성
CREATE TABLE userTBL --회원 테이블
( userID CHAR(8),
userName NVARCHAR2(10),
birthYear NUMBER(4),
addr NUMBER(2),
mobile1 CHAR(3),
mobile2 CHAR(8),
height NUMBER(3),
mData DATE
);
-- 2. 테이블 삭제
DROP TABLE [테이블 이름]
1-3 테이블 수정
- 생성된 테이블에 컬럼을 추가, 수정 또는 삭제하는 명령어
-- 테이블 수정
ALTER TABLE [테이블 이름]
[ADD COLUMN 컬럼 데이터타입[제약조건]]
[DROP COLUMN 컬럼 이름]
[CHANGE COLUMN 수정전컬럼 수정후컬럼]
[MODIFY COLUMN 컬럼 데이터타입]
2) 데이터 조작어(DML)
- DDL에 의해 정의된 테이블에 데이터를 조작하는 명령어의 집합
- 데이터에 대한 CRUD(생성, 검색, 삭제, 수정) 명령을 포함
- INSERT, UPDATE, DELETE, SELECT 문 등
3) 데이터 제어어(DCL)
- 이건 운영할 때 사용하는데 지금 굳이 알아둘 필요는 없다.
데이터 타입
정수 데이터 타입
TINYINT
- 1바이트 정수, -128 ~ 127- 나이, 학년등의 크기가 작은 정수
SMALLINT
- 2바이트 정수, -32768 ~ 32767- 물품번호, 인원 등 중간 중간 크기의 정수
INT
- 4바이트 정수, 약 -20억 ~ 20억- 물품의 금액, 전화번호 등의 일반 크기의 정수
BIGINT
- 8바이트 정수- 계좌의 잔고, 천문학적인 크기의 정수
실수 데이터 타입
- 고정 소수형
DECIMAL(M,N)
: 전체 M자리, 소수점 이하 N자리의 숫자를NUMERIC
: 위와 같이 정수자리와, 소수자리의 범위를 고정시킴
- 부동 소수형
FLOAT
: 4바이트 크기 부동 소수FLOAT(P)
: 소수점 이하 P개 자리의 부동 소수DOUBLE
: 8바이트 크기 부동 소수형
날짜 및 시간 데이터 타입
- 날짜 데이터 타입
DATE
: ‘YYYY-MM-DD’ 형식의 시간YEAR
: ‘YYYY’ 형식의 연도
- 시간 데이터 타입
TIME
: ‘HH:MI:SS’ 형식의 시간
- 날짜 및 시간 데이터 타입
DATETIME
:’YYYY-MM-DD HH:MI:SS’ 형식의 날짜 및 시간TIMESTAMP
: DATETIME과 동일하다!
문자 데이터 타입
CHAR(N)
: 최대 길이가 N인 고정길이 문자열VARCHAR(N)
: 최대 길이가 N인 가변길이 문자열TEXT
: 길이가 최대 2~4GB인 가변길이 문자열CLOB
: 길이가 최대 2~4GB인 가변길이 문자열ENUM
: 유한개의 문자열 집합 중 하나의 값을 선택- 성별, 혈액형
제약조건
- 테이블과 테이블에 존재한는 데이터를 무결하게 관리하기 위한 목적으로 사용
- DBMS는 테이블 조작 시 테이블에 정의된 제약조건을 만족시키는지 지속적으로 검사
제약조건의 종류
PRIMARY KEY
: 기본키 지정, UNIQUE와 NOT NULL 특성FOREIGN KEY
: 외래키 지정, 참조 컬럼 정의NOT NULL
: NULL이 될 수 없는 컬럼 지정UNIQUE
: 동일한 컬럼값을 가질 수 없음은AUTO_INCREMENT
: 레코드가 추가될 떄 자동으로 1부터 1씩 증가CHECK
: 컬럼 값이 특정 조건 준수 여부 결정
댓글남기기