Python高级培训第六课

目录

连接数据库

创建数据表

插入数据

查询数据

全部查询

条件查询

更新数据

删除数据


连接数据库

连接数据库前需要做的事:

  • pycharm已将安装了pymysql包
  • 已经创建了数据库jdbc
  • 知道数据库的用户名,密码和url

连接数据库的操作步骤:

  1. 引入pymysql包
  2. 连接数据库并打开jdbc数据库
  3. 获取游标对象
  4. 执行SQL语句
  5. 获取执行结果
  6. 关闭游标对象
  7. 关闭数据库连接

模板示例:

# 引入pymysql包
import pymysql
# 连接数据库并打开jdbc数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='jdbc')
# 获取游标对象
cur = conn.cursor()
# 执行SQL语句
cur.execute("...")
# 获取执行结果
rows = cur.fetchall()
print("number of records: ", len(rows))
for i in rows:
	print(i)
# 关闭游标对象
cur.close()
# 关闭数据库连接
conn.close()

创建数据表

操作步骤:

  1. 创建表之前先检查是否存在,如果存在则删除
  2. 编辑sql语句

简单示例:

cur.execute('DROP TABLE IF EXISTS Student')
sqlQuery = "CREATE TABLE Student(Name CHAR(20) NOT NULL ,Email CHAR(20),Age int )"

cur.execute(sqlQuery)

 

插入数据

注意:插入数据后需要调用commit()方法提交对数据库的修改,不然数据不会插入到数据库中。

简单示例:

#sql语句
insert_sql="""
INSERT INTO users(id,name,age)
    VALUES (1,'小白',16),(2,'大白',20),(3,'小明',18)

"""
#插入
try:
    #插入数据
    cursor.execute(insert_sql)
    connect.commit()
    print("插入成功")
    pass
except Exception as e:
    connect.rollback()
    print("插入失败",e)

查询数据

全部查询

编辑sql语句

sqlQuery = "SELECT * FROM Student"

打印结果

rows = cur.fetchall()
print("number of records: ", len(rows))
for i in rows:
	print(i)

 

条件查询

编辑sql语句

cur.execute("SELECT name,id,grade,profession from information where name='张三'")

打印结果

rows = cur.fetchall()
print("number of records: ", len(rows))
for i in rows:
	print(i)

 

更新数据

编辑sql语句

sqlQuery = "UPDATE Student SET Name= %s WHERE Name=%s"

编辑更新语句

value = ('John', 'updated name')

打印结果

try:
    cur.execute(sqlQuery, value)
    db.commit()
    print('数据更新成功!')
except pymysql.Error as e:
    print("数据更新失败:"+str(e))
    # 发生错误时回滚
    db.rollback()

 

 

删除数据

编辑sql语句

sqlQuery = "DELETE FROM Student where Name=%s"

编辑删除语句

value = ('John')

打印结果


try:
    cur.execute(sqlQuery, value)
    db.commit()
    print('Date Deleted Successfully')
except pymysql.Error as e:
    print("数据删除失败:"+str(e))
    # 发生错误时回滚
    db.rollback()

 

 

上一篇:LeetCode链表总结(待完成)


下一篇:用两个栈模拟队列