一、数据的基础查询整体介绍
select... 表示具体要展示记录的什么投影
from + 数据源(表)表示从哪里进行数据的检索
where + 条件 表示应该检索哪些记录出来
order by 表示检索出的数据进行排序的依据
limit + offset 表示排序的结果中获取切片
二、where条件
运算符:
语句:
C between START and END;
C是否在START与END左闭右闭区间中存在。隐含的前提为C必须是一个可以视为区间的数据类型,比如int,日期,时间等。
e in (e1,e2,e3,e4,...)
表示e是否是该集合中的一个元素。
关于null的理解:
1.null代表未知
2.凡是有null参与的表达式,得到的结果仍然是null
3.null视为false
关于字符串的模糊匹配
总结
三、select语句
select后边的投影规则无法影响一共有多少条记录倍检索出来,只有where(或者limit)可以影响有多少行记录被检索出来。
1.select*代表展示所有字段,展示顺序按照创建表的顺序来
2.select id,name 给出具体字段名称 , 相隔开
也可以使用as来起别名 select b.id from books as b;先给books表起个别名b,然后select使用该别名
3.有字段或者常数参与的表达式
select id +1 表示在id这个字段中,进行+1处理
4.投影出来的字段也可以起别名
select id as 别名;--as可以省略 select id 别名
有逗号代表不同字段,无逗号代表给字段起别名 select id,name; 与 select id name;
5.可以有函数运算(不建议使用)
upper(…)把字符串变大写
concat(…)连接几个字符串
substr(…)切割子串
小结投影
四、order by 语句
1.如果没有指定排序规则,则应该认为检索出来的顺序是未定义行为,无序的
2.oder为排序,by为以什么作为依据进行排序
其中ASC为升序,DESC为降序
建库时的collation影响的就是字符串的排序规则
特别的,当排序后数据相同的字段仍然是无序的,因此需要引入二次排序多次排序
一般来说,最后一个排序以一定不相等的字段来排好一些。
五、limit + offset 切片语句
1.切片必须在已经有序的结果上才有确定的结果
2.传入两个数据:从哪里开始取 offset以及取多少条 limit
具体语法
例子:实现分页功能
六‘、基础查询语法小结