728x90
목차
1. 스키마 정의
2. 자료형
3. 제약조건

 

1. 스키마 정의

스키마 정의

  • DDL
  • 데이터베이스 생성
  • 테이블 생성
create database sampelDB:
use sampleDB;
create table BusinessCard(Name varchar(255), Address varchar(255), Telephone varchar(255));
insert into BusinessCard values (‘Bob’, ’Seocho-dong 123’, ‘123-4567’);
select * from BusinessCard;
drop table BusinessCard;

 

2. 자료형

자료형(Data Types)

  • 정수형(부호 있음/없음)
  • 실수형(길이, 소수점 이하 자리 수)

—> FLOAT, DOUBLE은 2진법

  • 문자열
  • TEXT 문자열

—> MySQL에서는 4Gbyte까지의 문자열을 지원한다.

  • BLOB(Binary Large Object) —> image, file을 관리할때 사용

—> 최대 4Gbyte

  • 시간 관련

—> DATETIME과 TIMESTAMP의 차이 : 시작 시점이 다름

1970-01-01 00:00:00 이후(Unix Epoch)에 걸린 시간을 기록 

 

3. 제약조건

제약조건(Constraint)

입력 데이터의 제약조건을 걸어 해당되지 않는 데이터는 입력되지 않음

NOT NULL 데이터가 NULL 값을 받아들이지 않음
UNIQUE 테이블에 동일한 값이 입력되어 있을 경우 받아들이지 않음
PRIMARY KEY 기본키 제약조건(UNIQUE, NOT NULL 조건)
FOREIGN KEY 외래키 제약조건
CHECK 입력값 체크 (: Age >= 0) , MySQL에서는 동작하지 않음
DEFAULT 컬럼값이 입력되지 않으면 기본값을 입력

ex - NOT NULL

create table BusinessCard(Name varchar(255) not null, Address varchar(255), Telephone varchar(255));
Insert into BusinessCard values(NULL, ‘Seocho-dong 123’, ‘123-4567); —> 오류

ex - UNIQUE

create table BusinessCard(Name varchar(255) unique, Address varchar(255), Telephone varchar(255));
Insert into BusinessCard values(‘Bob’, ‘Seocho-dong 123’, ‘123-4567);
Insert into BusinessCard values(‘Bob’, ‘Seocho-dong 345’, ‘321-4321); —> 오류

ex - PRIMARY KEY —> 후보키 중에 하나를 선택하는 것(unique한 값을 선택, 하나 이상)

create table BusinessCard(id int not null, Name varchar(255), Address varchar(255), Telephone varchar(255), primary key(id));
Insert into BusinessCard values(1, ‘Bob’, ‘Seocho-dong 123’, ‘123-4567);
Insert into BusinessCard values(2, ‘Bob’, ‘Seocho-dong 345’, ‘321-4321);
select * from BusinessCard;

ex - FOREIGN KEY —> 참조무결성(insert와 delete시, 순서가 존재한다.)

create table BusinessCard(id int not null, Name varchar(255), Address varchar(255), Telephone varchar(255), primary key(id));
create table Salary(id int not null, salary_amount int, business_card_id int not null, primary_key(id), foreign key(business_card_id) references BusinessCard(id));
insert into BusinessCard values(1, ‘Bob’, ‘Seocho-dong 123’, ‘123-4567’);
insert into Salary values(1, 5000, 1);
select * from BusinessCard;
select * from Salary;

—> 참조무결성으로 BusinessCard에 데이터가 먼저 들어간 다음 Salary에 데이터가 들어가야한다.

—> 삭제할때는 반대로 Salary에서 데이터를 삭제 후, BusinessCard에서 삭제해야한다.

ex - CHECK

create table BusinessCard(Name varchar(255), Address varchar(255), Telephone varchar(255), Age int, check(Age > 0));
insert into BusinessCard values(‘Bob’, ‘Sinsa-dong 345’, ‘321-4321’, 0); —> 오류

ex - DEFAULT

create table BusinessCard(Name varchar(255), Address varchar(255) default ’SEOUL’, Telephone varchar(255));
insert into BusinessCard values(‘Bob’, NULL, ‘123-4567’);
select * from BusinessCard;

ex - AUTO INCREMENT

create table BusinessCard(ID int auto_increment, Name varchar(255), Address varchar(255), Telephone varchar(255), primary key(id));
insert into BusinessCard(Name, Address, Telephone) values (‘Bob’, ’SEOUL’, ‘123-4567’);
select * from BusinessCard;
728x90

+ Recent posts