sql 模块sqllit
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> 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
sql 模块sqllit的更多相关文章
- SQL & PL/SQL 模块总结
SQL 1. 各种function 2. merge 3. connect by PL/SQL 1. pl/sql 寄出 2. 游标 3. procedure 4. function 5. packa ...
- 使用Groovy的sql模块操作mysql进行多种查询
连接数据库,这里要创建一个sql实例来操作数据库,必须加载jdbc驱动包,使用两个注解,否则会报错: import groovy.sql.Sql url='jdbc:mysql://localhost ...
- qt sql 模块有哪些类?
Class Description translate.google QSqlDatabase Handles a connection to a database 处理与数据库的连接 QSqlDri ...
- sql 模块 pymysql 数据库操作
1. 添加一个部门. import pymysql def main(): no = int(input('编号: ')) name = input('名字: ') loc = input('所在地: ...
- SQL错误码
///////////////////////////////////////////////////////////////ORA-00001: 违反唯一约束条件 (.)ORA-00017: 请求会 ...
- SQL中union运算操作的理解
在SQL中,对于并运算,可以使用union关键字. 例如: SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FRO ...
- PL/SQL之--包
一.包 包是一组相关过程.函数.常量.变量.游标.异常等PL/SQL程序设计元素的组合.它类似于C++和Java中的类,其中变量相当于类中的成员变量,过程和函数相当于类中的方法.通过使用包,可以使开发 ...
- Apache Spark源码走读之11 -- sql的解析与执行
欢迎转载,转载请注明出处,徽沪一郎. 概要 在即将发布的spark 1.0中有一个新增的功能,即对sql的支持,也就是说可以用sql来对数据进行查询,这对于DBA来说无疑是一大福音,因为以前的知识继续 ...
- Qt入门(20)——Qt模块简介
当你安装Qt时,这些模块会被构建到库中.在Qt企业版.Qt评估版和Qt自由版中,包含所有的模块.对于Qt专业版,提供基本的模块--工具.核心.窗口部件.对话框.图标视图和工作区模块.画布模块画布模块提 ...
随机推荐
- yii2设置默认控制器
以Yii2高级模板配置为例
- 从0到1使用MyBatis
MyBatis作为最流行的数据中间层,成为企业Java软件开发中非常重要的软件. 一.基本配置 1.首先需要导入Maven <dependency> <groupId>org. ...
- Mongo Shell CRUD操作
1.创建并使用test数据库 use test; 此时使用show dbs;命令查看当前存在的数据库是查看不到test数据库的,只有当test中insert数据之后才能查看到test数据库 删除数据库 ...
- 解决IOS下window.open页面打不开问题
问题如标题所写,在ajax回调里面拿到即将要跳转的链接url,使用window.open(linkUrl),没有起作用,而且代码也没有报错,查找原因是:大部分现代的浏览器(Chome/Firefox/ ...
- 问题描述:判断一个整数 n 是否为 2 的幂次方
一.2的幂次方的基本定义 什么样的数为2的幂次方?例如2^0=1,2^1=2,2^2=4……,符合公式2^n(n>=0)的数称为2的幂次方. 如何判断一个数是否为2的幂次方呢?基本思路:把一个数 ...
- let和var在for循环中的不同表现
var声明变量: var只有函数作用域,没有块级作用域 //函数作用域的表现 function test(){ var i =10; console.log(i); } test(); console ...
- Java多线程并发04——合理使用线程池
在此之前,我们已经了解了关于线程的基本知识,今天将为各位带来,线程池这一技术.关注我的公众号「Java面典」了解更多 Java 相关知识点. 为什么使用线程池?线程池做的工作主要是控制运行的线程的数量 ...
- Elasticsearch 之聚合分析入门
本文主要介绍 Elasticsearch 的聚合功能,介绍什么是 Bucket 和 Metric 聚合,以及如何实现嵌套的聚合. 首先来看下聚合(Aggregation): 什么是 Aggregati ...
- 三万字、91道MySQL面试题。 附PDF
文末领取面试题 高清PDF 数据库基础知识 1. 为什么要使用数据库 数据保存在内存 优点:存取速度快 缺点:数据不能永久保存 数据保存在文件 优点:数据永久保存 缺点:1)速度比内存操作慢,频繁的I ...
- org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'employeeId' not found. Available parameters are [page, map, param1, param2] 解决方法
原因很简单就是没映射到接口添加 @Param 注解 ->@Param("map") 然后在mapper.xml map.employeeId 再次测试 已经解决 ->