简单的查询
来源:互联网 发布:mac dns地址修改了 编辑:程序博客网 时间:2024/06/12 01:08
1、select语句执行步骤
- from子句。根据from子句创建工作表,如果from子句中有多个表,则进行多个表的连接
- where子句。在步骤1 的结果基础上,删除不满足where条件的行
- group子句。对步骤2的结果进行分组,每个组的group by字段有相同的值
- having 子句。将步骤3的结果作为基础,进一步删除不满足having子句的记
- select子句。在步骤4的执行结果基础上,删除不在select子句中的列
- order by子句。对5的结果进行排序
- 对于交互式的select语句,在屏幕上显示结果,对于嵌入式的sql,使用游标将结果传递到宿主程序中
2、基本表(teacher)
3、使用distinct关键字去除重复信息
eg1:
结果:
使用distinct关键字查询:
结果:
- 比较上述两个查询可以看出:使用distinct关键字对查询的结果进行了排序,实际上它的的执行过程就是首先对查询结果进行排序,再去除重复值。也就是说使用distinct是要付出代价的,排序再去重的过程甚至比查询本身更加费时。
- 另外使用distinct关键字进行去重时,如果select后面有多个字段,则只有多个字段都相同时才算作重复的列进行去除。
4、排序查询的结果
上除查询可以改成:
其中的4和2代表order by中的列在select语句中出现的次序。这种用法只能用于order by子句中的排序列刚好出现在select子句中的情况。
查询结果:
由查询结果可知:
- 系统根据order by后面的列表col1,col2,col3顺序进行排序。先按col1的顺序进行排序,如果col1相同时候 ,这些相同信息再按照col2的的顺序进行排序
- 某些情况可以采用序号替代列名
- NULL值被看成最小,如上述在sex为女的一组内,按照sal排序时候,sal为NULL的值行排在这一组的最上方
5、where子句
(1)比较运算符用于数值
eg:where sal<>1200
(2)比较运算符用于字符串
eg: where dname>='计算机'
(3)between用于数值和字符串
eg:where dname between '计算机'and '生物'(包括dname为’计算机‘和’生物‘的记录在内)
(4)对NULL值的判断
null参与算术运算,则该算术运算的结果为null;
参与比较运算,结果为false;
参与聚集函数运算,则除了count(*)外,其他聚集函数都忽略null
如果要查询某列为null或者不为null的记录,应该用is null或者is not null
eg:要从teacher表中查询工资不为空的教师姓名,工资,年龄,性别信息
结果为:
而不要写成
这种写法,将null用于比较运算符,结果为false,即null<>null结果为false,且null=null结果还是false
则查询的结果只有列名,没有数据,如下图:
- SQL的简单查询
- 简单的MDX查询
- HQL的简单查询
- 执行简单的查询
- 简单的模糊查询
- 简单的查询
- sql2005的简单查询
- 简单的Linq查询
- SQL_sql的简单查询
- 简单的数据查询
- 简单的天气查询
- 简单的select查询
- 简单的数据查询
- 简单的数据查询
- 简单的数据查询
- 简单的数据查询
- 简单的数据查询
- 简单的数据查询
- GridView 几种使用方法(转)
- 上載EXCEL以及ALV顯示例子
- 关于Microsoft Office Document ImageWriter
- [转]VC 6.0 快捷键添加/取消注释
- C++类型转换
- 简单的查询
- Lucene Scoring 评分机制
- 求一个单相交流电流表制作方案,量程分1MA-100ma 100MA--1a .1a-5a 的电路
- 掌握SQL四条最基本的数据操作语句:Insert,Select,Update和Delete
- Java处理敲击键盘事件 Etch-A-Sketch玩具实现 光标画笔画图程序 Java核心技术
- summary of COM within CLR
- 若干bug
- 多多关注
- 转:objective-c基础教程——学习小结