🔓데이터베이스/SQL

mysql [database , table 생성 및 조작]

하얀성 2023. 9. 7. 19:31

– show databases;

▪ 모든 데이터베이스 목록을 보여주는 명령

 

– create database class;

▪ ‘class’라는 이름의 데이터베이스를 만드는 명령

 

– use class;

▪ ‘class’안에 있는 테이블을 사용하겠다는 명령

 

– show tables;

▪ 현재 데이터베이스에 있는 테이블 목록을 보여주는 명령

 

– drop database class;

▪ ‘class’라는 데이터베이스를 지우는 명령

 

MySQL 쿼리 실습 (테이블 수정)

– alter table 테이블명 add 필드 자료형;

 

MySQL 쿼리 실습 (테이블 수정)

– 필드의 순서가 마음에 들지 않으면?

▪ 테이블을 삭제하고 다시 만들어야 함

 

– drop table addressbook;

▪ ‘addressbook’ 이라는 테이블을 삭제하는 명령

 

• MySQL 쿼리 실습 (테이블 수정)

– 필드 이름이 마음에 들지 않으면?

▪ 해당필드를 삭제하고 원하는 이름의 필드를 새롭게 추가해야 함

 

– alter table addressbook drop birthdate;

▪ ‘addressbook’ 테이블에서 ‘birthdate’ 필드를 삭제하는 명령

 

– alter table addressbook add birth varchar(10);

▪ 새롭게 birth라는 필드 추가.


mysql> desc addressbook;
ERROR 1146 (42S02): Table 'class2.addressbook' doesn't exist
mysql> Create table addressbook(name varchar(10), age int(2),
    -> phone varchar(20), address varchar(100), birth varchar(10));
Query OK, 0 rows affected, 1 warning (0.02 sec)

mysql> desc addressbook;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| name    | varchar(10)  | YES  |     | NULL    |       |
| age     | int          | YES  |     | NULL    |       |
| phone   | varchar(20)  | YES  |     | NULL    |       |
| address | varchar(100) | YES  |     | NULL    |       |
| birth   | varchar(10)  | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

왜 int(3) 이 형성이 안되고 int만 나오지?

 




ChatGPT
int(3)이나 int(2)와 같은 형식에서 숫자(예: 3, 2)는 크기나 길이를 나타내는 것이 아니라, 출력 시에 사용할 디스플레이 폭을 나타냅니다. 

이러한 디스플레이 폭은 데이터를 조회할 때만 영향을 미치며, 데이터 저장 방식이나 범위에는 영향을 미치지 않습니다. 따라서 DESC 명령어를 사용하여 테이블 구조를 조회할 때, 해당 숫자는 표시되지 않습니다.

데이터 형식 int 자체는 4바이트(32비트)의 정수를 저장하며, 해당 데이터 형식의 범위는 -2,147,483,648부터 2,147,483,647까지 입니다. 따라서 입력하신 int(2)라는 구문은 데이터 범위나 저장 방식에 영향을 미치지 않으며, 숫자 '2'는 디스플레이 폭에만 영향을 미칩니다.

이러한 이유로, DESC 명령어의 출력에서는 int만 표시되며, 디스플레이 폭은 표시되지 않습니다.

 


<테이블 보는 순서 3대장>

 

mysql -u root -p

비밀번호 입력: (*내 노트북의 mysql 비밀번호는 4자리다.)
show databases;
use class2; ->(데이터베이스 목록)
show tables; -> (데이터베이스 안의 테이블 확인)