sqlite笔记(akaedu)
1.创建sql表
create table student(id integer primary key, name text, score integer);
2.插入一条记录
insert into student(score, id, name) values(100, 1, 'XiaoMing');
insert into student values(2, "XiaoZhang", 90);
//主键没有的给的话,会自动分配一个给你的记录,其他没有not null约束的字段你没有提供的话,默认是可以为空(null)的
insert into student(name) values("XiaoLiu");
3.简单的查询语句
select id, name from student;
select * from student;
4.修改一条记录(where子句很重要,没有where则修改所有记录)
update student set score=80, name="XiaoWu" where id=3;
5.删除一条记录
delete from student; //没有where子句删除所有记录
delete from student where id=3;
6.数据的批量导入
这不是SQL语句,是sqlite3工具的一条命令
.import 1.txt student
7.修改表的结构
alter table student add score2 integer;
可以使用命令.schema student查看student表结构。
alter table student rename to newstudent;修改表名
但是不支持修改某一个现有字段。(没有modify操作)
8.备份一张表的内容(备份表内容,但是表结构可能有差异)
备份student表的所有内容到新的表newstudent
create table newstudent as select * from student;
备份student表的头三列到新的表newstudent中
create table newstudent as select id, name, score from student;
9.删除表
drop table student;删除student表
10.复杂的查询语句
select * from student where score>80;查询成绩大于80分的同学
select * from student where score>87 and score<100;
select * from student where score between 87 and 100;
where score between 87 and 100;
等价于 where score>=87 and score<=100;
模糊查询
select * from student where score like "9%";
select * from student where name like "%g";
select * from student where score like "87";等价于select * from student where score=87;
排序输出
select * from student order by score desc; 降序
select * from student order by score asc;升序
order by默认是升序排列
找80分以上成绩最低的两位学员:
select * from student where score>=80 order by score asc limit 2;
找班上成绩第三名的同学:
select * from student order by score desc limit 1 offset 2;
找班上成绩最高的一位或几位同学:
select * from student where score=(select score from student order by score desc limit 1);
group by子句(having是group by的条件子句)
select dep, sum(salory) from employee where salory>4000 group by dep; //按部门列出每个月每个部门所发薪水总和
select name from employee group by name, salory, dep having count(*)>1;//求出出现重复录入的数据的人的姓名
连接两张表的内容:
sqlite> select * from student;
1|XiaoMing|21
2|XiaoZhang|22
3|XiaoWu|19
sqlite> select * from score;
1|100
2|96
1.where子句连接两张表
select a.id, a.name, a.age, b.score from student a, score b where a.id=b.id;
1|XiaoMing|21|100
2|XiaoZhang|22|96
2.自然连接(要求两张表中要有相同名字的字段,字段值相同的记录被连接到一起输出)
select id, name, age, score from student natural join score;
1|XiaoMing|21|100
2|XiaoZhang|22|96
如果两张表中没有相同名字的字段(student的id,score的id名字相同),连接不能成功,输出两张表的笛卡尔积
select id, name, age, nid, score from student natural join newscore;
1|XiaoMing|21|1|100
1|XiaoMing|21|2|96
2|XiaoZhang|22|1|100
2|XiaoZhang|22|2|96
3|XiaoWu|19|1|100
3|XiaoWu|19|2|96
左外连接(左边的表中,即使在右边表内没有连接成功的项也会输出。)
select a.id, name, age, score from student a left outer join score b on a.id=b.id;
1|XiaoMing|21|100
2|XiaoZhang|22|96
3|XiaoWu|19| =>这一项因为左外连接而输出,注意和下面的比较
select a.id, name, age, score from score b left outer join student a on a.id=b.id;
1|XiaoMing|21|100
2|XiaoZhang|22|96
sqlite笔记(akaedu)的更多相关文章
- 编写SQL语句操作数据库(慕课SQLite笔记)
安卓常用数据存储方式之一SQLite学习及操作笔记 0.视频地址:http://www.imooc.com/video/3382 1.每个程序都有自己的数据库 默认情况下是各自互不干扰 1)创建一个数 ...
- Android中使用sqlite笔记
1.实现SQLiteHelper来在android中使用SQLite.代码如下,来自android官网. public class FeedReaderDbHelper extends SQLiteO ...
- SQLite笔记
一.SQLite下载: http://www.sqlite.org/download.html (或在NuGet下载安装) 二.SQLite操作: 1.添加引用System.Data.SQLite,如 ...
- python之SQLite笔记
sqlite3 打开文件并创建游标 conn = sqlite3.connect('adressbook.db')c = conn.cursor() 连接对象:sqlite3.connect('数据文 ...
- Ionic2学习笔记(8):Local Storage& SQLite
作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5557947.html Ionic2可以有两种方式来存储数据,Local S ...
- SQLite学习笔记(七)&&事务处理
说到事务一定会提到ACID,所谓事务的原子性,一致性,隔离性和持久性.对于一个数据库而言,通常通过并发控制和故障恢复手段来保证事务在正常和异常情况下的ACID特性.sqlite也不例外,虽然简单,依然 ...
- Sqlite学习笔记(四)&&SQLite-WAL原理
Sqlite学习笔记(三)&&WAL性能测试中列出了几种典型场景下WAL的性能数据,了解到WAL确实有性能优势,这篇文章将会详细分析WAL的原理,做到知其然,更要知其所以然. WAL是 ...
- Sqlite学习笔记(一)&&编译安装
Sqlite简介 sqlite是一个开源的嵌入式文件数据库,sqlite以动态链接库的方式供应用程序调用,所有的数据库对象都存储在同一个文件中. sqlite动态库非常小,最新的3.8.11版本也只有 ...
- 安卓第四天笔记-Sqlite
安卓第四天笔记-Sqlite 1.数据库的创建运行与更新 1.1.创建一个类继承SqliteOpenHelper 1.2.创建构造方法 /** * 数据库创建类 * @author 刘楠 * * 20 ...
随机推荐
- Download Visual Studio
Welcome to a new way to install Visual Studio! In our newest version, we've made it easier for you t ...
- [Functional Programming] Unbox types with foldMap
Previously we have seen how to use Concat with reduce: ), Sum(), Sum()] .reduce((acc, x) => acc.c ...
- org.hibernate.MappingException: An association from the table order_intem_inf refers to a unmapped
执行一个HIbernate的演示样例时出现例如以下错误信息 Exception in thread "main" java.lang.ExceptionInInitializerE ...
- linux apache服务器优化建议整理(很实用)
转载:http://www.cnblogs.com/zhongbin/archive/2013/06/11/3131865.html 1.apache服务器的time_wait过多 fin_wait1 ...
- 用一段直径为1的原木制作截面是矩形的横梁,问梁的宽度x和高度y是怎样的比例时,才能使梁的强度最大?
解:根据经验,梁的强度与高度平方成正比,和宽度成反比,可以写成 q=y2x 又有x2+y2=1,得到 q=(1-x2)x=x-x3 而导数q'=1-3x2,当q'=0时,q有极值 q'=0时,x=1/ ...
- (剑指Offer)面试题6:重建二叉树
题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树. 假设输入的前序遍历和中序遍历结果中都不含重复的数字. 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...
- Grunt的配置及使用(压缩合并js/css)
Grunt的配置及使用(压缩合并js/css) 安装 前提是你已经安装了nodejs和npm. 你能够在 nodejs.org 下载安装包安装.也能够通过包管理器(比方在 Mac 上用 homebre ...
- 基于Struts2、Spring、Hibernate实现的包括多条件查询分页的基础Dao层帮助jar包实现
操作数据库经常使用操作就是增删查改.每做一次就写一次这些操作太麻烦,也不是必需,特别是写多条件查询并分页时.太痛苦了,所以抽出时间写了个dao帮助jar.导入即搞定!妈妈再有不用操心我的项目了! 转载 ...
- Android媒体扫描详细解析之二(MediaScanner & MediaProvider)
上篇blog说到了经过对文件夹进行扫描如果后缀符合系统设定的一些格式,那么就会进行文件内容扫描下面我们紧接着STEP 14中的 status_t StagefrightMediaScanner::pr ...
- Android日常开发总结
全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效. 数据库表段字段常量和SQL逻辑分离,更清晰,建议使用 ...