1.创建数据库表

面对 SQLite 数据库,我们之前熟悉的 SQL 指令都可以用:

>>> create_table = "create table books (title,author,language)"
>>> cur.execute(create_table)
<sqlite3.Cursor object at 0x104f296c0>

这样就在数据库 lite.db 中建立了一个表 books。对这个表可以增加数据:


>>> cur.execute('insert into books values("python basic","rocky","python")')
<sqlite3.Cursor object at 0x104f296c0>

为了保证数据能够保存,还要进行如下操作:

>>> conn.commit()
>>> cur.close()
>>> conn.close()

以上,在刚才建立的数据库中已经有了一个表 books,表中已经有了一条记录。

2.查询

保存以后我们来查询一下:

>>> conn = sqlite3.connect('lite.db')
>>> cur = conn.cursor()
>>> cur.execute('select * from books')
<sqlite3.Cursor object at 0x104f297a0>
>>> cur.fetchall()[('python basic', 'rocky', 'python')]

3.批量插入

我们来给 books 表中多增加一些内容,以便于我们进行其它的操作:

>>> books = [("first book","first","c"),("second book","second","c++"),("third book","third","java")]

这次我们来一个批量插入:

>>> cur.executemany('insert into books values (?,?,?)',books)
<sqlite3.Cursor object at 0x104f297a0>
>>> conn.commit()

接下来我们用循环语句来打印一下查询结果:

>>> rows = cur.execute('select * from books')
>>> for row in rows:
... print(row)
... ('python basic', 'rocky', 'python')('first book', 'first', 'c')('second book', 'second', 'c++')('third book', 'third', 'java')

4.更新

正如我们前面所说的,在 cur.execute() 中,可以写 SQL 语句来操作数据库:

>>> cur.execute("update books set title='physics' where author='first'")
<sqlite3.Cursor object at 0x104f297a0>
>>> conn.commit()

接下来我们按照条件查询来看一看:

>>> cur.execute("select * from books where author='first'")
<sqlite3.Cursor object at 0x104f297a0>
>>> cur.fetchall()[('physics', 'first', 'c')]

5.删除

删除也是操作数据库必须的动作:

>>> cur.execute("select * from books")
<sqlite3.Cursor object at 0x104f297a0>
>>> cur.fetchall()
[('python basic', 'rocky', 'python'), ('physics', 'first', 'c'), ('third book', 'third', 'java')]

最后不要忘记在完成对数据库的操作以后,一定记得给人家「关上门」:

>>> cur.close()
>>> conn.close()
conn.execute('''CREATE TABLE MT
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);''') 除此之外,select语句还可以搭配一些SQLite功能函数使用,常用的有:     count(*)        统计表内行数(记录数)    sqlite&gt; select count(*) from stu;     max(column)        计算该列的最大值        columen 是一列的名字     min(column)        计算该列的最小值     avg(column)        计算该列的平均值     sum(column)        计算该列的总和     upper(column)    输出选中的列的所有字符串的全大写字母     lower(column)    输出选中的列的所有字符串的全小写字母     length(column)    计算该列的所有字符串的长度 将这些函数放在select语句内可以完成一些计算工作。例如输入命令     select sum(score) from student; 可以求出表student内所有学生的成绩总和。 8、模糊查询——like子句 除了使用where子句设定筛选条件外,我们还可以使用like子句模糊匹配表内的记录。like语句搭配两个通配符一起使用:     百分号%    表示零个、一个或多个数字或字符     下划线_    表示一个数字或字符 如果某条记录内的某一列能与like后的条件匹配,则该记录被选定。例如:     select * from student where name like %l%;//从表student中选取名字内带字母l的所有记录
--------------------- 原文:https://blog.csdn.net/nan_lei/article/details/84344003

最新文章

  1. 第三天--html区块
  2. git整理
  3. iOS获取当前AppStore版本号与更新
  4. 爬虫--Scrapy
  5. ios - 文件保存路径的获取
  6. iptables conntrack有什么用
  7. Linux-NFS原理介绍
  8. 加了GO后报 &#39;GO&#39; 附近有语法错误
  9. CSS构造表单
  10. Android用自己的app替换Launcher
  11. web组件新学--layer
  12. Flex读文本文件
  13. 【转】The final local variable xxx cannot be assigned, since it is defined in an enclosing type
  14. javascript点击图片放大的功能(原生)
  15. jq问题处理
  16. 【转】【2015MIIC】迅雷CTO陈磊:互联网思维会害死很多传统企业
  17. hadoop笔记之Hive的数据类型
  18. 不知道的JavaScript
  19. java接口与抽象类
  20. [51Nod1238]最小公倍数之和 V3[杜教筛]

热门文章

  1. Wireshark网络分析就这么简单——读书笔记
  2. 2020centos解决“nginx 403 Forbidden&quot;错误的故事
  3. DBProxy快速入门
  4. Python面向对象之:三大特性:继承,封装,多态以及类的约束
  5. Go 的 http 包的源码,通过代码我们可以看到整个的 http 处理过程
  6. 事务特性,事务的隔离级别以及spring中定义的事务传播行为
  7. 某些时候 v-if 会导致 v-modal 内部数据获取不到 也watch不到,这个时候用v-show即可,另外提一下数组要整体赋值才有双向绑定
  8. 我在使用DriverManager时发现的问题
  9. 蓝桥杯vip 字符串对比
  10. CSS每日学习笔记(2)