[그림 1]과 같이 []localhost > 데이터베이스 > demodb > 테이블] 항목을 우클릭한 후 팝업되는 메뉴에서 [테이블 추가]를 선택한다.
CREATE TABLE tmp_users ( id INT NOT NULL UNIQUE, name VARCHAR(100) NOT NULL, age SMALLINT );
테이블 추가 메뉴에서 위와 같은 테이블을 생성하려면, [그림 2]에서 새로 생성하고자 하는 테이블 이름 tmp_users를 입력하고, [추가] 버튼을 클릭하여 컬럼을 정의한다.
[그림 3]의 컬럼 추가 메뉴에서 새로 생성하고자 하는 컬럼 이름, 컬럼 타입, 컬럼 길이, 제약 조건을 명시한다.
[그림 4]는 예제의 스키마 정보를 모두 입력한 화면을 보여준다. 입력 정보를 확인한 후 [확인] 버튼을 클릭하여 정의된 테이블을 생성한다. 입력 정보가 바르지 않은 경우, [편집] 및 [삭제]버튼을 클릭하여 스키마 정의를 수정할 수 있다. 한편, 외래키나 인덱스를 추가하고자 한다면, [외래키/인덱스] 탭으로 이동한 후 설정할 수 있다
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 속성이 사용된 테이블이다.
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;
숫자형 컬럼에 자동 증가 특성을 지정하면, 매 레코드마다 자동으로 해당 컬럼 값을 증가하여 저장한다. 초기 값(seed)과 증가 값(increment)을 지정한다.
AUTO_INCREMENT [(seed, increment)]
demodb > athlete 테이블 > code컬럼에는 AUTO_INCREMENT 특성이 지정되어 있다. 다음 문장을 실행하여 확인한다.
SHOW COLUMNS FROM athlete;
다음은 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;
- 강좌 URL : http://www.gurubee.net/lecture/2007
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.