MySQL에서 데이터 정의 언어(DDL : Data Definition Lanaguage)를 실습해보았습니다.
# 데이터베이스 목록 확인
SHOW DATABASES;
SHOW DATABASES
를 활용하면 현재 데이터베이스의 목록에는 어떠한 것들이 있는지 확인해볼 수 있습니다. 우리는 실습을 위해 새로운 데이터베이스를 만들고자 합니다.
# 데이터베이스 생성
CREATE DATABASE databasename;
# 데이터베이스 생성 및 기본 자료형 설정
CREATE DATABASE databasename DEFAULT CHARACTER SET utf8mb4;
CREATE DATABASE
로 데이터베이스를 생성할 수 있는데 뒤에 조건을 입력하여 기본 자료형을 설정할 수 있습니다. 생성 후 SHOW DATABASES
를 입력하여 생성된 데이터베이스를 확인할 수 있습니다.
# 데이터베이스 접근
USE databasename;
# 테이블 목록 조회
SHOW TABLES;
USE mydb
로 위에서 생성했던 데이터베이스에 접근하였습니다. 그리고 SHOW TABLE
을 입력하여 mydb 데이터베이스 안에 테이블들이 어떠한 것들이 있는지 확인했습니다. 아직 테이블을 생성하지 않았기 때문에 'Empty set'이라는 메시지를 확인할 수 있습니다.
# 테이블 생성
CREATE TABLE tablename
(
columnname datatype,
columnname datatype,
...
)
# 테이블 생성 (with 조건)
CREATE TABLE tablename
(
columnname datatype NOT NULL AUTO_INCREMENT PRIMATY KEY,
columnname datatype NOT NULL DEFAULT '',
...
)
CREATE TABLE
명령어로 테이블을 생성할 수 있습니다. 컬럼명을 입력한 이후에는 사용하고자 하는 데이터 타입을 지정해주어야 합니다.
다시 SHOW TABLES
를 입력하면 아까와 달리 'Empty set'이라는 메시지가 뜨지 않고 테이블의 목록을 확인해볼 수 있습니다.
# 테이블 세부정보 조회
DESC tablename;
DESC tablename
을 입력하면 위에서 지정했던 데이터타입을 비롯한 세부 정보들을 조회할 수 있습니다.
# 테이블 변경(필수)
ALTER TABLE tablename
# 테이블 이름 변경
RENAME new_tablename;
ALTER TABLE
뒤에 RENAME
명령어를 사용하여 기준에 만들었던 테이블의 이름을 변경할 수 있습니다. 위의 이미지를 보면 'old_table' 테이블이 'new_table'로 이름이 변경된 것을 확인해 볼 수 있습니다.
# 테이블 변경(필수)
ALTER TABLE tablename
# 컬럼명 변경 + 데이터 타입 변경
CHANGE COLUMN old_columnname new_columnname new_datatype;
컬럼명을 변경하는 방법은 ALTER TABLE
뒤에 CHANGE COLUMN
명령어를 사용하여 해결할 수 있습니다. 데이터타입을 그대로 사용하려면 그대로 입력하면 되고, 변경하고 싶다면 사용하고자 하는 데이터타입을 입력하면 이름과 함께 변경됩니다.
# 테이블 변경(필수)
ALTER TABLE tablename
# 컬럼 데이터타입 변경
MODIFY COLUMN columnname datatype;
컬럼명을 건드리지 않고 데이터타입만 변경하고 싶다면 ALTER TABLE
뒤에 MODYFY COLUMN
명령어를 입력하면 됩니다.
# 테이블 변경(필수)
ALTER TABLE tablename
# 컬럼 추가
ADD COLUMN columnname datatype;
# 컬럼 삭제
DROP COLUMN columnname;
이 이외에도 ADD COLUMN
으로 컬럼을 생성할 수도 있고, DROP COLUMN
으로 컬럼을 삭제할 수 있습니다.
# 컬럼 삭제
ALTER TABLE tablename
DROP COLUMN columnname;
바로 위에서 언급을 했듯이 ALTER TALBE
과 함게 DROP COLUMN
을 입력하여 컬럼을 삭제할 수 있습니다.
# 테이블 삭제
DROP TABLE tablename;
DROP TABLE
로 테이블을 삭제한 후 SHOW TABLES
로 테이블의 목록을 조회해보면 'Empty set' 메시지를 확인할 수 있습니다.
# 데이터베이스 삭제
DROP DATABASE databasename;
마지막으로 DROP DATABASE
로 실습을 위해 만들어두었던 데이터베이스를 삭제하였습니다. SHOW DATABASES
로 데이터베이스 목록을 조회하여 삭제된 것을 확인할 수 있습니다.
게시글에 작성된 SQL 관련 문법들은 github에 정리해두었습니다. 학습을 진행하며 업데이트를 진행할 예정입니다.