Post

MySQL 데이터베이스 & 테이블 만들기

터미널(명령프롬프트)를 통해 로그인까지 다 끝났다면 이제부턴 데이터베이스와 테이블을 만들 수 있는데요 오늘은 그 방법에 대해서 알려드리려고 하니 차근차근 따라해보세요!

데이터베이스 보기

  • show databases;
1
2
3
4
5
6
7
8
9
10
11
mysql> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

▶ show databases; 를 입력하면 지금 현재 내 데이터베이스 자료를 확인할 수 있습니다.


데이터베이스 만들기

  • create database 이름;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> create database tast;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               | // 추가된 데이터베이스
+--------------------+
4 rows in set (0.00 sec)

▶ create database 이름; 을 입력한 후 다시 show databases; 를 입력하면 데이터베이스가 추가된 걸 확인할 수 있습니다. 저는 test라는 데이터베이스를 만들어주었습니다.


데이터베이스 삭제

  • drop database 이름;
1
2
3
4
5
6
7
8
9
10
11
12
13
mysql> drop database test;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

▶ drop database 이름; 을 입력한 후 다시 show databases; 를 입력하면 데이터베이스가 삭제된 걸 확인할 수 있습니다. 저는 test라는 데이터베이스를 삭제해주었습니다.


테이블 만들기

  • create table 테이블명;
1
2
3
4
5
6
7
8
9
create table members(
    memberID int(10) unsigned auto_increment, 
    youName varchar(10) NOT NULL,
    youPass varchar(10) NOT NULL,
    youAge int(5) NOT NULL,
    youBirth int(5) NOT NULL,
    regTime int(30) NOT NULL,
    PRIMARY KEY(memberID)
) charset=utf8;

▶ create table 테이블명; 을 입력한 후 memberID, youName 과 같은 필드명과 어떻게 표시될 지를 지정해주면 하나의 테이블이 만들어집니다. 여기서 int는 숫자, varchar은 문자를 의미하고 ()는 몇글자까지 가능한지에 대한 정보를 의미합니다.


테이블 구조 보기

  • desc 테이블명;
1
2
3
4
5
6
7
8
9
10
11
mysql> desc members;
+----------+------------------+------+-----+---------+----------------+
| Field    | Type             | Null | Key | Default | Extra          |
+----------+------------------+------+-----+---------+----------------+
| memberID | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| youName  | varchar(10)      | NO   |     | NULL    |                |
| youPass  | varchar(10)      | NO   |     | NULL    |                |
| youAge   | int(5)           | NO   |     | NULL    |                |
| youBirth | int(5)           | NO   |     | NULL    |                |
| regTime  | int(30)          | NO   |     | NULL    |                |
+----------+------------------+------+-----+---------+----------------+

▶ 테이블을 만든 후 desc 테이블명;을 입력하면 위에서 입력한 필드값에 대한 정보를 하나의 표로 보실 수 있습니다. 저는 테이블명을 members로 해주었어요!


테이블 데이터 입력

  • INSERT INTO 테이블명 Field(필드명) VALUES(값);
1
2
3
INSERT INTO members(youName, youPass, youAge, youBirth, regTime) VALUES("가나다", "1234", "33", "990304", "1023958375");
INSERT INTO members(youName, youPass, youAge, youBirth, regTime) VALUES("라마바", "1234", "33", "990304", "1023958375");
INSERT INTO members(youName, youPass, youAge, youBirth, regTime) VALUES("사아자", "1234", "33", "990304", "1023958375");

▶ 데이터를 추가하는 문법은 INSERT INTO 테이블명 Field(필드명) VALUES(값); 을 작성해주시면 되는데 위에서 지정한 필드명을 입력한 후 VALUES 값으로 어떤 내용을 넣을 지를 입력해주시면 데이터가 입력됩니다.
이 때 주의할 점은 각각의 필드명을 지정한 int, varchar 타입에 맞춰 작성해주셔야 합니다.


테이블 데이터 삭제 & 초기화

  • drop table 테이블명;
1
2
mysql> drop table members;
Query OK, 0 rows affected (0.00 sec)
  • truncate table 테이블명;
1
2
mysql> truncate table members;
Query OK, 0 rows affected (0.01 sec)

