테이블을 생성하기 전에 데이터베이스를 먼저 만들어야 한다.
MS-SQL에서 데이터베이스를 생성해보자
데이터베이스 만들기
T-SQL을 이용하여 데이터베이스를 만들어보자
사용자 DB를 생성하려면, master DB를 사용해야 한다.
새 쿼리(New Query) 를 클릭하면 새로운 쿼리 창이 뜬다
내용을 입력 한 후 (나는 test01이라는 데이터베이스를 만들었다)
실행(Execute)를 클릭하면 새 쿼리가 잘 생성 되었다는 코멘트가 나온다.
Object Explorer를 새로고침 해보면
test01이 생성 된 것을 확인 할 수 있다.
Tip
MS-SQL에서 제공하는 기본 속성 type
숫자 타입
bit : 1bit
tinyint : 0 ~ 255 (정수)
smallint : -2^15 ~ 2^15-1 (정수) 16bit
int : -2^31 ~ 2^31-1 (정수) 32bit
bigint : -2^63 ~ 2^63-1 (정수) 64bit
decimal[(p[,s])[, numberic([p[,s])] : decimal(5,2) → 123.45
float : 4byte float (실수)
real : 8byte float (실수)
datetime : 1755/1/1 ~ 9999/12/31 (8byte) 날짜
smalldatetime : 1990/01/01 ~ 2079/6/6 (4byte) 날짜
문자 타입
char[(n)] : 고정길이 문자열
varchar[(n)] : 0 ~ 255 (정수)
nchar[(n)] : for unicode(2byte) → n → 2n bytes (유니코드를 위한 고정 문자열)
nvarchar[(n)] : for unicode (유니코드를 위한 가변길이 문자열)
IDENTITY 타입
자동 증가 속성 타입
IDENTITY(10,2) → 초기값 10, 2씩 증가함
테이블(Table) 생성
test01 데이터베이스에 테이블을 생성해보자
/*CREATE TABLE 사용법*/
CREATE TABLE 테이블명
(속성명, 속성타입, [제약조건],
속석명 속성타입, ....)
내용 입력 후 실행 누른다
dbo.membertest 테이블이 성공적으로 만들어 진 것을 확인 할 수 있다.
튜플(Tuple) 추가
생성한 membertest 테이블에 튜플을 추가해보자
/*INSERT 사용법*/
INSERT INTO 테이블명(속성명, 속성명, ...)
VALUES(속성값, 속성값, ...)
여기서 INTO는 생략이 가능하다.
다만, id 속성은 자동 증가 타입을 부여 해 놓았기 때문에 따로 값을 지정할 수 없다.
입력 후 실행을 클릭하면 튜플이 생성 되었다는 코멘트가 뜬다.
튜플의 검색
위에서 생성한 튜플을 확인하려면 SELECT 구문으로 튜플을 검색해야 한다.
/*SELECT 구문 사용법*/
SELECT 속성명, 속성명, ...
FROM 테이블명
[WHERE 조건]
새 쿼리를 생성 한 뒤 select 구문으로 튜플을 검색한 결과
위에서 생성 했던 내용 대로 잘 만들어진 것을 확인 할 수 있다.
테이블의 구조 변경
테이블의 구조를 변경 할 때에는 ALTER TABLE 구문을 사용한다.
TYPE | 내용 |
ADD column | 속성 추가 |
ALTER column | 속성 타입 변경 |
DROP column | 속성 제거 |
*주의사항*
ALTER column이 경우 속성값의 범위를 증가시키는 경우에는 문제가 없지만
범위를 감소시킬 경우에는 현재 테이블이 저장된 속성값들에 따라 허용이 안 될 수도 있다
/*ALTER TABLE (ADD column)*/
alter table [테이블명]
add [속성명] [type]
/*ALTER TABLE (alter column)*/
alter table [테이블명]
alter column [속성명] [type]
테이블 지우기
DROP TABLE : 테이블 자체를 지운다.
DROP TABLE [테이블명]
TRUNCATE TABLE : 테이블의 내용만 지우고, 테이블은 남겨 놓는다.
TRUNCATE TABLE [테이블명]
*CREATE, ADD, ALTER, DROP, TRUNCATE 등은 모두 데이터 정의어(DDL) 이기 때문에 명령문이 수행되고 나면 회복이 불가능함*
무결성 제약조건
구문 | 내용 |
NOT NULL | NULL 값 허용 불가 |
UNIQUE | 하나의 테이블 내에서 해당 속성값은 한번만 나옴 |
PRIMARY KEY | 기본키(UNIQUE + NOT NULL) |
FOREIGN KEY | 외래키 |
CHECK | 도메인 무결성 |
1. 테이블 생성 시 속성에 제약조건 지정
CREATE TABLE [테이블명]
(속성명 속성타입 [CONSTRAINT [제약조건명] 제약조건],
속성명 속성타입,
...
)
2.참조 무결성 제약조건
- 외래키 값은 다른 테이블의 기본키 값들 중 하나이어야 함
속성명 속성타입 [CONSTRAINTS 제약조건명]
REFERENCE 참조테이블명(속성명)
3. 도메인 무결성 제약조건
- 입력 값의 제한
4. 테이블 수준 제약 조건
- 속성 단위로 제약 조건 설정은 표현에 있어서 제약이 따른다. (복합키의 경우 여러개의 속성이 합쳐져 키가 됨)
CREATE TABLE 테이블명(
속성명 속성타입
[CONSTRAINT 제약조건명] 제약조건 (속성명)
)
제약조건의 추가 & 제거
1. 테이블을 생성한 후 제약조건을 추가 하거나 제거할 필요성이 있다.
- 제약조건도 테이블의 구조 정보에 속하기 때문에 ALTER TABLE을 이용한다.
- 추가 : ADD CONSTRAINT
- 제거 : DROP CONSTRAINT
* 주의점 *
ALTER CONSTRAIN는 없음
2. 제약조건 이름을 지정해 두어야 추가 or 제거가 수월하다.
ALTER TABLE 테이블명
ADD [CONSTRAINT 제약조건명] 제약조건(속성명)
ALTER TABLE 테이블명
DROP CONSTRAINT 제약조건명
'database > sql' 카테고리의 다른 글
SQL 기초 - SQL의 특징 및 MS-SQL설치 방법 (0) | 2022.10.30 |
---|