Create 문 : 데이터베이스 만들기, 테이블 만들기
DataBase 만들기
Create Database DB명
Table 만들기
Create Table [DB명.소유자명.]테이블명 (MyDB.dbo.UserInfo)
(
필드명1 데이터타입 제약조건,
필드명2 데이터타입 제약조건,
필드명3 데이터타입 제약조건,
)
1) 제약조건1 : Null허용여부
필드명 데이터형 null
필드명 데이터형 not null
ex)
Create Table UserInfo
(
id varchar(8) not null,
login int null,
userip varchar(15) null
)
2) 제약조건2 : Identity
- 데이터가 입력될 때마다 행에 순서 있는 유일한 번호를 붙일 때 사용
- DBMS에서 자동으로 채워 줌
- int형 필드에만 지정 가능
- not null 지정
- Identity(Seed, Increment)
필드명 int not null identity(1, 1)
3) 제약조건3 : 기본키 설정
각 레코드를 구별할 수 있는 유일한 값을 가지는 필드를 대상 설정, Primary Key
- 개체 무결성 제약조건, null일 수 없음
- 레코드를 식별할 수 있는 유일한 값을 가지는 필드에 설정
필드명 데이터형 not null constraint 기본키명(pk_테이블명) primary key
Foreign Key (외래키) : 참조 무결성 제약조건
Create Table 테이블명 (필드명 데이터형 not null constraint PK명 primary key,
필드명 데이터형 not null constraint FK명 foreign key reference 참조되는테이블(필드명))
테이블 생성 후 Key 제약조건 삭제
- 외래키 설정된 후에 참조되는 테이블의 기본키 삭제의 경우
외래키 먼저 제거 한 후에 참조되는 테이블의 기본키를 삭제할 수 있음
Alter Table 테이블명 drop constraint PK명
Alter Table 테이블명 drop constraint FK명
Table 수정하기
생성된 테이블에 필드 추가하기
Alter table 테이블명 add 필드명 데이터형 제약조건
1) null 필드추가 가능
2) not null 필드 추가 시에는 defalut 제약조건을 걸고 기본값 제공
생성된 테이블에서 필드 삭제
Alter table 테이블명 drop column 필드명
일반필드 (null, not null 제약조건은 그냥 삭제 가능)
기타 제약조건이 추가된 경우
- 필드 삭제문을 실행 : 제약조건 Key가 에러메시지에 노출
Alter table 테이블명 drop column 필드명
- 제약조건 삭제 : alter table 테이블명 drop constraint Key값
- 필드 삭제 : alter table 테이블명 drop column 필드명
Insert 문
Insert into 테이블명 (필드명....)
values (값1, 값2, 값3....)
- 필드명은 모든 필드를 순서대로 입력하는 경우 테이블명과 values 사이의 필드명은 생략 가능 (identity 필드 제외)
ex)
Insert into Userinfo
(id, login, userip) values ('kh', 5, '192.168.0.2')
Insert into Userinfo
(id, login) values ('test', 2)
Insert into Userinfo
(id, userip) values ('test2', '192.168.0.3')
Insert into Userinfo
(login, userip) values (3, '192.168.219.4') // id테이블이 not null 이므로 안됨
테이블 생성 후 PK설정
Alter table 테이블명 add constraint PK명 primary key (필드명)
'<DB>' 카테고리의 다른 글
[SQL] Select 문 (3) (0) | 2020.07.23 |
---|---|
[SQL] Select 문 (2) (0) | 2020.07.22 |
[SQL] Select 문 (1) (0) | 2020.07.21 |
DataBase 정의와 DBMS 정의 (0) | 2020.07.20 |