[Python3] MariaDB

Alexandria·2024년 3월 3일

Python3 Advanced

목록 보기
12/27
post-thumbnail

1. 접속

pymysql을 이용하여 MariaDB 서버로 접속할 수 있습니다.

접속 이후 close를 이용하여 세션을 종료합니다.

import pymysql

connector   = pymysql.connect(host="192.168.0.38", user="user", password="p@ssw0rd", db="test_db", charset="utf8")
cursor      = connector.cursor()

""" table initialization
SQL         = "DROP TABLE IF EXISTS tb_user"
cursor.execute(SQL)
SQL         = "CREATE TABLE IF NOT EXISTS tb_user (id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, name varchar(255), password varchar(255)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=1"
cursor.execute(SQL)
SQL         = "DELETE FROM tb_user"
cursor.execute(SQL)
connector.commit()
"""

cursor.close()
connector.close()

2. Create

INSERT 쿼리를 통해 데이터베이스에 데이터를 생성해 봅니다.

SQL 문에 데이터와 함께 전달할 수 있으며 excute의 인자를 통해 전달할 수 있습니다.

데이터 생성 후에는 commit을 통해 적용합니다.

import pymysql

connector   = pymysql.connect(host="192.168.0.38", user="user", password="p@ssw0rd", db="test_db", charset="utf8")
cursor      = connector.cursor()

SQL         = "INSERT INTO tb_user (name, password) VALUES ('user1','user1_password'), ('user2','user2_password'), ('user3','user3_password')"
cursor.execute(SQL)

SQL         = "INSERT INTO tb_user (name, password) VALUES (%s,%s)"
cursor.execute(SQL, ("user4", "user4_password"))
cursor.execute(SQL, ("user5", "user5_password"))
cursor.execute(SQL, ("user6", "user6_password"))
connector.commit()

cursor.close()
connector.close()

3. Read

조건에 맞는 모든 데이터를 조회할 때는 fetchall을 이용하고 한 개의 데이터만 조회한다면 fetchone을 사용합니다.

SQL 문에 데이터와 함께 전달할 수 있으며 excute의 인자를 통해 전달할 수 있습니다.

import pymysql

connector   = pymysql.connect(host="192.168.0.38", user="user", password="p@ssw0rd", db="test_db", charset="utf8")
cursor      = connector.cursor()

SQL         = "SELECT * FROM tb_user"
cursor.execute(SQL)
rows        = cursor.fetchall()
for row in rows:
    print(row)

SQL         = "SELECT * FROM tb_user where name=%s"
cursor.execute(SQL, ("user3", ))
row         = cursor.fetchone()
print(row)

cursor.close()
connector.close()

4. Update

업데이트를 통해 데이터를 변경 후 SELECT 질의를 통해 데이터의 변화를 확인해 봅니다.

SQL 문에 데이터와 함께 전달할 수 있으며 excute의 인자를 통해 전달할 수 있다.

import pymysql

connector   = pymysql.connect(host="192.168.0.38", user="user", password="p@ssw0rd", db="test_db", charset="utf8")
cursor      = connector.cursor()

SQL         = "UPDATE tb_user SET password=%s WHERE name=%s"
cursor.execute(SQL, ("updated_password", "user5"))
connector.commit()

SQL         = "SELECT * FROM tb_user where name=%s"
cursor.execute(SQL, ("user5", ))
print(cursor.fetchone())

cursor.close()
connector.close()

5. Delete

데이터를 삭제 후 SELECT 질의를 통해 데이터가 삭제됐음을 확인해 봅니다.

SQL 문에 데이터와 함께 전달할 수 있으며 excute의 인자를 통해 전달할 수 있다.

import pymysql

connector   = pymysql.connect(host="192.168.0.38", user="user", password="p@ssw0rd", db="test_db", charset="utf8")
cursor      = connector.cursor()

SQL         = "DELETE FROM tb_user WHERE name=%s"
cursor.execute(SQL, ("user1", ))
connector.commit()

SQL         = "SELECT * FROM tb_user where name=%s"
cursor.execute(SQL, ("user1", ))
print(cursor.fetchone())

cursor.close()
connector.close()
profile
IT 도서관

0개의 댓글