create database 테스트
exec sp_helpdb 테스트
drop database 테스트
create database 테스트
on -- 물리적인 파일 크기 설정
( filename='d:\테스트.mdf', name='테스트',
size=5mb, maxsize=10mb, filegrowth=1mb ),
( filename='d:\테스트2.ndf', name='테스트2',
size=3mb )
use 테스트
drop database 테스트
sp_helpdb 테스트
create table 학생(
학번 char(9),
이름 varchar(10),
성별 varchar(4))
insert into 학생
values ('201012345', '홍길동', '남자')
----------------------------------------------
제약조건
- 기본키 : 유일한 값을 반드시 넣어라
테이블 당 오직 한 개만 설정
unique + not null
개체무결성 : 기본키는 not null
- 외래키 :
참조무결성 : 한 테이블의 외래키는 다른 테이블의 기본키
- check : 도메인무결성과 관련
(필드가 갖는 값의 범위)
입력 값의 범위를 제한
- not null : 반드시 값을 넣어라
- unique : 유일한 값만 넣어라
- default
*필드 수준
create table 회원(
아이디 varchar(10) constraint pk_회원_아이디 primary key,
이름 varchar(10) constraint nn_회원_이름 not null,
핸폰번호 varchar(20) constraint uq_회원_핸폰번호 unique,
성별 varchar(4) constraint ck_회원_성별 check(성별 in('남자', '여자')),
포인트 int default 100,
등록일 datetime default getdate())
--*테이블 수준
create table 회원(
아이디 varchar(10),
이름 varchar(10)constraint nn_회원_이름 not null, -- not null은 테이블 설정으로만 가능
핸폰번호 varchar(20),
성별 varchar(4),
포인트 int default 100,
등록일 datetime default getdate()
constraint pk_회원_아이디 primary key(아이디), -- 복합키는 필드설정으로만 가능
constraint uq_회원_핸폰번호 unique(핸폰번호),
constraint ck_회원_성별 check(성별='남자' or 성별='여자'))
drop table 회원
create table 게시판(
번호 int identity primary key,
제목 varchar(50) default '[제목없음]',
내용 varchar(50) not null,
아이디 varchar(10) references 회원(아이디) not null,
등록일 datetime default getdate() )
drop table 게시판
select * from 회원
select * from 게시판
insert into 게시판(내용) values('하하하') --o
insert into 게시판(내용, 아이디) values('하하하', null) --x
-- *제약조건을 주는 위치
-- - 필드 수준
-- : 필드 옆에 제약조건을 넣어줌
-- - 테이블 수준
-- : 필드에 대한 정의가 끝나고 제약조건을 별도로 처리
insert into 회원(이름) values('박사과') --x
insert into 회원(이름, 아이디) values('박사과', 'apple') --o
insert into 회원(이름, 아이디) values('박사과', 'apple') --x
insert into 회원(이름, 아이디, 핸폰번호) values('김바나나', 'banana', '010-0000-0000') --o
-- 핸드폰번호를 넣지 않으면 null이 겹쳐서 유니크 제약조건에 위반됨
insert into 회원(아이디, 성별, 핸폰번호, 이름)
values('orange', '여자', '010-1111-1111', '정오렌지')
select * from 회원
exec sp_help 회원
drop table 회원
* 일련번호
create table 번호(
일련번호 int identity, -- 초기값, 증가치 (디폴트 1,1)
제목 varchar(10),
등록일 datetime default getdate())
insert into 번호(제목) values('하하')
select * from 번호
delete from 번호 where 일련번호=4 --삭제 이후 일련번호는 5부터 시작
drop table 번호
----------------------------------------------------------------
계산필드
create table 성적(
학번 char(5),
국어 int,
영어 int,
수학 int,
총점 as (국어+영어+수학),
평균 as ((국어+영어+수학)/3))
insert into 성적(학번, 국어, 영어, 수학)
values('00001', 90, 80, 90)
drop table 성적
select * from 성적
create database 테스트
on (filename='d:\test\test.mdf', name='test',
size=3mb, maxsize=5mb, filegrowth=1mb),
(filename='d:\test\test2.mdf', name='test2',
size=3mb, maxsize=5mb, filegrowth=1mb)
log on (filename='d:\test\testlog.ldf', name='testlog',
size=3mb, maxsize=5mb, filegrowth=1mb)
use 테스트
create table 부서
(
부서번호 char(1) constraint pk_부서_부서번호 primary key,
부서명 varchar(20) constraint nn_부서_부서명 not null,
부서위치 varchar(20) constraint uk_부서_부서위치 unique
)
create table 사원
(
사번 char(5) primary key,
이름 varchar(10) constraint nn_사원_이름 not null,
기본급 int default 1000000,
전화 varchar(20) constraint uk_사원_전화 unique,
부서 char(1) constraint fk_사원_부서 references 부서(부서번호),
constraint ck_사원_사번 check(사번 like '[A-Za-z]%'),
constraint ck_사원_기본급 check(기본급 between 1000000 and 10000000),
constraint ck_사원_전화번호 check(전화 like '02%'),
)
create table 급여
(
사번 char(5) references 사원(사번),
급여일 datetime default getdate(),
기본급 int default 1000000 constraint nn_급여_기본급 not null,
세금 as (기본급 * 0.05),
실수령액 as (기본급-(기본급*0.05)),
constraint pk_급여_사번급여일 primary key(사번, 급여일)
)
update 부서 set 부서명='인사개발부' where 부서명='인사부'
update 부서 set 부서명='개발부', 부서위치='본관 5층' where 부서명='제품개발부'
delete from 사원 where 이름='성춘향'
책 없어서 어렵다
'Dev > DB' 카테고리의 다른 글
ms-SQL 네 번째 수업 (0) | 2014.03.31 |
---|---|
ms-SQL 세 번째 수업 (0) | 2014.03.24 |
ms-SQL 첫 번째 수업 (0) | 2014.03.10 |
[Oracle] 오라클을 해보자 (0) | 2013.11.26 |
[Oracle] 계정 생성 및 삭제 (DDL) (0) | 2013.11.19 |