๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
MySQL

[MySQL] MySQL ์•Œ์•„๋ณด๊ธฐ

by ์ฝ”๋”ฉ๊ณต์ฑ… 2022. 9. 14.
๋ฐ˜์‘ํ˜•

MySQL์ด๋ž€?

MySQL์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ฒ€์ƒ‰, ์ถ”์ถœํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ํฌํ•จํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

MySQL์€ ์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ์˜คํ”ˆ ์†Œ์Šค์˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์‹œ์Šคํ…œ(RDBMS)์ž…๋‹ˆ๋‹ค. MySQL์€ PHP ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์™€ ์ƒํ˜ธ ์—ฐ๋™์ด ์ž˜ ๋˜๋ฉด์„œ ์˜คํ”ˆ ์†Œ์Šค๋กœ ๊ฐœ๋ฐœ๋œ ๋ฌด๋ฃŒ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ™ˆํŽ˜์ด์ง€๋‚˜ ์‡ผํ•‘๋ชฐ(์›Œ๋“œํ”„๋ ˆ์Šค, cafe24, ์ œ๋กœ๋ณด๋“œ, ๊ทธ๋ˆ„๋ณด๋“œ) ๋“ฑ ์ผ๋ฐ˜์ ์œผ๋กœ ์›น ๊ฐœ๋ฐœ์— ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

MySQL ์„ค์น˜ํ•˜๊ธฐ

MAMP๋ž€ ์›น์‚ฌ์ดํŠธ๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ ์“ฐ์ด๋Š” ๊ธฐ์ˆ  ์Šคํƒ์ธ macOS, Apache, MySQL, PHP ์˜ ์•ฝ์–ด์ด์ž ์†”๋ฃจ์…˜ ์Šคํƒ์ž…๋‹ˆ๋‹ค.
๋‹ค์šด๋กœ๋“œ ๋งํฌ : https://www.mamp.info/en/downloads/

MySQL ์‹คํ–‰ํ•˜๊ธฐ

Windows์˜ ๊ฒฝ์šฐ

Windows : cd MAMP/bin/mysql/bin
๋กœ๊ทธ์ธ : mysql -uroot -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.24 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

// ์ด๋Ÿฌํ•œ ์ฝ”๋“œ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ•œ ๊ฒƒ.

Mac์˜ ๊ฒฝ์šฐ

Mac : cd /Application/mamp/Libary/bin
๋กœ๊ทธ์ธ : sudo ./ -uroot -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 188
Server version: 5.7.34 MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

// ์ด๋Ÿฌํ•œ ์ฝ”๋“œ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ•œ ๊ฒƒ.


1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

1-1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งŒ๋“ค๊ธฐ
1-2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณด๊ธฐ
1-3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ
1-4. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ญ์ œ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งŒ๋“ค๊ธฐ

create database ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„;

mysql > create database sample01;
Query OK, 1 row affected (0.00 sec)

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณด๊ธฐ

show databases;

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

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ

use ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„;

mysql> use sample01;
Database changed

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ญ์ œ

drop database ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„;

mysql> drop database sample02;
Query OK, 0 rows affected (0.03 sec)


2. ํ…Œ์ด๋ธ”

2-1. ํ…Œ์ด๋ธ” ๋งŒ๋“ค๊ธฐ
2-2. ํ…Œ์ด๋ธ” ์ „์ฒด๋ณด๊ธฐ
2-3. ํ…Œ์ด๋ธ” ๋ณด๊ธฐ
2-4. ํ…Œ์ด๋ธ” ์‚ญ์ œ
2-5. ํ…Œ์ด๋ธ” ๋ณต์‚ฌ (์ถ”๊ฐ€์˜ˆ์ •)

ํ…Œ์ด๋ธ” ๋งŒ๋“ค๊ธฐ

create table ํ…Œ์ด๋ธ” ์ด๋ฆ„

create table member (
    myMemberID int(10) unsigned auto_increment,
    youEmail varchar(40) NOT NULL,
    youName varchar(20) NOT NULL,
    youPass varchar(20) NOT NULL,
    youBirth int(20) NOT NULL,
    regTime int(20) NOT NULL,
    PRIMARY KEY (myMemberID)
) charset=utf8;

ํ…Œ์ด๋ธ” ์ „์ฒด๋ณด๊ธฐ

show tables;

mysql> show tables;
+--------------------+
| Tables_in_sample01 |
+--------------------+
| member             |
+--------------------+
1 row in set (0.03 sec)

ํ…Œ์ด๋ธ” ๋ณด๊ธฐ

desc ํ…Œ์ด๋ธ” ์ด๋ฆ„;

mysql> desc member;
+------------+------------------+------+-----+---------+----------------+
| Field      | Type             | Null | Key | Default | Extra          |
+------------+------------------+------+-----+---------+----------------+
| myMemberID | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| youEmail   | varchar(40)      | NO   |     | NULL    |                |
| youName    | varchar(20)      | NO   |     | NULL    |                |
| youPass    | varchar(20)      | NO   |     | NULL    |                |
| youBirth   | int(20)          | NO   |     | NULL    |                |
| regTime    | int(20)          | NO   |     | NULL    |                |
+------------+------------------+------+-----+---------+----------------+
6 rows in set (0.01 sec)

