SQL 기초 - 2. TABLE

냄비짱·2022년 6월 24일
1

SQL 기초

목록 보기
3/11
post-thumbnail
post-custom-banner

1. TABLE 생성

🎯 CREATE databases

채널 내 database 생성

✍ 입력

create database nembizzang default character set utf8mb4;

show databases;

💻 출력

mysql> create database nembizzang default character set utf8mb4;
Query OK, 1 row affected (0.02 sec)       # database 생성 완료

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| nembizzang         |                     # database 확인
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
7 rows in set (0.00 sec)

📌 default character set utf8mb4
- 문자열의 기본값을 다국어(uft8)이모지(mb4)로 설정

🎯 CREATE / SHOW table

복수의 컬럼을 가진 table을 생성
채널 내 모든 table을 조회

✍ 입력

mysql> create table mytable
    -> (
    ->  id int,
    ->  name varchar(16)
    -> );

show tables

💻 출력

Query OK, 0 rows affected (0.06 sec)                     # 테이블 생성 완료

mysql> show tables;
+------------------------------------------------------+
| Tables_in_nembizzang                                 |
+------------------------------------------------------+
| mytable                                              | # 테이블 확인
+------------------------------------------------------+
1 rows in set (0.00 sec)

🎯 DESC

table 정보 확인

✍ 입력

desc mytable;

💻 출력

mysql> desc mytable;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(16) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

📌 NULL columns
- 해당 컬럼 value로 null 허용 여부 (default = YES)

📌 varchar
- pandas의 object와 같은 형태(string)

📌 DESC
- description의 약어


2. TABLE 수정

🎯 ALTER TABLE _ RENAME

table 이름 변경

✍ 입력

alter table mytable
rename nembizzang;

show tables;

💻 출력

Query OK, 0 rows affected (0.06 sec)    # 이름 변경 완료

mysql> show tables;
+--------------------+
| Tables_in_zerobase |
+--------------------+
| animal             |
| nembizzang         |                  # 이름 변경 확인
+--------------------+
2 rows in set (0.00 sec)

🎯 ALTER TABLE _ ADD

table에 column 추가

✍ 입력

alter table nembizzang
add column agee double;

desc nembizzang;

💻 출력

Query OK, 0 rows affected (0.07 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc nembizzang;
+-------+-------------+------+-----+---------+-------+
| 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)

📌 DOUBLE
- pandas의 float와 유사한 형태(실수)로 부동소수점 타입


🎯 ALTER TABLE _ MODIFY

table의 특정 column 내 type 변경

✍ 입력

alter table nembizzang
modify agee int;

desc nembizzang;

💻 출력

Query OK, 0 rows affected (0.11 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc nembizzang;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(16) | YES  |     | NULL    |       |
| agee  | int         | YES  |     | NULL    |       |  # column type 변경 확인
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

🎯 ALTER TABLE _ CHANGE

table의 특정 column 이름 변경

✍ 입력

alter table nembizzang
change column agee age int;

desc nembizzang;

💻 출력

Query OK, 0 rows affected (0.07 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc nembizzang;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(16) | YES  |     | NULL    |       |
| age   | int         | YES  |     | NULL    |       |    # coulmn명 변경 확인
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

📌 change 사용 시 유의점
- 변경할 컬럼명 뒤에 type을 적지 않으면 오류 발생
- column type도 함께 변경 가능


🎯 ALTER TABLE _ DROP

table의 특정 column 삭제

✍ 입력

alter table nembizzang
drop column age;

desc nembizzang;

💻 출력

Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc nembizzang;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(16) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

🎯 DROP TABLE

table 삭제

✍ 입력

drop table nembizzang;

show table;

💻 출력

Query OK, 0 rows affected (0.04 sec)

mysql> show tables;
Empty set (0.00 sec)
profile
개발도상인 냄비짱
post-custom-banner

0개의 댓글