[SQL 시작] 5. 테이블 생성 및 삭제

표준 SQL 및 데이터베이스 입문

by AI개발자
gaebalai-sql-db (1).jpg

기본적인 작성법을 이해하였다면, 이제 바로 SQL문을 작성해 봅시다. 우선 테이블 생성과 삭제부터 해봅시다.


⑴ 테이블 생성 - CREATE TABLE

테이블 생성은 CREATE TABLE 명령어로 수행합니다. 문법은 "CREATE TABLE 테이블명();"형태이며, 괄호안에서 열(컬럼)을 정의합니다. 열은 '열명 데이터형 제약'과 같은 형식으로 작성합니다.


데이터형(data type)은 해당 열에 어떤 데이터를 저장할지를 지정하는 것으로 예를 들어 'CHAR(5)'는 5바이트 문자열을, 'VARCHAR(255)'는 최대 255자의 문자열을 나타냅니다. CHAR는 길이가 고정되어 있는 반면, VARCHAR는 가변길이라는 차이가 있습니다. 이외에는 숫자를 저장하는 'INTEGER'나 날짜를 나타내는 'DATE'등이 있습니다. 사용할 수 있는 데이터형은 DBMS마다 다릅니다. 참고로 examdb에 동일한 이름의 테이블이 이미 존재하기 때문에 아래 예제를 실행할 때 testdb를 사용합니다.

sql012-7.png

제약(constraint)은 열의 값에 관한 규칙을 지정하는 것으로 자세한 것은 나중에 다룹니다. 이번에 사용한 NOT NULL은 'NULL 금지'라는 의미로 NULL은 빈값(empty value)을 나타냅니다. 즉, student_id나 student_name에는 반드시 어떤 값이 입력되어야 하ㅏ며, 이 테이블은 'student_id가 결정되지 않은 데이터는 입력할 수 없다'라는 제약이 적용됩니다.


또한, student_id는 PRIMARY KEY로 정의되어 있습니다. PRIMARY KEY(주키)는 students테이블에서 데이터를 특정하기 위해 student_id를 사용한다는 의미입니다.

PRIMARY KEY는 열 정의와는 별도로 작성할 수 있습니다. 경우에 따라 여러 열을 조합하여 주키로 설정할 수 있는데, 그런 경우에는 별도로 작성해야 합니다. 이와 같이, students라는 테이블에 student_id라는 열이 존재하며, student_id가 PRIMARY KEY임을 정의하는 것을 '선언(declaration)'이라고 합니다. 예제는 가독성을 높이기 위해 SQL키워드를 대문자로 작성했지만 소문자로 작성해도 문제는 없습니다. 또한, 각 행의 시작에 공백을 넣는 것은 가독성을 위해서이며, 실제 입력시에는 필요하지 않습니다.


학생ID와 이름 열을 만드는 것으로 나중에 열을 추가할 수 있을까? 라는 고민이 있다면 당연히 추가할 수 있습니다. 테이블 정의 변경은 ALTER TABLE을 사용하면 됩니다. 하지만 익숙하지 않는 독자는 테이블정의를 DBMS도구를 통해 관리해도 문제는 없습니다.



⑵ 테이블 삭제 - DROP TABLE

테이블 삭제는 'DROP TABLE 테이블명;'으로 실행합니다. 앞서 생성한 students테이블을 삭제하려면 아래와 같이 명령어를 실행합니다.

sql012-8.png

CREATE로 생성하고 DROP으로 삭제하는 것입니다. DELETE가 아닙니다. 테이블이 간단하게 사라지기 때문에 주의해야 합니다. SQL에서는 생성한 것을 삭제할 때 DROP을 사용하는 경우가 많고 데이터베이스 전체를 삭제하는 것도 쉽게 할 수 있어, 운영시 주의해야 합니다.


©2024-2025 GAEBAL AI, Hand-crafted & made with Damon JW Kim.

GAEBAL AI 개발사: https://gaebalai.com

AI 강의 및 개발, 컨설팅 문의: https://talk.naver.com/ct/w5umt5


keyword
이전 04화[SQL 시작] 4. 표준SQL 작성법