▶ 테이블에서 데이터를 삭제하는 명령어는 drop, 초기화하는 명령어는 truncate 입니다.


테이블 합치기(JOIN)

▶ 테이블을 합치기 위해선 또 하나의 테이블이 필요합니다. 위에서 알려드렸듯이 create table 테이블명; 을 이용해 저는 reviews라는 테이블을 하나 더 만들었고 reviewID, youText라는 필드명을 추가해주었습니다.

1
2
3
4
5
6
7
create table reviews(
    reviewID int(10) unsigned auto_increment,
    memberID int(10) unsigned,
    youText tinytext NOT NULL,
    regTime int(30) NOT NULL,
    PRIMARY KEY(reviewID)
) charset=utf8;

▶ 그런 다음 youText에 어떤 텍스트가 나오면 좋을 지 INSERT INTO 테이블명 Field(필드명) VALUES(값);를 이용해 데이터를 입력해주었습니다. 확인을 해보시면 이렇게 메시지들이 입력된 걸 알 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
INSERT INTO reviews(memberID, youText, regTime) VALUES("3", "진심으로 감사합니다.", "1023958375");
INSERT INTO reviews(memberID, youText, regTime) VALUES("2", "너무 고마워요!", "1023958375");
INSERT INTO reviews(memberID, youText, regTime) VALUES("5", "정말 고마워요!", "1023958375");

mysql> SELECT * FROM reviews;
+----------+----------+------------------------+------------+
| reviewID | memberID | youText                | regTime    |
+----------+----------+------------------------+------------+
|        1 |        3 | 진심으로 감사합니다.     | 1023958375 |
|        2 |        2 | 너무 고마워요!           | 1023958375 |
|        3 |        5 | 정말 고마워요!           | 1023958375 |
|        4 |        1 | 진심으로 감사드립니다.   | 1023958375 |
|        5 |        7 | 너무나 감사합니다.       | 1023958375 |
|        6 |        4 | 정말 고맙습니다!         | 1023958375 |
|        7 |        9 | 너무나 감사합니다!       | 1023958375 |
|        8 |        8 | 진심으로 고마워요.       | 1023958375 |
|        9 |        3 | 정말 고맙습니다!         | 1023958375 |
|       10 |       35 | 너무나 감사드립니다!     | 1023958375 |
+----------+----------+------------------------+------------+
10 rows in set (0.00 sec)

▶ 이제 추가된 테이블과 기존에 만들어둔 테이블을 JOIN으로 합쳐주면 되는데,
아래의 예시에서 보듯 제가 만든 테이블은 members 와 reviews 이기 때문에 m,r이라는 약자로 테이블명을 표시하고 어떤 필드값을 넣을지를 순차적으로 입력해준 후 ON으로 실행시켜주면
내가 원하는 필드값만 합친 테이블표를 확인하실 수 있습니다.

  • SELECT [필드명] FROM [테이블.앨리어스] JOIN [테이블.앨리어스] ON [기준이 되는 조건문]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT m.youName, m.youAge, r.youText, r.regTime FROM members m JOIN reviews r ON (m.memberID = r.memberID);
+---------+--------+------------------------+------------+
| youName | youAge | youText                | regTime    |
+---------+--------+------------------------+------------+
| 김진우  |     21 | 진심으로 감사합니다.     | 1023958375 |
| 남윤서  |     19 | 너무 고마워요!           | 1023958375 |
| 서대원  |     26 | 정말 고마워요!           | 1023958375 |
| 황상연  |     33 | 진심으로 감사드립니다.   | 1023958375 |
| 황인지  |     20 | 너무나 감사합니다.       | 1023958375 |
| 최선화  |     26 | 정말 고맙습니다!         | 1023958375 |
| 강서연  |     27 | 너무나 감사합니다!       | 1023958375 |
| 박정민  |     29 | 진심으로 고마워요.       | 1023958375 |
| 김진우  |     21 | 정말 고맙습니다!         | 1023958375 |
+---------+--------+------------------------+------------+
9 rows in set (0.00 sec)


이렇게 오늘은 데이터베이스와 테이블에 대해 알아봤는데요,
다음엔 다른 SQL 관련하여 정보를 알려드리는 글을 들고 오도록 할게요😁!

This post is licensed under CC BY 4.0 by the author.