用Python操作SQL语句

img


这貌似是个考题来着,尽量简单易懂的用Python解这些问题,(请各位解答者顺便标注一下每一块的步骤都是解释哪个问题,栓Q)


from pymysql import connect
def sql(Sql):
  mydb = connect(
    host="localhost",
    user="yourusername",
    passwd="yourpassword"
  )

  mycursor = mydb.cursor()
  mycursor.execute(Sql)
  mycursor.close()
# 每一个sql对应一个句式
sql("create database products character set utf8;")
sql("CREATE table p1(id VARCHAR(4),`name` VARCHAR(10) ,`type` VARCHAR(5),price INT(5),PRIMARY key(id));")
lis=[['A001','电视机','家电',5000],['A002','音响','家电',1000]]
for i in lis:
    sql("insert into p1 values('%s','%s','%s','%s') "%(i[0],i[1],i[2],i[3]))
sql("alter table p1 add sale_num int(3)")
sql("select * from p1 where price>2000 and sale_num>50")
sql("update p1 set price=price*0.9  where sale_num<50)")
sql("select id,name from p1 where type='家电'")
sql("alter table p1 modify price int(8)")
sql("delete from p1 where name='电视机'")
sql("drop table p1")




1.

# python + pymysql 创建数据库
# 注意这⾥的database⼀定要指定,否则报错
import pymysql
# 创建连接
conn = pymysql.connect(host='localhost',user='root',password='123456',charset='utf8mb4', database='db_name')
# 创建游标
cursor = conn.cursor()
# 创建数据库的sql(如果数据库存在就不创建,防⽌异常)
sql = "CREATE DATABASE IF NOT EXISTS products" 
# 执⾏创建数据库的sql
cursor.execute(sql)


试一下

代码如下所示:

安装

python -m pip install mysql-connector-python

使用

import mysql.connector

test_db = {
    'host': '127.0.0.1',
    'port': 3306,
    'database': 'mysql',  # 改成自己本地的数据库
    'user': 'root',  # 改成自己本地的数据库账号
    'password': '',  # 改成自己本地的数据库密码
}

product_db = {
    'host': '127.0.0.1',
    'port': 3306,
    'database': 'products',  # 改成自己本地的数据库
    'user': 'root',  # 改成自己本地的数据库账号
    'password': '',  # 改成自己本地的数据库密码
}

# 连接数据库
cnx = mysql.connector.connect(**test_db)
cursor = cnx.cursor()

# 1 创建数据库
_sql = "create database products  "
cursor.execute(_sql)
cnx.commit()
cursor.close()
cnx.close()

# 连接products数据库
cnx = mysql.connector.connect(**product_db)
cursor = cnx.cursor()
# 2、创建表p1
_sql = "CREATE table p1(id VARCHAR(4),`name` VARCHAR(10) ,`type` VARCHAR(5),price INT(5),PRIMARY key(id));"
cursor.execute(_sql)
cnx.commit()

# 3、插入记录
_sql = "insert into p1 values('A001', '电视机', '家电', 5000),('A002', '音响', '家电', 1000); "
cursor.execute(_sql)
cnx.commit()

# 4、增加字段
_sql = "alter table p1 add num int(3)"
cursor.execute(_sql)
cnx.commit()

# 5、查询
_sql = "select * from p1 where price>2000 and num>50 order by id"
cursor.execute(_sql)
rows = cursor.fetchall()
print(rows)

# 6、降价
_sql = "update p1 set price=price*0.9  where num<50"
cursor.execute(_sql)
cnx.commit()

# 7、查询
_sql = "select id,name from p1 where type='家电'"
cursor.execute(_sql)
rows = cursor.fetchall()
print(rows)

# 8、修改字段
_sql = "alter table p1 modify price int(8) "
cursor.execute(_sql)
cnx.commit()

# 9、删除记录
_sql = "delete from p1 where name='电视机'"
cursor.execute(_sql)
cnx.commit()

# 10、删除表
_sql = "drop table p1"
cursor.execute(_sql)
cnx.commit()

# 关闭数据库连接
cursor.close()
cnx.close()

5、查询的时候因为 num字段刚添加,默认为空,所以需要手动添加51、13等数字来进行下一步查询。


如有问题及时沟通