Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL

SQL CREATE TABLE 완벽 가이드: 데이터베이스에 테이블 생성하는 방법

SQL의 CREATE TABLE 문은 데이터베이스에 새로운 테이블을 추가하는 명령어입니다. 이 문을 사용하면 새 테이블의 각 열(컬럼) 이름과 각 열에 저장할 수 있는 데이터 타입을 지정할 수 있으며, 테이블에 저장되는 데이터가 충족해야 하는 제약 조건(constraints)도 함께 정의할 수 있습니다.

쿼리를 실행하고 데이터를 저장하기 전에는 먼저 데이터가 담길 테이블을 생성해야 합니다. 테이블은 데이터베이스의 모든 데이터가 저장되는 곳으로, 각 행(row)은 테이블 내 하나의 레코드에 대한 정보를 담습니다.

데이터베이스에 새 테이블을 만들 때는 CREATE TABLE 문을 사용합니다(CREATE DATABASE 문으로 데이터베이스를 생성하는 것과 유사합니다). 이 글에서는 SQL에서 테이블의 기본 개념과 데이터베이스에 테이블을 생성하는 방법을 살펴보겠습니다.

SQL CREATE TABLE 문이란?

SQL CREATE TABLE 문은 사용자가 정의한 구조를 바탕으로 데이터베이스에 새 테이블을 추가합니다. 테이블의 각 열 이름, 해당 열의 데이터 타입, 그리고 필요하다면 제약 조건을 반드시 지정해야 합니다. 물론 테이블을 생성한 후에도 구조는 언제든 변경할 수 있습니다.

먼저 CREATE TABLE 문의 기본 문법부터 확인해 보겠습니다.

CREATE TABLE table_name (
	column_name data_type constraints,
	column_name1 data_type1 constraints1
);

테이블에는 원하는 만큼 많은 열을 추가할 수 있습니다. 여러 개의 열을 정의할 때는 각 열 정의 줄 끝에 쉼표를 붙여야 합니다. 위 문법에서는 두 개의 열을 생성했습니다.

테이블 이름과 각 열의 이름, 그리고 해당 열에 저장할 데이터 타입은 필수 항목입니다. 반면 제약 조건은 선택 사항입니다. SQL 제약 조건이란 데이터가 테이블에 추가되기 전에 반드시 충족해야 하는 사전 조건을 의미합니다.

CREATE TABLE 실전 예제

인사팀에서 직원 정보를 저장하는 데이터베이스 테이블을 만들어 달라는 요청을 받았다고 가정해 보겠습니다. 이 테이블에는 직원별로 다음 정보가 저장되어야 합니다.

  • 이름(Name)
  • 이메일(Email)
  • 지점(Branch)
  • 주소(Address)
  • 직급(Job Title)
  • 이달의 직원상 수상 횟수

이 테이블을 생성하려면 다음과 같이 CREATE TABLE 문을 작성하면 됩니다.

CREATE TABLE employees (
	name varchar(20),
	email varchar(50),
	branch varchar(30),
	address varchar(75),
	title varchar(75),
	employee_month_awards integer
);

이렇게 여섯 개의 열을 가진 테이블이 생성되었습니다. 처음 다섯 개의 열은 모두 "varchar" 데이터 타입을 사용합니다. varchar는 가변 길이 문자열 타입으로, 지정한 최대 길이 범위 내에서 원하는 길이만큼 문자열을 저장할 수 있습니다.

즉, 이름(name)은 최대 20자, 주소(address)는 최대 75자까지 저장할 수 있습니다. 마지막 열인 employee_month_awards는 정수(integer) 타입으로, 각 직원이 수상한 이달의 직원상 횟수를 저장합니다. 기본 키(primary key), 외래 키(foreign key), boolean 등 인식 가능한 모든 데이터 타입을 자유롭게 사용할 수 있습니다.

테이블이 생성되었으므로 이제 쿼리를 실행하고 데이터를 삽입할 수 있습니다. 단, 테이블을 생성한 직후에는 비어 있으므로, SQL INSERT 문을 사용해 데이터를 입력해야 한다는 점을 기억하세요.

기존 테이블을 활용해 새 테이블 생성하기

다른 테이블의 구조를 그대로 사용해 새 테이블을 만들고 싶다면 어떻게 해야 할까요? SQL에서도 CREATE TABLE 문으로 이것이 가능합니다. 새 테이블은 원본 테이블과 동일한 열 정의를 갖게 되며, 일부 열만 복사할지 아니면 전체 열을 복사할지 지정할 수도 있습니다.

회사에 재직 중인 모든 임원 정보를 담은 테이블을 만들고 싶다고 가정해 보겠습니다. 임원 기록은 이미 employees 데이터베이스에 저장되어 있습니다.

employees 테이블에서 임원 데이터만 골라 담는 새 테이블을 만들려면 다음 명령어를 사용합니다.

CREATE TABLE executives AS
SELECT name, email, address
FROM employees
WHERE title LIKE 'Executive%';

이 명령을 실행하면 데이터베이스는 기존 테이블을 복사한 "executives"라는 새 테이블을 생성합니다. 새 테이블에는 employees 테이블의 "name", "email", "address" 열이 포함되며, 직급이 임원(executive)인 직원의 데이터만 담기게 됩니다.

만약 employees 테이블이 비어 있다면 name, email, address 열 등 구조만 복사됩니다. 반대로 데이터가 들어 있다면, 조건에 맞는 임원 레코드만 새 테이블로 복사됩니다.

결과적으로 새 테이블에는 직급이 "Executive"로 시작하는 모든 직원의 이름, 이메일, 주소 목록이 저장됩니다.

마치며

SQL CREATE TABLE 문은 기존 데이터베이스에 새 테이블을 생성하는 데 사용됩니다. 이 문을 활용하려면 새 테이블에 포함될 각 열의 이름, 데이터 타입, 제약 조건 등 구조를 먼저 정의해야 합니다.

SQL 활용 능력을 더욱 향상시키고 싶다면 신뢰할 수 있는 SQL 학습 가이드나 온라인 강의, 공식 문서를 함께 참고해 보세요. 꾸준한 실습을 통해 데이터베이스 설계 역량을 한 단계 끌어올릴 수 있습니다.