SQL语句使用02------select语法
来源:互联网 发布:教师网络研修收获 编辑:程序博客网 时间:2024/06/07 07:20
这一章继续以案例的形式讲解,主要是一个select基本的语法格式
select [all | distinct] 字段或表达式列表 [from子句] [where子句] [group by子句] [having子句] [order by子句] [limit子句];
3.查询姓“曾”的老师的个数,名字;
//这里就开始有一些sql的函数在里面了
//这里我们可以试着去说明distinct的作用
//distinct表示去除重复元素,例如我们插入一句:
insert teacher(Tid,Tname) values(007,'曾张老师');select count(distinct(tname)) from teacher where tname like '曾%';select count(tname) from teacher where tname like '曾%';
//我们再详细的看看
select tname from teacher where tname like ‘曾%’;
select distinct(tname) from teacher where tname like ‘曾%’;
//很明显,同样的结果被排除了,这里就是distinct的作用
//因为涉及到了函数,所以这里把函数和分组大概讲解一下
//首先,Select的结构
select [all | distinct] 字段或表达式列表 [from子句] [where子句] [group by子句] [having子句] [order by子句] [limit子句];
distinct:
之前讲了,去掉重复 1,默认是all,表示允许出现重复行——不写就是all; 2,distinct:表示不允许出现重复行
-
from:
表示从哪个数据表中获取数据,也即是:设定数据源! 形式: from 数据源; 说明: 通常,数据源就是一个表名;也可以是子查询表
- -
where:
1,where子句,其本质含义是:对from子句中给定的“数据源”中的每一行数据,进行“条件”筛选,并依此筛选出那些符合所设定的条件的行的数据,并取出。 2,where子句类似php编程语言或js语言中的if子句,最终体现为判断的结果是true或者false!!! //之前已经说了,详见上一章
group by子句(分组)
形式: group by 字段名 【asc|desc】,字段名 【asc|desc】,....;
说明: 1,group by子句是用于将“前面!!!”取得的数据,按某种标准(依据)——也就是字段——来进行分组的。 分组,基本上就是,按给定字段的值,相同的值,分在相同的组中,不同的值分在不同的组中。 2,asc表示分组后,按组的值的大小正序排列,desc是倒序——默认是正序,可以不写。 3,一个最重要的理解(观念):分组之后的结果,也是一行一行数据,只是每一行代表“一组”; 例如:
select * from student group by ssex; //按性别分组
select * from student where sage > 100 group by ssex; //此处为空,因为这是对前面的结果分组
select * from student group by sage desc; select * from student group by sage asc; //这个排序的依据是分组的那个组,并不是把每个组里面分组,而是每个组分组 //为什么这么说呢,因为我们要涉及到另外一个关键字having(后面)
4. 对于分组查询的结果数据(select子句部分),只能出现如下几类数据 分组依据字段;(但同样会出现其他字段,但是并不会报错,只不过无意义,因为就是第一行) 原始字段信息中的数字类型的最大值,最小值,平均值,总和值; max(字段):获得该字段的在组中的最大值; min(字段):获得该字段的在组中的最小值; avg(字段):获得该字段的在组中的平均值; sum(字段):获得该字段的在组中的总和值; 每一组中所包含的原始数据行的行数,获得方式为:count(*) 例如: select * ,count(sage),min(sage),max(sage),avg(sage),sum(sage) from student group by ssex;
-
having子句
形式: having 条件判断 说明: 1,一句话,having跟where一样,是用于对数据进行“筛选”的,但区别是: having只用于对group by分组之后的“组信息”数据进行筛选!!!! where只用于对from子句中所设定的“原始数据”进行筛选!!!!! 推论: 如果需要,having一定是跟在group by子句之后使用; 如果需要,where一定是跟在from子句之后使用; 2,因此,having能用的筛选依据,跟此时group by之后,select子句中可出现的“数据/字段”一样! 例如:
select * ,count(sage),min(sage),max(sage),avg(sage),sum(sage) from student group by ssex having ssex ='男'; select * ,count(sage),min(sage),max(sage),avg(sage),sum(sage) from student group by ssex having sid >1010;
- -
order by 子句
形式: order by 字段名 【asc|desc】,字段名 【asc|desc】,.... 说明: 1,用于将“前面!!!”取得是数据(可能进行了筛选和分组),按给定的字段的值的大小和顺序进行排序输出; 2,asc|desc含义同前;
select * from student where sid>1010 order by sage desc;
limit 子句
形式: limit 起始行号n, 要取出的行数m; 说明: 1,用于将“前面”取得的数据,按前面设定的顺序(或默认顺序),取出从哪行开始的多少行; 2,行号,都是以前面取得的“数据行”为基础,从0开始算起,跟实际数据表中字段值无关
总结:
至此SQL语句查询的常用操作已经结束了,后面主要就是案例与提醒。如果感觉还行不要忘了点赞啊!
阅读全文
0 0
- SQL语句使用02------select语法
- SELECT语句语法格式
- Oracle数据库Sql语句详解之SELECT查询基本语法
- ASP中使用SQL-select语句
- SQL SELECT INTO 语句使用问题
- [玩转SQL]:01 使用SELECT语句
- SQL SELECT 子语句使用顺序
- 使用SQL SELECT语句检索数据
- SQL SELECT语法
- SQL select 语法
- SQL select 语法
- SQL SELECT 语法
- SQL SELECT完整语法
- sql select ... as...语法
- SQL SELECT 和 SELECT * 语句
- ORACLE SQL 1 使用 SQL SELECT 语句检索数据
- select语句中用变量参数作表名-动态sql语句基本语法
- SELECT语句的完整语法
- JAVA中反射
- 多线程
- 《机器学习》阅读心得——十一、特征选择和稀疏学习
- Android源码之路(二.环境配置与整编)
- AndroidStudio中TextView规范
- SQL语句使用02------select语法
- java基础复习2 选择&循环
- Java的基本类型和引用类型
- 浅析SQL Server在可序列化隔离级别下,防止幻读的范围锁的锁定问题
- Kotlin学习(3):习惯用法
- cobbler实现批量部署Linux服务器(CentOS7.3含自定义安装)
- 自动化爬取网贷黑名单
- UGUI框架
- PLSQL中如何进行界面的基本使用和编辑。