[DBMS] 테이블(Table) 1 - CREATE

류재성's avatar
Dec 28, 2024
[DBMS] 테이블(Table) 1 - CREATE
 

1. 테이블 만들기

 

1.1 SQL Server Management Studio(SSMS)에서 테이블 생성

 
💡
SSMS에서 테이블을 만드는 방법은 어렵지 않다. 테이블은 만드는 방법이 중요한 것이 아니라, 테이블을 어떻게 모델링(설계)했느냐가 훨씬 중요하다. 테이블을 만드는 것은 설계에 따른 SQL 문법이나 SSMS의 사용법에만 맞춰서 생성하면 된다.
 
 
USE tempdb CREATE DATABASE tableDB
 
새로운 tableDB 데이터베이스를 생성한다.
 
notion image
 
생성한 데이터베이스 > 테이블 > 새로 만들기 > 테이블을 선택한다.
 
notion image
 
새 테이블에서 컬럼과 데이터형식 , NULL 여부를 넣는다.
 
notion image
 
컬럼에 마우스 우클릭을 하면 제약조건을 설정할 수 있다.
 
notion image
 
왼쪽 상단 저장버튼을 누른 후 테이블명을 입력한다.
 
notion image
 
buyTbl 도 컬럼과 기본키를 설정한다.
 
notion image
 
num 컬럼은 순차번호이므로 시스템이 자동으로 입력하는 것이 더 낫다. 열 속성에서 테이블 디자이너에 ID사양을 사진과 같이 ‘예’로 설정한다.
 
설정 후 테이블을 저장한다.
 
notion image
 
테이블이 생성된 것을 확인할 수 있다. 테이블명 앞에 ‘dbo’는 기본 스키마로 테이블을 생성할 때 디폴트로 붙는 스키마 이름이다.
 

2. 테이블간 관계 설정

 
이번에는 테이블간 관계를 설정하자.
notion image
 
테이블 마우스 우클릭 > 디자인을 선택하면 컬럼 속성을 볼 수 있다.
 
notion image
 
컬럼 속성에서 마우스 우클릭 > 관계를 선택한다.
 
notion image
 
추가 버튼을 누른다.
 
notion image
 
추가를 누른 후 일반에서 ‘테이블 및 열 사양’에 더보기 버튼을 누른다.
 
notion image
 
‘테이블 및 열’ 에서 기본 테이블과 매칭될 컬럼을 지정해준다.
 
notion image
 
키 관계를 확인할 수 있다.
 
notion image
 
개체탐색기를 새로고침하면 ‘키’ 부분을 확인할 수 있다. PK는 기본 키, FK는 외래 키를 의미한다.
 

3. SSMS로 데이터 입력

 
 
 
notion image
 
테이블 마우스 우클릭 > 상위 200개 행 편집을 선택한다.
 
notion image
 
‘상위 200개 행 편집’에서 행 데이터를 추가할 수 있다.
 
SSMS에서 데이터를 입력할 떄는 별도로 저장할 필요는 없다. 각 행에서 커서가 떠나는 순간에 커밋되어서 테이블 내에 행 데이터가 자동 저장되기 때문이다.
 
notion image
 
만약 구매 테이블에 데이터를 입력할 때, 회원 테이블에 없는 ID를 입력하면 오류 팝업이 뜨면서 데이터가 입력되지 않는다.
 

4. T-SQL로 테이블 생성

 
CREATE TABLE 테이블명 ( 컬럼명 타입, 컬럼명 타입 ... );
 
위의 문법으로 테이블을 생성할 수 있다.
 
USE tempdb DROP DATABASE tableDB; GO CREATE DATABASE tableDB;
 
모든 쿼리창을 닫은 후 아까 생성한 tableDB를 삭제한 후 새롭게 생성한다.
 
USE tableDB CREATE TABLE userTbl ( userID CHAR(8) NOT NULL PRIMARY KEY, -- 기본키 설정 name NVARCHAR(10) NOT NULL, birthYear INT NOT NULL, addr NCHAR(2) NOT NULL, mobile1 CHAR(3) NULL, mobile2 CHAR(8) NULL, height smallint NULL, mDate DATE NULL ) CREATE TABLE buyTbl( num INT NOT NULL PRIMARY KEY IDENTITY(1,1), -- 기본키, 자동 증가 설정 userId CHAR(8) NOT NULL FOREIGN KEY REFERENCES userTbl(userID), -- 외래키 설정 prodName NCHAR(6) NOT NULL, groupName NCHAR(4) NULL, price INT NULL, amount SMALLINT NULL )
 
tableDB 에 회원 테이블과 구매 테이블을 T-SQL로 생성한다.
 
 
INSERT INTO userTbl VALUES ('LSG',N'이승기',1987,N'서울','011','1111111',182,'2008-08-08') INSERT INTO userTbl VALUES ('KBS',N'김범수',1979,N'경남','011','2222222',173,'2012-04-04') INSERT INTO userTbl VALUES ('KKH',N'김경호',1971,N'전남','019','3333333',177,'2007-07-07') INSERT INTO buyTbl VALUES('KBS',N'운동화',NULL,30,2) INSERT INTO buyTbl VALUES('KBS',N'노트북',N'전자',1000,1) INSERT INTO buyTbl VALUES('JYP',N'모니터',N'전자',200,1)
 
notion image
 
쿼리문으로 데이터를 입력한다. 회원 테이블 아이디에 ‘ JYP’가 없기 때문에 마지막 입력 쿼리는 오류가 발생하게 된다.
 
 
Share article

{CODE-RYU};