PyMySQL使用マニュアル

4922 ワード

0.参照PにMySQLがある
import mysql

1.connectionとcursorオブジェクトの作成
connection = pymysql.connect(host='localhost',
                             user='username',
                             password='passwd',
                             db='dbname')

cursor = connection.cursor()

2.データベース表の作成
create_sql = """
create table if not exists blogs(
    id int not null primary key auto_increment,
    blog_name varchar(50) not null,
    blog_content varchar(1000) not null,
    blog_date date not null,
    key blog_name(blog_name),
    key blog_date(blog_date)
)
"""

print(create_sql)
cursor.execute(create_sql)
connection.commit()

3.データの挿入
insert_template_sql = "insert into blogs(blog_name, blog_content, blog_date) values(%s, %s, %s)"

data_list = [
    ('Blog One', 'this is content 1', '2018-10-19'),
    ('Blog Two', 'this is content 2', '2017-10-19'),
]

for data in data_list:
    cursor.execute(insert_template_sql, data)

connection.commit()

4.クエリーデータ
select_sql = "select blog_name, blog_content, blog_date from blogs where blog_name=%s"

cursor.execute(select_sql, ('Blog One'))

rows = cursor.fetchall()
print(rows)

select_sql = 'select * from blogs where blog_date < %s order by blog_date desc '
cursor.execute(select_sql, ('2018-01-01'))
rows = cursor.fetchall()
print(rows)

5.データの変更
update_sql = "update blogs set blog_name=%s where blog_name=%s"
res = cursor.execute(update_sql, ('Blog Title One', 'Blog One'))
print(res)
connection.commit()

6.データの削除
delete_sql = "delete from blogs where blog_name=%s"
res = cursor.execute(delete_sql, ('Blog Two'))
print(res)
connection.commit()

resは1を返して修正に成功し,0修正に失敗した.pymysqlのデフォルトは自動コミットではないので、データを変更した後にcommit以下にする必要があります.
7.接続を閉じる
cursor.close()
connection.close()