第四章笔记

回顾查询

基本语法

--基本查询 查询某表所有列
select * from 表名
--基本查询 查询某表选择列
select 列名[,列名,列名,...] from 表名-- 中括号中内容可选
--基本询询 给列起别名
select 列名 as 别名 from 表名 --用as的标准写法
select 列名 别名 from 表名--用as的简写
select 别名 =列名 from 表名 --用=符号的写法
--基本查询 带条件过滤(where)
select * from 表名 where 条件
--如果有多个条件,则用 and 或 or 连接进行逻辑运算
select * from 表名 where 条件1 and 条件2 or 条件3
--回顾查询条件
--单条件 年龄大于14岁
where 年龄列名 > 14
--多条件 年龄大于14岁与性别是男生
where 年龄列名 > 14 and 性别列 ='男'
--多条件between比如:查年龄在14-20岁之间(包含14与20)
where 年龄列 between 14 and 20
--等同于
where 年龄列 >= 14 and 年龄列 <=20
--查询条件,查询空(空一般在数据库有两种 null 与 ''(空字符串))
where 列名 is null --查询空
where 列名 is not null --查询非空
where 列名 = ''--查询空字符串
where 列名 <> '' --查询非空字符串
--查询条件 in(某个范围值的查值,枚举)
where 列名 in(15,20,23,16)
--模糊查询 like (结合: % _ [] 通配符使用)
where 名字列 like '李%' --模糊查询全部姓李的
where 名字列 like '%帅%' -- 名字中带帅字的
where 名字列 like '李_' --查询李开头两个字的
--[]可以做两件事,转义%与_ 还有个功能:进行枚举.
where 名字列 like '[刘邓王]帅'--查询刘帅或邓帅或王帅.
--返回限制行数 top percent
select top 10 * from 表名 --只显示前10行
select percent top 10 * from 表名 --显示总行数的前10%
--查询结果排序 order by ...
--写在最后: order by 列名 规则,列名 规则 例:
order by 列1 desc,列2 --如果不写序序规则,则默认是asc(升序)
--分组 group by ... 为什么要分组查询? 配合聚合函数.记几个常用聚合函数:sum avg max min count
select groupid,count(groupid) from st_info group by groupid--查询出每小组的人数
select classid,count(classid) from st_info group by classid --查询出每班级的人数
--对使用了聚合函数的查询结果再进行过滤.
select classid,count(classid) from st_info group by classid having count(classid)> 50--查询人数大于50的班级.