Python MySQL 操作
import mysql.connector # 数据库链接 mydb = mysql.connector.connect( host="localhost", # 数据库主机地址 user="root", # 数据库用户名 passwd="root", # 数据库密码 database ='hello', #使用数据库 buffered =True #游标,防止同一链接时,出现报错 ) # 打印链接信息,若链接不上则报错 print(mydb) def ShowData(mycursor): for x in mycursor: print(x) # 数据库查询命令 def Select_Command(str_command): try: mycursor = mydb.cursor() mycursor.execute(str_command) return mycursor except mysql.connector.errors.ProgrammingError: print('命令错误!!!!') #更新单条数据和多条数据 def SQL_update(Select_SQL, Sql_value): try: mycursor = mydb.cursor() mycursor.execute(Select_SQL, Sql_value) mydb.commit() # 数据内容更新,需要加上此函数 print('数据插入成功') print('数据已经记录,记录id为:', mycursor.lastrowid) return mycursor except mysql.connector.errors.ProgrammingError: mycursor = mydb.cursor() mycursor.executemany(Select_SQL, Sql_value) mydb.commit() # 数据内容更新,需要加上此函数 print('数据已经记录,记录id为:', mycursor.lastrowid) #记录最后一次添加的id信息 # 查询数据库 Select_Command("show databases") # 使用hello数据库 #Select_Command("use hello") # 创建数据库表 Select_Command('create table sites (name Varchar(255), url varchar(255)) ') # 设置主键 Select_Command('alter table sites add column id int auto_increment primary key') # 添加数据 select_sql = 'insert into sites (name,url) values (%s,%s) ' #设置单条数据 val = ('百度', 'https://www.baidu.com') #设置多条数据,用元组表示 val3 = [('百度', 'https://www.baidu.com'), ('腾讯', 'https://www.qq.com'), ('新浪', 'https://www.sina.com') ] #单条数据插入 SQL_update(select_sql, val) #多条数据插入 SQL_update(select_sql, val3) #查询所有数据 mycursor = mydb.cursor() mycursor.execute("SELECT * FROM sites") myresult = mycursor.fetchall() # fetchall() 获取所有记录函数 ShowData(myresult) #where条件语句 sql = "select * from sites where name = '百度'" #条件语句 mycursor.execute(sql) #执行查询动作 myresult =mycursor.fetchall() #查询满足条件的所有数据 ShowData(myresult) #展示所有数据 #使用通配符,like语句 sql = "select * from sites where url like '%qq%'" #条件语句 mycursor = mydb.cursor() mycursor.execute(sql) #执行查询动作 myresult =mycursor.fetchall() #查询满足条件的所有数据 ShowData(myresult) #展示所有数据 #为了防止数据库查询发生 SQL 注入的攻击,我们可以使用 %s 占位符来转义查询的条件: sql = "select * from sites where name = %s" #条件语句 na = ("sina", ) mycursor = mydb.cursor() mycursor.execute(sql,na) myresult =mycursor.fetchall() #查询满足条件的所有数据 ShowData(myresult) #展示所有数据 #数据排序升序 sql = "select * from sites order by id" #条件语句 mycursor = mydb.cursor() mycursor.execute(sql) myresult = mycursor.fetchall() ShowData(myresult) #数据排序降序 sql = "select * from sites order by id desc" #条件语句 mycursor = mydb.cursor() mycursor.execute(sql) myresult = mycursor.fetchall() ShowData(myresult) #设置查询的数据量 sql = "select * from sites limit 10" #条件语句 mycursor = mydb.cursor() mycursor.execute(sql) myresult = mycursor.fetchall() ShowData(myresult) #设置从指定位置查询指定数据量 sql = "select * from sites limit 10 offset 20" #条件语句 mycursor = mydb.cursor() mycursor.execute(sql) myresult = mycursor.fetchall() ShowData(myresult) print('------------------------') #删除语句 删除语句后,需要更新数据 sql = "delete from sites where name ='百度'" #条件语句6 mycursor = mydb.cursor() mycursor.execute(sql) mydb.commit() #数据更新 print(mycursor.rowcount, "条记录被删除") #计算多少条记录被操作 sql = "select * from sites" #查询所有语句 mycursor.execute(sql) #数据更新 myresult = mycursor.fetchall() #数据更新完在获取数据 ShowData(myresult) #更新表数据,update函数 sql = "update sites set name = %s where name = %s" #条件语句 val = ("xinlang", "新浪") #定义需要修改的值以及原有的值 mycursor = mydb.cursor() mycursor.execute(sql, val) #查询数据 mydb.commit() #更新数据 #查看更新后的数据 sql = "select * from sites" #查询所有语句 mycursor.execute(sql) #数据更新 myresult = mycursor.fetchall() #数据更新完在获取数据 ShowData(myresult) # #删除表操作 # sql = "drop table if exists sites" #条件语句,删除数据表 # mycursor = mydb.cursor() # mycursor.execute(sql)