6-查询
基本查询 select
1,单列查询:select 列名 from 表名
2,多列查询:select 列名1,列名2,列名3…… from 表名
3,查询表中的所有信息:select * from 表名 (其中*代表所有列)
别名:原名 as 别名
-
给表起别名: select * from 表名 as 别名
-
给列起别名:select 列名 as 别名 from 表名
注意:as可以省略
4,去掉重复值:distinct
select distinct 列名 from 表名
5,运算符
- 算术运算符:+加,-减,*乘,/除,%求余
- 比较运算符:=,<,>,<=,>=,<>或!=表示不等于
- 逻辑运算符:not或!表示逻辑非,and或&&表示逻辑与,or或||表示逻辑或,XOR表示逻辑异或
isNull/is Null:判断当前值是否为空
is NotNull:判断当前值是否不为空
between……and……:判断一个值是否在两个值之间
in:判断一个值是否在列表中
not in:判断一个值是否不在列表中
6:查询某一商品的所有信息:select * from 表名 where 列名=商品名
排序查询
语法:select 列名 from 表名 order by 列名[asc/desc]
其中asc代表升序,desc代表降序,如果不写则默认升序
order by 子句:支持单个/多个字段,表达式,函数,别名
多个字段排序(在降序的基础上升序):
select * from 表名 order by 列名1desc,列名2asc
聚合查询
-
count():统计指定列的记录行数
-
sum():计算指定列所有相加的和
-
max():计算指定列的最大值
-
min():计算指定列的最小值
-
avg():计算指定列的平均值
例:查询商品的总条数:select count(列名) from 表名
注意:一个查询语句中可以有多个聚合函数
分组查询 group by
语法:select 列1,列2…… from 表名 group by 分组字段
分组后的条件筛选:having
select 列名 from 表名 group by 分组字段 having 分组条件
注:having 条件 可以省略
分页查询 limit
-
方式1:显示前n条
select 字段1,字段2…… from 表名 limit n例:显示前10条
select 列名 from 表名 limit 10
-
方式2:分页显示
select 字段1,字段2…… from 表名 limit m,nm:整数,表示从第几条索引开始,计算方式:当前页-1
n:整数,表示查询多少条数据
例:从第2条开始显示5条内容
select 列名 from 表名 limit 1,5
模糊查询
语法:select 字段1,字段2…… from 表名 like/regexp
通配符:
-
%:表示任意个字符,可以是零个,也可以是多个
-
_:表示1个字符
-
^:匹配字符串的开始位置
例:查询名字里带水的商品的所有信息
select 列名 from 表名 like %水%
将一张表中的数据导入到另一张表中:
select 字段1,字段2…… into 新表2 from 旧表1
若表2不存在,则会在插入时自动创建表2
交叉连接查询
语法:select * from 表1,表2
若表1有m行,表2有n行,则返回m*n行
内连接查询
用于求多张表的交集
-
隐式内连接:select * from 表a,表b where 条件
-
显示内连接:select * from 表a inner join 表b on 条件 (inner可以省略)
如果字段名相同,则需要通过表名.字段名来区分
外连接查询
-
左外查询:select * from 表a left outer join 表b on 条件
表示左边表的内容全部显示,右边表只显示和左边相同的部分
-
右外查询:select * from 表a right outer join 表b on 条件
表示右边表的内容全部显示,左边表只显示和右边相同的部分
-
满外查询:select * from 表a full outer join 表b on 条件
也叫全外连接,左表和右表的全部数据都显示,不支持,需要用union实现左表和右表的并集
浙公网安备 33010602011771号