[SQL] : TABLE

김대현·2024년 6월 6일

(1) TABLE
(2) TABLE 생성
(3) TABLE 변경 및 추가
(4) TABLE 삭제


(1) TABLE

  • 데이터베이스는 테이블(table)이라는 최소 단위로 구성되며, 이 테이블은 하나 이상의 열(column)행(row)으로 이루어져 있다.

  • 예를 들어 한글이나 워드에서 표를 정갈하게 만든 경험이 있을텐데 그 표의 모양이 바로 테이블(table) 이며 표 내에 열(column)과 행(row) 이 똑같이 있다고 생각하면 된다.



(2) TABLE 생성

CREATE TABLE tablename
(
  id int, 
  name varchar(16)
);
Query OK, 0 rows affected (0.03 sec)
  • CREATE TABLE tablename: 새로운 테이블을 생성하는 명령어이다. tablename은 새로 생성될 테이블의 이름을 나타내며 원하는 테이블 이름을 지정하면 된다.

( id int, name varchar(16) ): 테이블의 열(필드)을 정의하는 것으로 각 열은 열 이름과 데이터 유형으로 구성된다.

  • id 열은 int (정수형) 데이터 유형을 가지며, 숫자를 해당 열의 데이터는 숫자로 저장한다.
  • name 열은 varchar(16)(문자형) 데이터 유형을 가지며, 해당 열의 데이터는 최대 16자까지의 문자열을 저장한다는 것을 의미한다.

✏ TABLE 목록 확인법

  • SHOW TABLES; 명령어를 사용하면 현재 사용자가 접근할 수 있는 모든 TABLE 이름들의 목록을 볼 수 있다.

  • 예시

mysql> SHOW TABLES;
+-----------------+
| Tables_in_test  |
+-----------------+
| tablename        |
+-----------------+
1 row in set (0.00 sec)

✏ TABLE 정보 확인법

  • DESC tablename; 명령어는 특정 테이블의 구조를 조회하는 명령어이다. 즉 해당 테이블의 열(필드)들에 대한 정보인 열 이름과 데이터 유형을 조회할 수 있다.
mysql> DESC tablename;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int          | YES  |     | NULL    |       |
| name  | varchar(16)  | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 row in set (0.00 sec)



(3) TABLE 변경, 추가 및 삭제

✏ TABLE 변경

mysql> ALTER TABLE tablename RENAME new_tablename;
Query OK, 0 rows affected (0.01 sec)
mysql> SHOW TABLES;
+----------------------+
| Tables_in_test       |
+----------------------+
| new_tablename        |
+----------------------+
  • ALTER TABLE tablename RENAME new_tablename; 구문은 데이터베이스의 TABLE 이름을 변경하는 명령어이다.

  • ALTER TABLE tablename: 데이터베이스에서 특정 테이블을 변경하는 명령어이다.

  • tablename은 변경할 테이블의 현재 이름이다.

  • RENAME new_tablename:테이블의 새로운 이름을 지정한다.

  • new_tablename은 변경될 테이블의 새로운 이름이다.


✏ TABLE 열 추가 방법

mysql> ALTER TABLE new_tablename ADD COLUMN agee double;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> DESC new_tablename;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int          | YES  |     | NULL    |       |
| name  | varchar(16)  | YES  |     | NULL    |       |
| agee  | double       | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
  • ALTER TABLE new_tablename ADD COLUMN columnname datatype; 구문은 데이터베이스의 특정 테이블에 새로운 열을 추가하는 명령어이다.

  • ALTER TABLE new_tablename: 데이터베이스에서 특정 테이블을 변경하는 명령어이다.

  • new_tablename은 변경할 테이블의 이름이다.

  • ADD COLUMN columnname datatype: 테이블에 새로운 열을 추가하는 부분으로
    columnname은 추가할 열의 이름이다. 예시 출력 결과에서는 agee를 열 이름으로 지정 했다.

  • datatype은 새로운 열의 데이터 유형을 지정한다. 출력 결과에서 double은 부동 소수점 숫자를 나타내는 데이터 유형이다.


✏ TABLE 열 변경 방법 - 데이터 유형

mysql> ALTER TABLE new_tablename MODIFY COLUMN agee int;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> DESC new_tablename;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int          | YES  |     | NULL    |       |
| name  | varchar(16)  | YES  |     | NULL    |       |
| agee  | int          | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
  • ALTER TABLE new_tablename MODIFY columnname datatype; 구문은 데이터베이스의 특정 테이블의 기존 열의 데이터 유형을 변경하는 명령어이다.

  • ALTER TABLE new_tablename: 데이터베이스에서 특정 테이블을 변경하는 명령어이다.

  • new_tablename 은 변경할 테이블의 이름을 지정하는 것이다.

  • MODIFY columnname datatype: 테이블의 기존 열의 데이터 유형을 변경하는 명령어다.

  • datatype 자리에 지정한 열의 기존 데이터 유형과는 다른 새로운 데이터 유형을 지정하도록 한다. 예를 들어 double 유형이었던 것을 int로 변경한다.


✏ TABLE 열 변경 방법 - 열 이름

ALTER TABLE new_tablename
CHANGE COLUMN agee age int;
mysql> DESC new_tablename;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int          | YES  |     | NULL    |       |
| name  | varchar(16)  | YES  |     | NULL    |       |
| age   | int          | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
  • ALTER TABLE tablename CHANGE COLUMN old_columnname new_columnname new_datatype; 구문은 데이터베이스의 특정 테이블에서 기존 열의 이름과 데이터 유형을 동시에 변경하는 명령어이다.

  • ALTER TABLE tablename: 데이터베이스에서 특정 테이블을 변경하는 명령어이다.

  • tablename은 변경할 테이블의 이름이다.

  • CHANGE COLUMN old_columnname new_columnname new_datatype: 테이블의 기존 열의 이름과 데이터 유형을 변경하는 부분이다. old_columnname은 변경될 열의 현재 이름입니다.
    new_columnname은 변경할 열의 새로운 이름이다. new_datatype은 변경될 열의 새로운 데이터 유형이다.


✏ TABLE 열 삭제

ALTER TABLE new_tablename
DROP COLUMN age;
mysql> DESC new_tablename;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int          | YES  |     | NULL    |       |
| name  | varchar(16)  | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
  • ALTER TABLE tablename DROP COLUMN columnname; 구문은 데이터베이스의 특정 테이블에서 열을 제거하는 명령어이다.

  • ALTER TABLE tablename: 데이터베이스에서 특정 테이블을 변경하는 명령어이다.

  • tablename은 변경할 테이블의 이름이다.

  • DROP COLUMN columnname: 테이블에서 제거할 열을 지정하는 것이다.

  • columnname은 제거할 열의 이름이다.



(4) TABLE 삭제

✏ Database 사용

mysql> DROP TABLE new_tablename;
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;
Empty set (0.01 sec)

DROP TABLE tablename; 구문은 데이터베이스에서 특정 테이블을 삭제하는 명령어이다.

  • DROP TABLE: 데이터베이스에서 특정 테이블을 삭제하는 명령어이다.
  • DROP TABLE은 테이블을 삭제하고 테이블에 연결된 모든 데이터도 삭제한다.
  • tablename: 삭제할 테이블의 이름입니다.
  • tablename은 삭제하려는 테이블의 이름을 지정해주면 된다
profile
데이터 분석 스쿨 블로그 입니다.

0개의 댓글