第一节:数据库API与全局变量及核心类基本流程
第二节:案例实操-动态创建数据表
import sqlite3# 1 打开数据库链接# SQLite是一个没有后台进程的数据库,磁盘上的一个文件就可以对应SQLite数据库conn = sqlite3.connect('test.db')# 2 打开游标c = conn.cursor()# 3 使用游标的execute方法执行任意的SQL语句(DDL)c.execute(''' craete table user_tb( _id integer primary key autoincrement, name text, pass text, age interger)''')c.execute(''' craete table order_tb( _id integer primary key autoincrement, item_name text, item_price real, item_number integer, user_id integer, foreign key(user_id) references user_tb(_id))''')# 4 关闭游标c.close()# 5 关闭数据库链接conn.colse()
第三节:使用SQLite Expert
第四节:执行DML语句
import sqlite3# 创建数据库conn = sqlite3.connect('test.db')# 获取游标c = conn.cursor()# 执行SQL语句# 插入insert into tabnamec.execute('insert into user_tb values(null, ?, ?, ?)', ('fkjava', '33445', 23))c.execute('insert into user_tb values(null, ?, ?, ?)', ('crazyit', '35555', 25))c.execute('insert into order_tb values(null, ?, ?, ?, ?)', ('鼠标', 33, 3, 1))# 更新 update tabnamec.execute('update user_tb set pass=?', ('98765',))# 执行完DML语句之后,如果程序获取被DML语句修改的记录条数,可通过游标的rowcount来获取print('受影响的记录条数:' , c.rowcount)# 提交事务,使修改生效conn.commit()# 关闭资源c.close()conn.close()
第五节:执行查询
import sqlite3# 创建数据库conn = sqlite3.connect('test.db')# 获取游标c = conn.cursor()# 执行SQL语句c.execute('select * from user_td where _id > ?', (2,))# 所有查询结果都通过游标来获取# description属性(元组)返回列信息# 如果要获取查询数据,fetchxxx或者直接迭代游标for col in c.description: print(col[0], end='\t')print() #--------------------fetchone方法------------------ while True: # 用fetchone每次获取一条记录 row = c.fetchone() # 如果row为空,说明没有数据 if not row: break else: # 输出该行内各个单元格的数据 for d in row: print(col[0], end='\t') print()#--------------------游标当成可迭代对象------------------ for row in c: # 输出该行内各个单元格的数据 for d in row: print(col[0], end='\t') print()# 关闭资源c.close()conn.close() 第六节:案例实操-使用事务控制数据库操作
第七节:案例实操-用程序执行SQL脚本
insert into user_tb values(null, '张三', '11111', 23)insert into user_tb values(null, '李四', '22222', 24)insert into user_tb values(null, '小吴', '33333', 25)creat table test_td(_id integer primary key autoincrement,name text,pass text,description);creat table emp_td(_id integer primary key autoincrement,emp_name,emp_pass,emp_title);
import sqlite3# 创建数据库conn = sqlite3.connect('test.db')# 打卡SQL脚本所在的文件with open('a.sql', 'r', True, 'UTF-8') as f: # 读取文件中的SQL语句 sql = f.read() # 直接用数据库连接对象来执行SQL脚本 c.executescript(sql) # 提交事务conn.commit() # 关闭资源conn.close() |
|
来自: copy_left > 《python相关》