날짜: 1996-05-04 | 글쓴이: 도아 | 6145 번 | 프린트 | 메일로보내기

제 4강 - mSQL - 테이블의 생성과 삭제


Create문

mSQL에서 지원하는 Create문은 테이블, Index을 생성하는데 사용된다. 사용형식 테이블의 생성

일반적으로 테이블 스키마를 생성할 때 사용된다. 테이블 명과 필드명은 반드시 영문이어야 하며, -와 같은 문자를 이름 중간에 삽입할 수 없다.

CREATE TABLE table_name (
	col_name col_type [ not null ] 
	[ , col_name col_type [ not null ] ]** 
)
인덱스의 생성

인덱스는 Unique Index와 일반적인 Index를 생성할 수 있다. Unique Index는 레코드와 레코드를 구분해주는 필드에대해 적용되며, 일단 Unique Index를 생성한 필드에는 동일한 데이터를 입력할 수 없다.

CREATE [ UNIQUE ] INDEX index_name ON table_name ( 
	field_name 
	[ , field_name ] ** 
)
데이터형

데이타형 설명
char (len) 문자열이나 8비트 데이터
text (len) 가변의 길이를 갖는 문자열(또는 8비트 데이터)로 여기서 지정하는 길이(len)은 데이터의 평균길이를 지정하는데 사용된다. 지정된 길이모다 긴 데이터는 데이터 테이블과 외부 overflow buffer로 분리된다. text 필드는 char 필드보다 느리며, Indexing에 사용될 수 없다. 또한 LIKE와 같은 정규식 연산자를 사용할 수 없으므로 사용하기전에 사용상의 잇점을 충분히 고려해야 한다.
int 부호있는 정수 값
real 십진수 또는 실수값의 과학적 표현
unit 부호없는 정수
date 31-Jan-1998과 같은 DD-Mon-YYYY 형식의 날자
time HH:MM:SS 형식의 24시로 표현된 시간
money 소수점 이하 두자리의 고정 소수점.
사용예 테이블의 생성

다음은 사원에대한 인적사항을 기록한 emp_details라는 테이블 스키마를 작성하는 예이다.

CREATE TABLE emp_details( 
	first_name char(15) not null, 
	last_name char(15) not null, 
	comment text(50),
	dept char(20), 
	emp_id int
)

이 예는 first_name, last_name, comment, dept, emp_id, salary란 필드들을 갖는 emp_details란 테이블을 현재 데이터베이스에 생성한다. first_name와 last_name은 사원의 성과 이름이므로로 반드시 존재해야 한다. 따라서 not null 속성을 부여하였다. 인덱스의 생성

위의 예에서 보여진 테이블의 구조는 index를 만들 경우 상당한 잇점을 갖는다. emp_id가 종업원을 구분하는 유일한 값을 갖는다고 가정하자. 이러한 필드는 일반적으로 primary key로 정의된다. mSQL 2.0에서는 이전 버전에서 사용되던 primary key 속성을 지원하지 않지만 index에의해 동일한 결과를 만들 수 있다. 일반적으로 질의는 성과 이름의 조합을 이용해서 이루어 지며 따라서 한 필드 이상으로 구성되는 합성 indexing로 상당한 성능을 개선할 수 있다.

CREATE UNIQUE INDEX idx1 ON emp_details (emp_id)
CREATE INDEX idx2 ON emp_details (first_name, last_name)

이렇게 생성된 index는 where 문내에서 indexing된 필드를 사용한 질의가 dB엔진으로 전송될 때 자동적으로 사용된다. 따라서 사용자는 indexing을위해 query 내에 어떠한 특별한 값을 지정할 필요는 없다. 연습

다음과 같은 표의 스키마를 생성하라. 각 필드의 속성은 다음과 같다.

sid:	 	문자형. 	 8자리. 	반드시 필요.
sname: 		문자형. 	12자리. 	반드시 필요.
phone: 		문자형. 	15자리.
lid:	 	정수형. 			반드시 필요.
class:		문자형.		20자리.		반드시 필요
lname: 		문자형. 	10자리.
pname:		문자형.	 	12자리.
descript:	텍스트.		20자리.

스키마를 생성한 후, 스키마를 보기위해서는 Unix 명령행에서 relshow 명령을 수행해야 한다. relshow 명령의 사용법은 앞절을 참고한다.

Student Table
sid sname phone lid class
924201 김재근 244-2912 1 전자공학과
964201 조경룡 123-4598 1 전자공학과
974201 김제찬 244-6597 2 전자공학과
974202 차은정 211-5555 2 전자공학과
974203 한창문 357-5678 2 전자공학과

Lecture Table
lid lname pname descript
1 CGI 이무개 CGI의 기본 개념
2 Network 김무개 네트웍의 기본 개념
3 Unix 박무개 Unix는 몰까?
4 OS 한무개 OS에 Unix가 포함되잖아.
5 WWW 차무개 이구, 인터넷 밖에 없네
Drop문

Drop문은 데이터베이스로부터 테이블이나, Index를 제거하기 위해서 사용된다. Drop문의 형식은 다음과 같다. 사용형식

DROP TABLE table_name
DROP INDEX index_name FROM table_name
DROP SEQUENCE FROM table_name
사용 예

DROP TABLE emp_details
DROP INDEX idx1 FROM emp_details
DROP SEQUENCE FROM emp_detail
연습

create 문을 사용해서 생성한 테이블을 삭제한다. msqldump를 사용해서 테이블 스키마를 저장한 후 삭제하기 바란다. msqldump의 사용법은 앞절을 참고한다.



다음글: 제 5강 - mSQL - 데이터의 삽입, 삭제, 수정 (5896)1996-05-05
이전글: 제 3강 - mSQL(mini-SQL) (4957)1996-05-03

세상사는 이야기

  • 컴퓨터를 IPTV로 만들 >
  • Warning.or.kr도 우회 >
  • 한국의 100대 부자, 어 >
  • 세상을 바꾼 크롬: 크 >
  • 장난(?)으로 시작한 여 >
  • 탈옥의 필수, QuickDo >
  • 윈도 10, 한영 전환도 >
  • 바보도 할 수 있는 War >
  • 북마크에도 확장 아이 >
  • 크롬은 가라, 비발디가 >


  • RSS 구독 (익명 | 회원 | 강좌 | 포럼)
    (C) 1996 ~ 2014 QAOS.com All rights reserved.