《sqlite权威指南》读书笔记 (一)
一 常量
字符串常量 (使用单引号括住。如果常量中有单引号,使用两个单引号来表示。大小写敏感)
数字常量
二进制常量
二 关键字
关键字大小写不敏感
三 注释
单行注释使用 --XXXXXXX
多行注释使用/*XXXXXX*/
四 创建表
CREATE [TEMP | TEMPORARY] TABLE table_name (column_definitions [constraints,]);
五 修改表
ALTER TABLE table_name {RENAME TO new_table_name | ADD COLUMN column_definitions};
六 关系操作
基本操作
Restriction (限制)
Projection (投影)
Cartesian Product (笛卡尔积)
Union (联合)
Difference (差)
Rename (重命名)
附加操作
Intersection (交叉)
Natural Join (自然连接)
Assign (赋值)
扩展操作
Generalized Projection (广义投影)
Left Outer Join (左外连接)
Right Outer Join (右外连接)
Full Outer Join (全外连接)
七 LIKE 和 GLOB
SELECT column_name FROM table_name WHERE column_name LIKE 'xxx';
LIKE 后跟的模式可以进行字符串匹配。
%可以与任意0个或多个字符匹配。为贪婪匹配。大小写不敏感。
'%x' 表示以x结尾
'x%' 表示以x开头
'%x%' 表示包含x
_可以与任意一个字符匹配。
可以使用 NOT LIKE 'xxx'表示不包含某模式。
PS:'xx'表示一个模式,并不是只能与text类型的列进行匹配,同样可以与integer类型的列进行匹配。
可以将LIKE改为GLOB,两者用法十分类似,不过 GLOB大小写敏感,且*和_来表示。
八 限定和排序
SELECT column_name FROM table_name ORDER BY column_name [ASC|DESC] LIMIT 1...9 OFFSET 1....9;
ORDER BY 表示排序。默认为升序,加入desc表示降序。可以有多列,用逗号分开。第一字段重复,则根据第二字段排序,以此类推。
LIMIT 后的数字表示,在排序结果中返回的行数。
OFFSET后的数字表示跳过的行数。例如:OFFSET 1 表示跳过一行,重第二行开始。
可以简略的写作LIMIT 2,3 和LIMIT 3 OFFSET 2意思一样。
九 函数和聚合
函数:可以把 upper(column_name) 作为一列,执行SELECT upper(name)......可以将name列的所有行换为大写。
聚合:理解做“对表中的每一行执行某种操作”。 执行SELECT count(*) From table;可以返回table表中行的数量。
十 分组
“聚合的主要部分就是分组,也就是说,聚合不只是能够计算整个结果集的聚合值,还可以把结果集分成多个组,然后计算每个组的聚合值。”
select type_id,name from foods group by type_id;
这一句,会根据type_id进行分组,name返回该组的最后一条。
select type_id,count(*) from foods group by type_id;
这一句,依然是根据type_id进行分组,count(*) 则是对改组进行聚合求职。
十一 去掉重复
SELECT DISTINCT column_name FROM table_name;
该句先得到所有,再进行删除操作
十二 多表连接
内连接例句:
SELECT * FROM foods INNER JOIN food_types ON foods.id == food_types.id;
交叉连接例句:
SELECT * FROM foods,food_types;
左连接例句:
SELECT * FROM foods LEFT OUTER JOIN food_types ON foods.id == food_types.id;
应该避免使用隐式连接,虽然可以简洁的实现。
标准形式:
select heading from left_table join_type right_table on join_condition;
《sqlite权威指南》读书笔记 (一)的更多相关文章
- 《html5 从入门到精通》读书笔记(一)
今天看了<html5 从入门到精通>这本书,感觉阅读下来很舒心,不像阅读其他书籍很揪心.html增加的知识点,我觉得非常有价值,看完几章记录了一些内容,不但能巩固,也为下次遗忘知识点做好准 ...
- HTML5从入门到精通(明日科技) 中文pdf扫描版
HTML5从入门到精通(明日科技) 中文pdf扫描版
- HTML5从入门到精通(千锋教育)免费电子版+PDF下载
本书是HTML5初学者极好的入门教材之一,内容通俗易懂.由浅入深.循序渐进.本书内容覆盖全面.讲解详细,其中包括标签语义化.标签使用规范.选择器类型.盒模型.标签分类.样式重置.CSS优化.Photo ...
- Unity Shader入门精要读书笔记(一)序章
本系列的博文是笔者读<Unity Shader入门精要>的读书笔记,这本书的章节框架是: 第一章:着手准备. 第二章:GPU流水线. 第三章:Shader基本语法. 第四章:Shader数 ...
- Oracle从入门到精通----学习笔记
书名:<Oracle从入门到精通:视频实战版>秦靖.刘存勇等编著 第4章 SQL基础 1.SQL语言分类 数据定义语言 --- DDL,Data Definition Language 数 ...
- MySQL数据库应用 从入门到精通 学习笔记
以下内容是学习<MySQL数据库应用 从入门到精通>过程中总结的一些内容提要,供以后自己复现使用. 一:数据库查看所有数据库: SHOW DATABASES创建数据库: CREATE DA ...
- Unity Shader入门精要读书笔记(二)UnityShader概述
第三章<UnityShader概述>的读书笔记: 1.Unity Shader模板提供了几种选择: 标准光照模型(新添加的基于物理的渲染方法) 不含光照的基本的顶点.片元着色器 屏幕后处理 ...
- 《html5 从入门到精通》读书笔记(二)
接着上面继续记录笔记,这次要记的知识点比较多...记录下我认为比较重要的东西. 一.表单属性 1.autocomplete属性 该属性规定form或input域应该拥有自动完成功能. <form ...
- 《html5 从入门到精通》读书笔记(三)
二.标签详解 标签 描述 4 5 <form> 定义表单. 4 5 <h1> to <h6> 定义标题1到标题6. 4 5 <head> 定义关于文档的 ...
- 《HTML5 CANVAS基础教程》读书笔记
一.HTML5简介 1.HTML5新特性 1)结构元素:section,header,hgroup,footer,nav,article,aside, 2)内容元素:figure,figcaption ...
随机推荐
- chkconfig-增加一个服务设置服务自启动
参考 http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796873.html 如何增加一个服务: 1.服务脚本必须存放在/etc/ini ...
- Sql Server2000,2005,2008各版本主要区别
Emerson回来之后,在过程中遇到的一些问题,再次做一些整理,包括本篇的Sql Server各版本之间的区别和另一篇数据库函数. (博文内容来自网络) 数据类型 SQL Server 2008 数据 ...
- 对于volatile的理解
哎.要学的东西太多,时间太少.一周的工作下来要总结的东西太多,还处理不完,越积越多.大周末的好想出去玩啊.... 得嘞,废话止于此. 无聊时候乱看网页发现了volatile的一篇文章,以前曾经对vol ...
- 把一个string串的所有小写字母转成大写字母的例子来看看看全局函数的使用
今天写了一个小例子,把字符串里面的所有小写字母全部转换成大写字母http://blog.csdn.net/yasaken/article/details/7303903 1 #include &quo ...
- 如何用C程序简单演奏乐曲
如何用C程序简单演奏乐曲 首先我们要介绍一个函数: Beep(Frequency,time) 如果我们在程序中运行这个函数 Int main(void) { Beep(Frequency,time); ...
- 学习Swift -- 构造器(中)
构造器(中) 值类型的构造器代理 构造器可以通过调用其它构造器来完成实例的部分构造过程.这一过程称为构造器代理,它能减少多个构造器间的代码重复. 构造器代理的实现规则和形式在值类型和类类型中有所不同. ...
- js将数字转换成大写的人民币表达式
function changeNumMoneyToChinese(money) { var cnNums = new Array("零", "壹", " ...
- Dataguard配置前提条件
Data Guard配置前提条件 配置Data Guard必须保证以下前提条件: 1.Data Guard是Oracle企业版的组件.Oracle标准版里没有这个控件.所以Data Guard配置所使 ...
- mysql 2006
1.在my.ini文件中添加或者修改以下两个变量:wait_timeout=2880000interactive_timeout = 2880000 关于两个变量的具体说明可以google或者看官方手 ...
- 安卓天天练练(五)CompoundButton
ToggleButton 让我想起了从前jQuery还没有取消toggle方法时是怎么偷懒的.. 注意: 如果LinearLayout,与RelativeLayout不同,必须有orientation ...