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 관련하여 정보를 알려드리는 글을 들고 오도록 할게요😁!