pymysql增刪改查操作


表結構

CREATE TABLE `students` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT '',
`age` tinyint(3) unsigned DEFAULT '0',
`height` decimal(5,2) DEFAULT NULL,
`gender` enum('男','女','中性','保密') DEFAULT '保密',
`cls_id` int(10) unsigned DEFAULT '0',
`is_delete` int(11) DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO students VALUES
(0,'小明',18,180.00,2,1,0),
(0,'小月月',18,180.00,2,2,1),
(0,'彭於晏',29,185.00,1,1,0),
(0,'劉德華',59,175.00,1,2,1),
(0,'黃蓉',38,160.00,2,1,0),
(0,'鳳姐',28,150.00,4,2,1),
(0,'王祖賢',18,172.00,2,1,1),
(0,'周傑倫',36,170,1,1,0),
(0,'程坤',27,181.00,1,2,0),
(0,'劉亦菲',25,166.00,2,2,0),
(0,'金星',33,162.00,3,3,1),
(0,'靜香',12,180.00,2,4,0),
(0,'郭靖',12,170.00,1,4,0),
(0,'周傑',34,176.00,2,5,0);

 

1.查詢

import pymysql

mysqlConfig = {
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': 'root',
'db': 'test3',
'charset': 'utf8'
}

# 連接數據庫
conn = pymysql.connect(**mysqlConfig)
# 創建游標
# 設置游標類型,默認游標類型為元組形式
# self.cursor = db.cursor()
# 設置游標類型,將游標類型設置為字典形式
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 以字符串形式書寫SQL語句,因為SQL語句中也會出現字符串,所以建議使用 ```引號形式將SQL詩句引起來
sql_str = '''SELECT * FROM students;'''
# 執行SQL語句
row_count = cursor.execute(sql_str)
# 顯示執行 SQL 語句影響的行數
print('-' * 10, '影響的行數', '-' * 10)
print(row_count)
# 獲取一條記錄
print('-' * 10, '獲取一條記錄', '-' * 10)
row_one = cursor.fetchone()
# 顯示獲取的記錄
print(row_one)
# 獲取多條記錄
print('-' * 10, '取多條記錄', '-' * 10)
row_many = cursor.fetchmany(4)
# 遍歷輸出所有的結果
for t in row_many:
print(t)
# 獲取所有的數據
print('-' * 10, '獲取所有的數據', '-' * 10)
row_all = cursor.fetchall()
# 遍歷輸出所有的結果
for t in row_all:
print(t)
# 關閉游標
cursor.close()
# 關閉數據庫
conn.close()

 

2.增加

import pymysql

mysqlConfig = {
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': 'root',
'db': 'test3',
'charset': 'utf8'
}

# 連接數據庫
conn = pymysql.connect(**mysqlConfig)
# 獲取游標
cur = conn.cursor()
# 以字符串形式書寫SQL語句
sql_str = '''insert into students values(0,'新來的',20,180,'男',1,1)'''
# 執行SQL語句
row_count = cur.execute(sql_str)
# 在執行增刪改操作時,需要向數據庫提交操作,否則操作不成功
conn.commit()
# 關閉游標
cur.close()
# 關閉數據庫
conn.close()

 

3.修改

import pymysql

mysqlConfig = {
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': 'root',
'db': 'test3',
'charset': 'utf8'
}

# 連接數據庫
conn = pymysql.connect(**mysqlConfig)
# 獲取游標
cur = conn.cursor()
# 以字符串形式書寫SQL語句
sql_str = '''update students set name = '王鋼蛋' where name = '新來的'; '''
# 執行SQL語句
row_count = cur.execute(sql_str)
# 在執行增刪改操作時,需要向數據庫提交操作,否則操作不成功
conn.commit()
# 關閉游標
cur.close()
# 關閉數據庫
conn.close()

 

4.刪除

import pymysql

mysqlConfig = {
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': 'root',
'db': 'test3',
'charset': 'utf8'
}

# 連接數據庫
conn = pymysql.connect(**mysqlConfig)
# 獲取游標
cur = conn.cursor()
# 以字符串形式書寫SQL語句
sql_str = '''delete from students where name='王鋼蛋'; '''
# 執行SQL語句
row_count = cur.execute(sql_str)
# 在執行增刪改操作時,需要向數據庫提交操作,否則操作不成功
conn.commit()
# 關閉游標
cur.close()
# 關閉數據庫
conn.close()

 

5.回滾(取消操作)

import pymysql

mysqlConfig = {
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': 'root',
'db': 'test3',
'charset': 'utf8'
}

# 連接數據庫
conn = pymysql.connect(**mysqlConfig)
# 獲取游標
cur = conn.cursor()
# 以字符串形式書寫SQL語句
sql_str = '''insert into students values(0,'新來的',20,180,'男',1,1)'''
# 插入10條數據
for i in range(10):
# 執行SQL語句
row_count = cur.execute(sql_str)
# 在執行增刪改操作時,如果不想提交前面的修改操作,可以使用 rollback 回滾取消操作
conn.rollback()
# 關閉游標
cur.close()
# 關閉數據庫
conn.close()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM