SQL 9-1. 테이블 구조
관련링크
본문
․ 테이블은 언제든지 생성할 수 있으며 심지어 사용자가 데이터베이스를 사용하는 중에도 생성할 수 있다. ․ 테이블 크기는 데이터베이스에 전체적으로 할당된 공간만큼 정의되므로 지정할 필요가 없지만 시간이 경과하면서
테이블에 어느 정도 공간이 사용될지 예측하는 것은 중요하다. ․ 테이블 구조는 원격에서 수정할 수 있다.
참고 : 사용 가능한 데이터베이스 객체가 더 있지만 이 과정에서는 설명하지 않습니다.
① 이름 지정 규칙
테이블 이름 및 열 이름 :
데이터베이스 객체의 이름 지정 표준 규칙에 따라 데이터베이스 테이블과 열 이름을 지정한다. ․ 테이블 이름과 열 이름은 문자로 시작해야 하며 1자부터 30자까지 가능하다. ․ 이름에는 A-Z,a-z,0-9,_(밑줄),$,#(적합한 문자지만 사용하지 않는 것이 좋음) 문자만 사용할 수 있다. ․ 이름은 동일한 SQL server사용자가 소유한 다른 객체의 이름과 중복되지 않아야 한다. ․ 이름은 SQL server예약어가 아니어야 한다. ․ 테이블 및 다른 데이터베이스 객체에는 기술적인 이름을 사용한다.
참고 : 이름은 대소문자를 구분하지 않는다.
예를 들어, EMPLOYEES는 eMPloyees또는 eMpLOYEES와 동일한 이름으로 취급된다.
② CREATE TABLE문
․ 다음 사항이 필요한다.
- CREATE TABLE 권한
- 저장 영역
․ 다음을 지정합니다.
- 테이블 이름
- 열의 이름,데이터 유형 및 크기
형식]
CREATE TABLE [schema.] table
(column datatype [DEFAULT expr] [, ...]);
구문 설명 :
schema 소유자 이름과 동일합니다.
table 테이블 이름입니다.
DEFAULT expr INSERT문에 값이 생략될 경우 사용될 기본값을 지정합니다.
column 열 이름입니다.
datatype 열의 데이터 유형 및 길이입니다.
SQL CREATE TABLE문을 실행하여 데이터를 저장할 테이블을 생성한다.
이 명령문은 DDL(데이터 정의어)문의 하나다.
DDL문은 데이터베이스 구조의 생성, 수정 또는 제거에 사용되는 SQL문의 일부다.
이러한 명령문은 데이터베이스에 직접영향을 주며 또한 데이터 딕셔너리(시스템 테이블)에 정보를 기록한다.
테이블을 생성하려면 사용자에게 CREATE TABLE권한이 필요하며 객체를 생성할 저장 영역이 필요하다.
데이터베이스 관리자는 사용자에게 권한을 부여하기 위해 DCL(데이터 제어)문을 사용한다.
③ 다른 사용자의 테이블 참조
․ 다른 사용자에게 속한 테이블은 해당 사용자의 스키마에 없다.
․ 다른 사용자의 테이블을 사용할 때는 소유자 이름을 접두어로 붙어야 한다.
데이터 유형 설명
VARCHAR2(size)
가변 길이 문자 데이터며 size에 최대 길이를 지정해야 합니다. (size의 최소값 : 1, size의 최대
값 : 4000)
MSSQL 디비 예제 :
CREATE TABLE dept
(
deptno smallint,
dname VARCHAR(14),
loc VARCHAR(13)
);
sp_columns dept --//테이블 확인
INSERT INTO dept values(20,'test','서울');
INSERT INTO dept(deptno, dname, loc) values(30,'테스트','부산');
INSERT INTO dept(deptno, dname) values(40,'test1');
SELECT * FROM dept
예를 들어, USER_A가 USER_B의 EMPLOYEES 테이블이 있는 경우 이 테이블에서 데이터를 검색하려면 다음과 같이 지정한다.
SELECT *
FROM user_b.employees;
스키마는 객체의 collection이고 스키마 객체는 데이터베이스의 데이터를 직접 참조하는 논리구조다.
스키마 객체는 테이블, 뷰, 동의어, 시퀀스, 내장 프로시저, 인덱스, 클러스터 및 데이터베이스 링크를 포함한다.