ํ…Œ์ด๋ธ” ์‚ญ์ œ

drop table ํ…Œ์ด๋ธ” ์ด๋ฆ„;

mysql> drop table member;
Query OK, 0 rows affected (0.01 sec)

ํ…Œ์ด๋ธ” ๋ณต์‚ฌ

์ถ”๊ฐ€์˜ˆ์ •

์ถ”๊ฐ€์˜ˆ์ •


3. ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ

3-1. ๋ฐ์ดํ„ฐ ์ž…๋ ฅํ•˜๊ธฐ
3-2. ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
3-3. ๋ฐ์ดํ„ฐ ์ˆ˜์ •ํ•˜๊ธฐ(์ถ”๊ฐ€์˜ˆ์ •)
3-4. ๋ฐ์ดํ„ฐ ์‚ญ์ œํ•˜๊ธฐ(์ถ”๊ฐ€์˜ˆ์ •)

๋ฐ์ดํ„ฐ ์ž…๋ ฅํ•˜๊ธฐ

INSERT INTO ํ…Œ์ด๋ธ” ์ด๋ฆ„(ํ•„๋“œ๋ช…) VALUE(๋ฐ์ดํ„ฐ);

INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUE('abc1234@gmail.com', '๊น€๋ฏผ์ฃผ', '1234', '19700101', '1234567');
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUE('def567@gmail.com', '์ตœ์ถ˜์ž', '5678', '19681103', '1234567');
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUE('ghi890@naver.com', '์ด๋ช…์ž', '9012', '19490201', '1234567');
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUE('princess_min@naver.com', '๋ฏผ๊ณต์ฃผ', '3456', '19820122', '1234567');
INSERT INTO member(youEmail, youName, youPass, youBirth, regTime) VALUE('prince_park@gmail.com', '๋ฐ•์™•์ž', '7890', '19770325', '1234567');

๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

SELECT ํ•„๋“œ๋ช… FROM ํ…Œ์ด๋ธ”๋ช… WHERE ์กฐ๊ฑด;

์ „์ฒด ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

mysql> SELECT * FROM member;
+------------+--------------------------+---------+---------+----------+----------+
| myMemberID | youEmail                 | youName | youPass | youBirth | regTime  |
+------------+--------------------------+---------+---------+----------+----------+
|          1 | abc1234@gmail.com        | ๊น€๋ฏผ์ฃผ  | 1234    | 19700101 |  1234567 |
|          2 | def567@gmail.com         | ์ตœ์ถ˜์ž  | 5678    | 19681103 |  1234567 |
|          3 | ghi890@naver.com         | ์ด๋ช…์ž  | 9012    | 19490201 |  1234567 |
|          4 | princess_min@naver.com   | ๋ฏผ๊ณต์ฃผ  | 3456    | 19820122 |  1234567 |
|          5 | prince_park@gmail.com    | ๋ฐ•์™•์ž  | 7890    | 19770325 |  1234567 |
+------------+--------------------------+---------+---------+----------+----------+

myMemberID๊ฐ€ 2๋ฒˆ์ธ ๊ฒฝ์šฐ

mysql> SELECT * FROM member WHERE myMemberID = 6;
+------------+-------------------+---------+---------+----------+---------+
| myMemberID | youEmail          | youName | youPass | youBirth | regTime |
+------------+-------------------+---------+---------+----------+---------+
|          2 | def567@gmail.com  | ์ตœ์ถ˜์ž  | 5678    | 19681103 | 1234567 |
+------------+-------------------+---------+---------+----------+---------+
1 row in set (0.01 sec)

email ์ค‘์— naver ํ…์ŠคํŠธ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ

mysql> SELECT * FROM member WHERE youEmail LIKE '%naver%';
+------------+--------------------------+---------+---------+----------+----------+
| myMemberID | youEmail                 | youName | youPass | youBirth | regTime  |
+------------+--------------------------+---------+---------+----------+----------+
|          3 | ghi890@naver.com         | ์ด๋ช…์ž  | 9012    | 19490201 |  1234567 |
|          4 | princess_min@naver.com   | ๋ฏผ๊ณต์ฃผ  | 3456    | 19820122 |  1234567 |
+------------+--------------------------+---------+---------+----------+----------+
1 row in set (0.01 sec)

๋ฐ์ดํ„ฐ ์ˆ˜์ •ํ•˜๊ธฐ

์ถ”๊ฐ€์˜ˆ์ •

์ถ”๊ฐ€์˜ˆ์ •

๋ฐ์ดํ„ฐ ์‚ญ์ œํ•˜๊ธฐ

์ถ”๊ฐ€์˜ˆ์ •

์ถ”๊ฐ€์˜ˆ์ •
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€


Reference Book

JavaScript
HTML
CSS
๊ด‘๊ณ  ์ค€๋น„์ค‘์ž…๋‹ˆ๋‹ค.