ย
2.1 MySQL์ด๋?2.2 MySQL ๊ธฐ๋ฒ2.2.1 CREATE๋ฌธ2.2.2 ALTER๋ฌธ2.2.3 DROP๋ฌธ2.2.4 INSERT๋ฌธ2.2.5 UPDATE๋ฌธ2.2.6 DELETE๋ฌธ2.2.7 SELECT๋ฌธ2.3 MySQL๊ณผ Jupyter Notebook ์ฐ๋2.3.1 pymysql ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ๋ฐ ์ฐ๊ฒฐ2.3.2 SQL๋ฌธ ์คํ
ย
ย
ย
ย
2.1 MySQL์ด๋?
ย
MySQL์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
(RDBMS: Relational DBMS)์
๋๋ค. ์คํํ ์์ค์ด๊ธฐ์ ๋ฌด๋ฃ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ง ์์
์ ์ผ๋ก ์ฌ์ฉํ ๋๋ ์์
์ฉ ๋ผ์ด์ผ์ค๋ฅผ ๊ตฌ์
ํด์ผ๋ง ํฉ๋๋ค.
ย
ํ์ค SQLย ํ์์ย ์ฌ์ฉํ๋ฉฐ, ๋ค์ค ์ฌ์ฉ์ ๋ฐ ๋ค์ค ์ค๋ ๋๋ฅผ ์ง์ํ๊ธฐ์ ํฐ ํฌ๊ธฐ์ ๋ฐ์ดํฐ ์งํฉ๋ ๋น ๋ฅด๊ณ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๋ํ, MySQL ์์ฉ ํ๋ก๊ทธ๋จ์ย ์ฌ์ฉ์์ ์ฉ๋์ ๋ง๊ฒ ์์ ํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ย
์๋์ฐ, ๋ฆฌ๋
์ค ๋ฑ ๋ค์ํ ์ด์์ฒด์ ์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ํนํ PHP์ ํจ๊ป ์น ๊ฐ๋ฐ์ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค. C++, C์ธ์ด, PHP, JAVA ๋ฑ ๋ง์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ํ ์ฌ๋ฌ API๋ฅผ ์ ๊ณตํ๊ณ ์์ต๋๋ค.
ย
ย
2.2 MySQL ๊ธฐ๋ฒ
2.2.1 CREATE๋ฌธ
CREATE ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ
์ด๋ธ์ ๋ง๋ค ์ ์์ต๋๋ค.
ย
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ
โค CREATE DATABASE ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
;
# SCHOOL์ด๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํฉ๋๋ค. CREATE DATABASE SCHOOL;
ย
ํ
์ด๋ธ ์์ฑ
โค CREATE TABLE ํ
์ด๋ธ(์นผ๋ผ1 ์นผ๋ผํ์
,์นผ๋ผ2 ์นผ๋ผํ์
, โฆ);
# STUDENT๋ผ๋ ํ ์ด๋ธ์ ์์ฑํฉ๋๋ค. # NAME, STUDENT_NUM, ADDRESS, BIRTH๋ผ๋ ์นผ๋ผ์ ๊ฐ์ง ํ ์ด๋ธ์ ์์ฑํฉ๋๋ค. # VARCHAR()๋ ๊ฐ๋ณ ๊ธธ์ด ๋ฌธ์์ด, INT๋ ์ซ์ํ, DATE๋ ๋ ์งํ์ ์๋ฏธํฉ๋๋ค. CREATE TABLE STUDENT(NAME VARCHAR(20) ,STUDENT_NUM INT ,ADDRESS VARCHAR(50) ,BIRTH DATE)
NAME | STUDENT_NUM | ADDRESS | BIRTH |
ย
2.2.2 ALTER๋ฌธ
ALTER ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ
์ด๋ธ์ ๋ด์ฉ์ ์์ ํ ์ ์์ต๋๋ค.
ย
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฌธ์์งํฉ ๋ณ๊ฒฝ
โค ALTER DATABASE ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
CHARACTER SET = ๋ฌธ์์งํฉ์ด๋ฆ;
# SCHOOL์ด๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฌธ์์งํฉ์ UTF8๋ก ๋ณ๊ฒฝํฉ๋๋ค. ALTER DATABASE SCHOOL CAHRACTER SET = utf8
ย
ํ
์ด๋ธ ๋ด ์นผ๋ผ ํ์
๋ณ๊ฒฝ
โค ALTER TABLE ํ
์ด๋ธ๋ช
ADD ์นผ๋ผ๋ช
์นผ๋ผํ์
;
# STUDENT ํ ์ด๋ธ์ INTํ์ ์ GRADE ์นผ๋ผ์ ์ถ๊ฐํฉ๋๋ค. ALTER TABLE STUDENT ADD GRADE INT;
NAME | STUDENT_NUM | ADDRESS | BIRTH | GRADE |
ย
ํ
์ด๋ธ ๋ด ์นผ๋ผ ์ญ์
โค ALTER TABLE ํ
์ด๋ธ๋ช
DROP ์นผ๋ผ๋ช
;
# STUDENT ํ ์ด๋ธ์ STUDENT_NUM ์นผ๋ผ์ ์ญ์ ํฉ๋๋ค. ALTER TABLE STUDENT DROP STUDENT_NUM;
NAME | ADDRESS | BIRTH | GRADE |
ย
ํ
์ด๋ธ ๋ด ์นผ๋ผ ํ์
๋ณ๊ฒฝ
โค ALTER TABLE ํ
์ด๋ธ๋ช
MODIFY COLUMN ์นผ๋ผ๋ช
์นผ๋ผํ์
;
# STUDENT ํ ์ด๋ธ์ NAME์นผ๋ผ์ ํ์ ์ VARCHAR(20)์์ VARCHAR(10)์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. ALTER TABLE SUTDENT MODIFY COLUMN NAME VARCHAR(10);
ย
2.2.3 DROP๋ฌธ
DROP ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ
์ด๋ธ์ ์ญ์ ํ ์ ์์ต๋๋ค.
ย
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ญ์
โค DROP DATABASE ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
;
# SCHOOL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ญ์ ํฉ๋๋ค DROP DATABASE SCHOOL;
ย
ํ
์ด๋ธ ์ญ์
โค DROP TABLE ํ
์ด๋ธ๋ช
;
# STUDENT๋ผ๋ ํ ์ด๋ธ์ ์ญ์ ํฉ๋๋ค DROP TABLE STUDENT;
ย
2.2.4 INSERT๋ฌธ
INSERT ๋ฌธ์ ์ฌ์ฉํ์ฌ ํ
์ด๋ธ์ ์๋ก์ด ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
ย
ํ
์ด๋ธ์ ๊ฐ ์ถ๊ฐ(์ํ๋ ์นผ๋ผ๋ง ์
๋ ฅ๊ฐ๋ฅ)
โค INSERT INTO ํ
์ด๋ธ๋ช
(์นผ๋ฌ๋ช
1, ์นผ๋ผ๋ช
2, ์นผ๋ผ๋ช
3, โฆ)
VALUES (๊ฐ1, ๊ฐ2, ๊ฐ3, โฆ);
# STUDENT ํ ์ด๋ธ ์นผ๋ผ NAME, ADDRESS์ '์ฑ์ถํฅ','๋ถ์ฐ'์ ์ถ๊ฐํฉ๋๋ค. INSERT INTO STUDENT (NAME, ADDRESS) VALUES ('์ฑ์ถํฅ', '๋ถ์ฐ');
NAME | ADDRESS | BIRTH | GRADE |
์ฑ์ถํฅ | ๋ถ์ฐ | ใ
ค | ใ
ค |
ย
ํ
์ด๋ธ์ ๊ฐ ์ถ๊ฐ(๋ชจ๋ ์นผ๋ผ์ ๊ฐ ์ถ๊ฐ)
โค INSERT INTO ํ
์ด๋ธ๋ช
VALUES (๊ฐ1, ๊ฐ2, ๊ฐ3, โฆ);
''' STUDENT ํ ์ด๋ธ์ '์ฑ์ถํฅ','๋ถ์ฐ','1999.11.12',2๋ฅผ ์ถ๊ฐํฉ๋๋ค. ํ ์ด๋ธ๋ช ๋ค์ ์นผ๋ผ๋ช ์ ์์ฑํ์ง ์์ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ์นผ๋ผ ๊ฐ๋ค์ ์์ฑํด์ค์ผ ํฉ๋๋ค. ํ ์ด๋ธ๋ช ๋ค์ ์นผ๋ผ๋ช ์ ์์ฑํ์ง ์์ ๊ฒฝ์ฐ์๋ ์นผ๋ผ ์์๋ฅผ ๋ง์ถฐ์ ์์ฑํด์ค์ผ ํฉ๋๋ค. ''' INSERT INTO STUDENT VALUES ('ํ๊ธธ๋', '๊ด์ฃผ', '1999.11.12', 2);
NAME | ADDRESS | BIRTH | GRADE |
์ฑ์ถํฅ | ๋ถ์ฐ | ใ
ค | ใ
ค |
ํ๊ธธ๋ | ๊ด์ฃผ | 1999.11.12 | 2 |
ย
2.2.5 UPDATE๋ฌธ
UPDATE ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ ์ฝ๋์ ๋ด์ฉ์ ์์ ํ ์ ์์ต๋๋ค.
ย
ํ
์ด๋ธ๋ด ๊ฐ ๋ณ๊ฒฝ
โค UPDATE ํ
์ด๋ธ๋ช
SET ์นผ๋ฌ๋ช
1 = ๊ฐ1,
์นผ๋ผ๋ช
2 = ๊ฐ2, โฆ
WHERE ์นผ๋ผ๋ช
= ์กฐ๊ฑด๊ฐ;
''' STUDENT ํ ์ด๋ธ์์ NAME์ด ์ฑ์ถํฅ์ธ ๊ฐ์ ์ฐพ์ ADDRESS, BIRTH, GRADE๋ฅผ ๋์ , 1999.11.12, 3์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. ''' UPDATE STUDENT SET ADDRESS = '๋์ ', BIRTH = '1999.11.12', GRADE = 3 WHERE NAME = '์ฑ์ถํฅ';
NAME | ADDRESS | BIRTH | GRADE |
์ฑ์ถํฅ | ๋ถ์ฐ | ใ
ค | ใ
ค |
ํ๊ธธ๋ | ๊ด์ฃผ | 1999.11.12 | 2 |
โ
NAME | ADDRESS | BIRTH | GRADE |
์ฑ์ถํฅ | ๋์ | 1995.10.28 | 3 |
ํ๊ธธ๋ | ๊ด์ฃผ | 1999.11.12 | 2 |
ย
2.2.6 DELETE๋ฌธ
DELETE ๋ฌธ์ ์ฌ์ฉํ์ฌ ํ
์ด๋ธ์ ๋ ์ฝ๋๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค.
ย
ํ
์ด๋ธ ๋ด ์ํ๋ ๊ฐ ์ญ์
โค DELETE FROM ํ
์ด๋ธ๋ช
WHERE ์นผ๋ผ๋ช
= ์กฐ๊ฑด๊ฐ;
# STUDENT ํ ์ด๋ธ์์ NAME์ด ํ๊ธธ๋์ธ ๋ ์ฝ๋๋ฅผ ์ญ์ ํฉ๋๋ค. DELETE FROM STUDENT WHERE NAME = 'ํ๊ธธ๋';
NAME | ADDRESS | BIRTH | GRADE |
์ฑ์ถํฅ | ๋์ | 1995.10.28 | 3 |
ํ๊ธธ๋ | ๊ด์ฃผ | 1999.11.12 | 2 |
โ
NAME | ADDRESS | BIRTH | GRADE |
์ฑ์ถํฅ | ๋์ | 1995.10.28 | 3 |
ย
2.2.7 SELECT๋ฌธ
SELECT ๋ฌธ์ ์ฌ์ฉํ์ฌ ํ
์ด๋ธ์ ๋ ์ฝ๋๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
ย
ํ
์ด๋ธ ๋ด ๋ชจ๋ ๊ฐ ์ ํ
โค SELECT *
FROM ํ
์ด๋ธ๋ช
;
# STUDENT ํ ์ด๋ธ์ ํฌํจ๋ ๋ชจ๋ ๊ฐ๋ค์ ๊ฐ์ ธ์ต๋๋ค. SELECT * FROM STUDENT;
NAME | STUDENT_NUM | ADDRESS | BIRTH |
ํ๊ธธ๋ | 1 | ์์ธ | 1999.11.14 |
๊น์ํฌ | 2 | ์์ | 2000.02.14 |
๊น์ฒ ์ | 3 | ์ธ์ฒ | 1998.04.05 |
ย
ํ
์ด๋ธ ๋ด ์ํ๋ ์นผ๋ผ ๊ฐ ์ ํ
โค SELECT ์นผ๋ผ1, ์นผ๋ผ2โฆ
FROM ํ
์ด๋ธ๋ช
;
# STUDENT ํ ์ด๋ธ์์ NAME, ADDRESS ์นผ๋ผ ๊ฐ๋ค์ ๊ฐ์ ธ์ต๋๋ค. SELECT NAME, ADDRESS FROM STUDENT;
NAME | ADDRESS |
ํ๊ธธ๋ | ์์ธ |
๊น์ํฌ | ์์ |
๊น์ฒ ์ | ์ธ์ฒ |
ย
ํ
์ด๋ธ ๋ด ์ํ๋ ๊ฐ ์ ํ
โค SELECT *
FROM ํ
์ด๋ธ๋ช
WHERE ์นผ๋ผ๋ช
= ์กฐ๊ฑด๊ฐ;
# STUDENT ํ ์ด๋ธ์์ NAME์นผ๋ผ์ ๊ฐ์ด 'ํ๊ธธ๋'์ธ ๋ชจ๋ ์นผ๋ผ์ ๊ฐ์ ๊ฐ์ ธ์ต๋๋ค. SELECT * FROM STUDENT WHERE NAME = 'ํ๊ธธ๋';
NAME | STUDENT_NUM | ADDRESS | BIRTH |
ํ๊ธธ๋ | 1 | ์์ธ | 1999.11.14 |
ย
ย
2.3 MySQL๊ณผ Jupyter Notebook ์ฐ๋
2.3.1 pymysql ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ๋ฐ ์ฐ๊ฒฐ
ย
- pymysql ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ๋ฐ import
์ฃผํผํฐ ๋
ธํธ๋ถ์์ ์ ํ์ผ์ ์ด๊ณ , ์๋์ ์ฝ๋๋ฅผ ์คํํ์ฌ pymysql ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํฉ๋๋ค.
# pymysql ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น !pip install pymysql
ย
pymysql ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ importํฉ๋๋ค.
import pymysql
ย
- Connection ๊ฐ์ฒด ์์ฑ
์ฐ๊ฒฐ์ ํ์ํ ํธ์คํธ๋ช
, ํฌํธ๋ฒํธ, ์ ์ ๋ช
, ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ์์ ์ ์ฅํฉ๋๋ค.
# ๋ณธ์ธ์ username, password๋ฅผ ๋ณ์์ ์ ์ฅํฉ๋๋ค. host = '127.0.0.1' # ๋ก์ปฌ ํธ์คํธ port = 3307 username = 'root' password = '0000'
ย
pymysql ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ Connection ๊ฐ์ฒด๋ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ๊ฐ๋ ๊ฐ๋ค์ ํตํด ํ์ด์ฌ๊ณผ SQL์ ์ฐ๊ฒฐ์์ผ ์ค๋๋ค. ๋ฐ๋ผ์ ์๋์ ๊ฐ์ด Connection ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ํ์ด์ฌ๊ณผ MySQL์ ์ฐ๊ฒฐํฉ๋๋ค.
# MySQL Connection conn = pymysql.connect(host = host, port = port, user = username, password = password, charset='utf8')
ย
Connection ๊ฐ์ฒด๋ฅผ ๊ฐ์ง๊ณ ์๋ conn ๋ณ์๋ฅผ ์ถ๋ ฅํด ๋ด์ผ๋ก Connection ๊ฐ์ฒด๊ฐ ์ ์์ ์ผ๋ก ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
conn
๊ฒฐ๊ณผ
<pymysql.connections.Connection at 0x21895704e80>
ย
- Cusor ๊ฐ์ฒด ์์ฑ
SQL ๋ฌธ์ ์คํํ๊ธฐ ์ํด์๋ DB์์ SQL ๋ฌธ์ ์คํํ๊ณ ์คํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋๋ ค๋ฐ๋ ํต๋ก์ ์ญํ ์ ํ๋ Cusor ๊ฐ์ฒด๊ฐ ํ์ํฉ๋๋ค. ์์์ ์ฐ๊ฒฐํ Connection ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์ปค์ ๊ฐ์ฒด๋ฅผ ์์ฑํ์์ต๋๋ค.
cur = conn.cursor()
ย
Cursor ๊ฐ์ฒด๋ฅผ ๊ฐ์ง๊ณ ์๋ cur ๋ณ์๋ฅผ ์ถ๋ ฅํด ๋ด์ผ๋ก Cursor ๊ฐ์ฒด๊ฐ ์ ์์ ์ผ๋ก ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
cur
๊ฒฐ๊ณผ
<pymysql.cursors.Cursor at 0x218957178e0>
ย
2.3.2 SQL๋ฌธ ์คํ
์์์ Cusor ๊ฐ์ฒด๊น์ง ์ ์์ ์ผ๋ก ์์ฑ๋ ๊ฒ์ ํ์ธํ์์ผ๋, ์ค์ ๋ก SQL ๋ฌธ์ ์คํํด ๋ณด๊ฒ ์ต๋๋ค.
ย
- DB ์์ฑ
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ DB๋ฅผ ๋จผ์ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค. DB ์ด๋ฆ์ โtest_dbโ๋ก ๋ช
๋ช
ํ์์ต๋๋ค.
# SQL๋ฌธ ์คํ - DB ์์ฑ cur.execute('CREATE DATABASE test_db') conn.commit()
ย
์๋์ SQL ๋ฌธ์ ์คํํ์ฌ โtest_dbโ DB๊ฐ ์ ์์ ์ผ๋ก ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. Connection ๊ฐ์ฒด์ ์ปค์ ๊ฐ์ฒด๋ฅผ close๋ฅผ ์ฌ์ฉํ์ฌ ์ข
๋ฃํฉ๋๋ค.
# SQL๋ฌธ ์คํ - DB ๋ฆฌ์คํธ ํ์ธ cur.execute('SHOW DATABASES') for data in cur: print(data) # Connection, ์ปค์ ๊ฐ์ฒด ์ข ๋ฃ cur.close() conn.close()
๊ฒฐ๊ณผ
('information_schema',) ('mysql',) ('performance_schema',) ('sakila',) ('sys',) ('test_db',) ('world',)
ย
- ํ ์ด๋ธ ์์ฑ
โtest_dbโ DB ๋ด์ ํ
์ด๋ธ์ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค. ๋จผ์ MySQL DB์ root ๊ณ์ ์ผ๋ก ์ ์ํ๋ Connection ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค.
# MySQL DB Connection conn = pymysql.connect(host = host, port = port, user = username, password = password, charset='utf8', database='test_db')
ย
์๋๋ โstudentโ ํ
์ด๋ธ์ ์์ฑํ๋ SQL ๋ฌธ์
๋๋ค. ์ด๋ฆ(name), ์ฃผ์(address), ์์ผ(birth), ์ฑ์ ๋ฑ๊ธ(grade), ์ด 4๊ฐ์ Column์ ๊ฐ์ง ํ
์ด๋ธ์ ์์ฑํ๊ฒ ์ต๋๋ค.
# ํ ์ด๋ธ ์์ฑ SQL๋ฌธ sql = '''create table student ( name varchar(5) primary key, address varchar(5), birth varchar(11), grade int)'''
ย
Connection ๊ฐ์ฒด์ ์ปค์(cusor) ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ , โtest_dbโ DB์ โstudentโ ํ
์ด๋ธ์ ์์ฑํ๋ SQL ๋ฌธ์ ์คํํฉ๋๋ค. ์คํํ SQL ๋ฌธ์ ์ค์ DB์ ์ ์ฉํ๊ธฐ ์ํด commit์ ์คํํฉ๋๋ค. with ์ ์ ์ด์ฉํ์๊ธฐ์ ์ปค์๋ ์ฝ๋๋ฅผ ๋ชจ๋ ์คํํ ํ์ ์๋์ผ๋ก close ๋ฉ๋๋ค.
# SQL๋ฌธ ์คํ - ํ ์ด๋ธ ์์ฑ with conn.cursor() as cur: cur.execute(sql) conn.commit()
ย
์์ ๋ฐฉ์๊ณผ ๊ฐ์ด โtest_dbโ DB ๋ด์ ํ
์ด๋ธ ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅํ์์ต๋๋ค. โstudentโ ํ
์ด๋ธ์ด ์ ์์ ์ผ๋ก ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
# SQL๋ฌธ ์คํ - ํ ์ด๋ธ ๋ฆฌ์คํธ ํ์ธ with conn.cursor() as cur: cur.execute('SHOW TABLES') conn.commit() for data in cur: print(data)
๊ฒฐ๊ณผ
('student',)
ย
- ๋ฐ์ดํฐ ์ ์ฅ
์์ฑ๋ โstudentโ ํ
์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด ๋ณด๊ฒ ์ต๋๋ค.
ย
INSERT ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฝ์
ํ๋ SQL ๋ฌธ์ ์์ฑํ์์ต๋๋ค. ์ปค์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ SQL ๋ฌธ์ ์คํ์์ผ์ค๋๋ค.
# ๋ฐ์ดํฐ ์ ์ฅ SQL๋ฌธ sql = '''insert into student values ('์ฑ์ถํฅ', '๋์ ', '1995.10.28', 3)''' # SQL๋ฌธ ์คํ - ๋ฐ์ดํฐ ์ ์ฅ with conn.cursor() as cur: cur.execute(sql) conn.commit()
ย
์์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํ๋ ๋ ์ ์ฅํด ๋ณด์์ต๋๋ค.
# ๋ฐ์ดํฐ ์ ์ฅ SQL๋ฌธ sql = '''insert into student values ('ํ๊ธธ๋', '๊ด์ฃผ', '1999.11.12', 2)''' # SQL๋ฌธ ์คํ - ๋ฐ์ดํฐ ์ ์ฅ with conn.cursor() as cur: cur.execute(sql) conn.commit()
ย
- ์ ์ฅ๋ ๋ฐ์ดํฐ ํ์ธ
์์์ ์ ์ฅํ ๋ฐ์ดํฐ๋ฅผ ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค.
ย
์ปค์ ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ SELECT ๋ฌธ์ ์คํ์ํค๊ณ , ๋ฐ์์จ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํด ์ค๋๋ค. ๋ฐ์ดํฐ๋ค์ด ์ ์์ ์ผ๋ก ์ ์ฅ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
# query sql = '''select * from student''' # SQL๋ฌธ ์คํ - ๋ฐ์ดํฐ ํ์ธ with conn.cursor() as cur: cur.execute(sql) conn.commit() for data in cur: print(data)
๊ฒฐ๊ณผ
('์ฑ์ถํฅ', '๋์ ', '1995.10.28', 3) ('ํ๊ธธ๋', '๊ด์ฃผ', '1999.11.12', 2)
ย
๋ชจ๋ ์์
์ ๋ง์ณค์ผ๋ โtest_dbโ DB์ ์ฐ๊ฒฐ์์ผ๋ Connection ๊ฐ์ฒด๋ฅผ close ํฉ๋๋ค.
# MySQL DB Connection ์ข ๋ฃ conn.close()
ย
์ง๊ธ๊น์ง ํ์ฉ ํธ์์ ์์ฃผ ์ฌ์ฉํ SQL ๋ฌธ์ ์ค์ ์ผ๋ก ์คํ ๋ฐฉ๋ฒ์ ์ดํด๋ณด์์ต๋๋ค.
์ฌ์ฉํ์ง ์์ ALTER ๋ฌธ, DROP ๋ฌธ, UPDATE ๋ฌธ, DELETE ๋ฌธ ๋ํ pymysql ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ execute ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋์ผํ ๋ฐฉ์์ผ๋ก ์คํํ ์ ์์ต๋๋ค.
ย
ย
ย
ย
ย
ย
ย
ย
ย