博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《sqlite权威指南》读书笔记 (一)
阅读量:4937 次
发布时间:2019-06-11

本文共 1979 字,大约阅读时间需要 6 分钟。

一 常量

字符串常量   (使用单引号括住。如果常量中有单引号,使用两个单引号来表示。大小写敏感)

数字常量

二进制常量

二 关键字

关键字大小写不敏感

三 注释

单行注释使用 --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;

 

 

转载于:https://www.cnblogs.com/suncoolcat/p/3358138.html

你可能感兴趣的文章
注册谷歌账号并验证时显示号码无法用于验证的问题
查看>>
Hive 变量和属性
查看>>
验证邮箱合法性的一些测试样例
查看>>
Python安装第三方库 xlrd 和 xlwt 。处理Excel表格
查看>>
课后作业-阅读任务-阅读提问-3
查看>>
Asp.Net Core 中利用QuartzHostedService 实现 Quartz 注入依赖 (DI)
查看>>
细说sqlserver索引及SQL性能优化原则
查看>>
一般数据库增量数据处理和数据仓库增量数据处理的几种策略
查看>>
离散数学课后作业
查看>>
centos6.5适用的国内yum源:网易、搜狐
查看>>
[winograd]winograd算法在卷积中的应用
查看>>
视频直播技术(三):低延时直播经验总结
查看>>
Application failed to start because it could not find or load the QT platform plugin “windows”
查看>>
python合并多表或两表数据
查看>>
分享一下伪装刚学的
查看>>
《sqlite权威指南》读书笔记 (一)
查看>>
NHibernate生成实体类、xml映射文件
查看>>
《把时间当作朋友》读书笔记(三)-- 醒悟
查看>>
使用pabot并行执行robotframework用例
查看>>
mobile web页面调试方法
查看>>