Versions available for this page: CUBRID 8.2.1 | CUBRID 8.3.0 | CUBRID 8.3.1 | CUBRID 8.4.0 | CUBRID 8.4.1 |
컬럼은 테이블에서 각 열에 해당하는 항목이며, 컬럼은 컬럼 이름과 데이터 타입을 명시하여 정의한다.
column_name column_type
[
{ SHARED [ <value_specification> ] | DEFAULT <value_specification> } |
[ AUTO_INCREMENT [(seed, increment)] ] |
[ NOT NULL ] |
[ UNIQUE ] |
[ PRIMARY KEY ] |
[ FOREIGN KEY REFERENCES... ]
]
컬럼 이름은 '_', '#', '%'를 포함하는 알파벳으로 구성된 한 단어이다. 컬럼 이름은 도메인을 표현하는 단어가 포함되는 것이 좋다.
다음은 full_name과 age, 2개의 컬럼을 가지는 manager2 테이블을 생성하는 예제이다.
CREATE TABLE manager2 (full_name VARCHAR(40), age INT );
컬럼은 정의할 때 SHARED, DEFAULT 구문을 이용하여 초기값을 설정할 수 있다.
남자 선수들의 정보를 저장하는 man 테이블을 생성한다. gender 컬럼을 SHARED로 지정한다.
CREATE TABLE man ( name VARCHAR(40), gender CHAR(1) SHARED );
AAA 선수와 BBB 선수를 입력한다. gender 컬럼이 SHARED로 정의 되어 있기 때문에 모든 행이 그 값을 공유한다. BBB 선수의 gender를 입력하지 않아도 'M'으로 되어있는 것을 알 수 있다.
INSERT INTO man VALUES ( 'AAA','M');
INSERT INTO man (name) VALUES ('BBB');
csql> SELECT * FROM man;
csql> ;x
=== <Result of SELECT Command in Line 1> ===
name gender
============================================
'AAA' 'M'
'BBB' 'M'
2 rows selected.
이번엔 여자선수들의 정보를 저장하는 woman 테이블을 생성한다. gender에 디폴트 값을 W로 지정한다. gender 값을 입력하지 않아도 디폴트 값인 'W'가 입력된다.
CREATE TABLE woman ( name VARCHAR(40), gender CHAR(1) DEFAULT 'W' );
INSERT INTO woman (name) VALUES ('AAA');
csql> SELECT * FROM woman;
csql> ;x
=== <Result of SELECT Command in Line 6> ===
name gender
============================================
'AAA' 'W'
1 rows selected.
SHARED, DEFAULT 값은 ALTER CLASS 문장을 통해 값을 변경할 수 있다.
자동 증가 특성은 수치형 컬럼에 각 행의 숫자 값을 자동으로 증가하여 생성하며 초기값과 증가값을 명시하여 정의한다.
AUTO_INCREMENT [(seed, increment)]
다음은 자동 증가 특성이 사용된 athlete 테이블의 스키마이다.
CREATE TABLE athlete (
code INTEGER AUTO_INCREMENT(16693, 1) PRIMARY KEY,
name VARCHAR(40) NOT NULL,
gender CHAR(1) ,
nation_code CHAR(3) ,
event VARCHAR(30)
);
다음은 athlete 테이블에 선수 정보를 입력하는 예제이다. 자동 증가 특성을 사용하여 값을 입력할 때에는 테이블 이름 뒤에 자동 증가 컬럼을 제외한 컬럼 명을 정확히 표현해야 한다.
INSERT INTO athlete (name, gender, nation_code, event) VALUES ('Jang Mi-Ran', 'W', 'KOR', 'Weightlifting');
create table tb1(A smallint auto_increment, B char(5));