CUBRID 2008 R4.1 기초강좌
테이블 생성 0 0 41,924

by 큐브리드 CREATE TABLE 테이블 TABLE DEFAULT 초기값 AUTO_INCREMENT 자동증가 [2009.03.17]


CUBRID 매니저를 사용하여 테이블 생성

  [그림 1]과 같이 []localhost > 데이터베이스 > demodb > 테이블] 항목을 우클릭한 후 팝업되는 메뉴에서 [테이블 추가]를 선택한다.

  • [그림1] 테이블 추가 메뉴
  • 테이블 추가 메뉴

테이블 생성 예제

 
CREATE TABLE tmp_users ( 
     id INT NOT NULL UNIQUE, 
     name VARCHAR(100) NOT NULL, 
     age SMALLINT
); 

  테이블 추가 메뉴에서 위와 같은 테이블을 생성하려면, [그림 2]에서 새로 생성하고자 하는 테이블 이름 tmp_users를 입력하고, [추가] 버튼을 클릭하여 컬럼을 정의한다.

  • [그림2] 테이블 추가 메뉴
  • 테이블 추가 메뉴

  [그림 3]의 컬럼 추가 메뉴에서 새로 생성하고자 하는 컬럼 이름, 컬럼 타입, 컬럼 길이, 제약 조건을 명시한다.

  • [그림3] 컬럼 추가 메뉴
  • 컬럼 추가 메뉴

  [그림 4]는 예제의 스키마 정보를 모두 입력한 화면을 보여준다. 입력 정보를 확인한 후 [확인] 버튼을 클릭하여 정의된 테이블을 생성한다. 입력 정보가 바르지 않은 경우, [편집] 및 [삭제]버튼을 클릭하여 스키마 정의를 수정할 수 있다. 한편, 외래키나 인덱스를 추가하고자 한다면, [외래키/인덱스] 탭으로 이동한 후 설정할 수 있다

  • [그림4] 정의된 스키마 정보 확인
  • 정의된 스키마 정보 확인

SQL문을 실행하여 테이블 생성

  CUBRID 매니저의 질의 편집기에서 테이블 생성을 위한SQL문(CREATE TABLE)을 실행하여 테이블을 생성할 수 있다.

  아래는 CREATE TABLE문을 사용하여 tmp_olympic 테이블과 컬럼을 정의하는 예제이다. 각 컬럼은 컬럼 이름, 컬럼 타입(컬럼 길이), 제약조건 순서로 정의됨을 알 수 있다.

  보다 상세한 문법은 CUBRID 매뉴얼을 참고한다. (링크: http://www.cubrid.com/manual/newest/syntax/syntax_table_create_syntax.htm)

 
CREATE TABLE tmp_olympic ( 
     host_year INT NOT NULL PRIMARY KEY, 
     host_nation VARCHAR(40) NOT NULL, 
     host_city VARCHAR(20) NOT NULL, 
     opening_date DATE NOT NULL, 
     closing_date DATE NOT NULL, 
     mascot VARCHAR(20) , 
     slogan VARCHAR(40) , 
     introduction VARCHAR(1500) 
); 

컬럼의 생성

  컬럼은 테이블에서 각 열에 해당하는 항목이며, 컬럼 이름과 데이터 타입을 명시하여 정의한다. ALTER TABLE문을 사용하여 새로운 컬럼을 추가할 수 있으며, 기존 컬럼을 삭제 또는 편집할 수도 있다.

컬럼 이름

  컬럼 이름은 알파벳으로 지정하는 것이 바람직하다.

  특수문자는 연산자로 사용되지 않는 ‘_’ 및 ‘#’만 허용한다. 보다 상세한 식별자(identifier) 작성 원칙은 CUBRID 매뉴얼을 참고한다.

  링크 : http://www.cubrid.com/manual/newest/syntax/csql_syntaxtype_identifier.htm

컬럼의 초기값 설정(DEFAULT)

  컬럼을 정의할 때 DEFAULT절을 사용하여 컬럼 초기 값을 설정할 수 있다. 새로운 레코드가 추가되는 경우, 해당 컬럼 값을 입력하지 않아도 DEFAULT절에 지정된 값이 자동 저장된다

  다음은 DEFAULT 속성이 사용된 테이블이다.

 
CREATE TABLE tmp_users2 (
     id INT NOT NULL UNIQUE, 
     name VARCHAR(100) NOT NULL,
     start_year DATE DEFAULT '2012-01-01'
);
 
INSERT INTO tmp_users2(id, name) 
VALUES (1, '홍길동'), (2, '김철수'); 

SELECT * FROM tmp_users2;

자동 증가 특성(Auto Increment)

  숫자형 컬럼에 자동 증가 특성을 지정하면, 매 레코드마다 자동으로 해당 컬럼 값을 증가하여 저장한다. 초기 값(seed)과 증가 값(increment)을 지정한다.

구문
 AUTO_INCREMENT [(seed, increment)]  
  • - Seed : 번호가 시작하는 초기 값이다. 양의 정수만 허용되며 디폴트 값은 1이다.
  • - Increment: 행마다 증가되는 값이다. 양의 정수만 허용되며 디폴트 값은 1이다.

예제 1

  demodb > athlete 테이블 > code컬럼에는 AUTO_INCREMENT 특성이 지정되어 있다. 다음 문장을 실행하여 확인한다.

 SHOW COLUMNS FROM athlete; 

예제 2

  다음은 athlete 테이블에 선수 정보를 입력하는 예제이다. 자동 증가 특성을 사용하여 값을 입력할 때에는 테이블 이름 뒤에 자동 증가 컬럼을 제외한 컬럼 명을 정확히 표현해야 한다.

 
-- 데이터 입력 SQL문, code컬럼값은 입력하지 않음.
INSERT INTO athlete (name, gender, nation_code, event) 
VALUES ('Jang Mi-Ran', 'W', 'KOR', 'Weightlifting'); 
     
-- 데이터 출력 SQL문, code 컬럼값이 16693으로 자동 입력된 것을 확인할 수 있음.
SELECT * FROM athlete ORDER BY code DESC LIMIT 5;

참고사이트

  - http://www.cubrid.com/zbxe/home

- 강좌 URL : http://www.gurubee.net/lecture/2007

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입