随笔分类 -  emanual_数据库_数据的检索

摘要:联合结果集不必受被联合的多个结果集之间的关系限制,不过使用UNION仍然有两个基本的原则需要遵守:一是每个结果集必须有相同的列数;二是每个结果集的列必须类型相容。 首先看第一个原则,每个结果集必须有相同的列数,两个不同列数的结果集是不能联合在一起的。比如下面的SQL语句是错误的: 执行以后数据库系统 阅读全文
posted @ 2018-10-21 00:50 尐鱼儿 阅读(402) 评论(0) 推荐(0) 编辑
摘要:UNION运算符要放置在两个查询语句之间。比如我们要查询公司所有员工(包括临时工)的标识号码、姓名、年龄信息。 查询正式员工信息的SQL语句如下: 而查询临时工信息的SQL语句如下: 只要用UNION操作符连接这两个查询语句就可以将两个查询结果集联合为一个结果集,SQL语句如下: 可以看到UNION 阅读全文
posted @ 2018-10-21 00:49 尐鱼儿 阅读(187) 评论(0) 推荐(0) 编辑
摘要:我们想列出公司中所有员工(包括临时工)的姓名和年龄信息,那么我们可以执行下面的SQL语句: 的是不一致的,在正式员工中有姓名为Tom、年龄为26以及姓名为Tina、年龄为26的两名员工,而临时工中也有姓名为Tom、年龄为26以及姓名为Tina、年龄为26的两名员工,也就是说正式员工的临时工中存在重名 阅读全文
posted @ 2018-10-21 00:48 尐鱼儿 阅读(152) 评论(0) 推荐(0) 编辑
摘要:有的时候我们需要查询一些不能从任何实体表中能够取得的数据,比如将数字1作为结果集或者计算字符串“abc”的长度。 有的开发人员尝试使用下面的SQL来完成类似的功能: 可是执行以后却得到了下面的执行结果集 结果集中出现了不止一个1,这时因为通过这种方式得到的结果集数量是取决于T_Employee表中的 阅读全文
posted @ 2018-10-21 00:47 尐鱼儿 阅读(132) 评论(0) 推荐(0) 编辑
摘要:有的时候我们需要组合两个完全不同的查询结果集,而这两个查询结果之间没有必然的联系,只是我们需要将他们显示在一个结果集中而已。在SQL中可以使用UNION运算符来将两个或者多个查询结果集联合为一个结果集中。 为了更好的讲解本节的内容,需要首先创建一张用来存储临时工信息的新表,在数据库系统下执行下面的S 阅读全文
posted @ 2018-10-21 00:47 尐鱼儿 阅读(141) 评论(0) 推荐(0) 编辑
摘要:我们不仅能在SELECT语句中使用计算字段,我们同样可以在进行数据过滤、数据删除以及数据更新的时候使用计算字段,下面我们举几个例子。 计算处于合理工资范围内的员工我们规定一个合理工资范围:上限为年龄的1.8倍加上5000元,下限为年龄的1.5倍加上2000元,介于这两者之间的即为合理工资。我们需要查 阅读全文
posted @ 2018-10-21 00:46 尐鱼儿 阅读(207) 评论(0) 推荐(0) 编辑
摘要:SQL允许两个或者多个字段之间进行计算,字符串类型的字段也不例外。比如我们需要以“工号+姓名”的方式在报表中显示一个员工的信息,那么就需要把工号和姓名两个字符串类型的字段拼接计算;再如我们需要在报表中在每个员工的工号前增加“Old”这个文本。 这时候就需要我们对字符串类型的字段(包括字符串类型的常量 阅读全文
posted @ 2018-10-21 00:45 尐鱼儿 阅读(855) 评论(0) 推荐(0) 编辑
摘要:像普通编程语言一样,SQL也支持使用函数处理数据,函数使用若干字段名或者常量值做为参数;参数的数量是不固定的,有的函数的参数为空,甚至有的函数的参数个数可变;几乎所有函数都有返回值,返回值即为函数的数据处理结果。 其实在前面的章节中我们已经用到函数了,最典型的就是“聚合函数”,“聚合函数”是函数的一 阅读全文
posted @ 2018-10-21 00:44 尐鱼儿 阅读(259) 评论(0) 推荐(0) 编辑
摘要:存在数据库系统中的数据的默认展现方式不一定完全符合应用的要求,比如: 1,数据库系统中姓名、工号是单独存储在两个字段的,但是在显示的时候想显示成“姓名+工号”的形式。 2,数据库系统中金额的显示格式是普通的数字显示方式(比如668186.99),但是显示的时候想以千分位的形式显示(比如668,186 阅读全文
posted @ 2018-10-20 01:06 尐鱼儿 阅读(760) 评论(0) 推荐(0) 编辑
摘要:如果要检索公司里有哪些垂直部门,那么可以执行下面的SQL语句: 执行完毕我们就能在输出结果中看到下面的执行结果: 这里列出了公司所有的垂直部门,不过很多部门名称是重复的,我们必须去掉这些重复的部门名称,每个重复部门只保留一个名称。DISTINCT关键字是用来进行重复数据抑制的最简单的功能,而且所有的 阅读全文
posted @ 2018-10-20 01:03 尐鱼儿 阅读(160) 评论(0) 推荐(0) 编辑
摘要:在进行数据检索的时候有时候需要只检索结果集中的部分行,比如说“检索成绩排前三名的学生”、“检索工资水平排在第3位到第7位的员工信息”,这种功能被称为“限制结果集行数”。在虽然主流的数据库系统中都提供了限制结果集行数的方法,但是无论是语法还是使用方式都存在着很大的差异,即使是同一个数据库系统的不同版本 阅读全文
posted @ 2018-10-20 00:59 尐鱼儿 阅读(1008) 评论(0) 推荐(0) 编辑
摘要:有的时候需要对部分分组进行过滤,比如只检索人数多余1个的年龄段,有的开发人员会使用下面的SQL语句:SELECT FAge,COUNT(*) AS CountOfThisAge FROM T_Employee GROUP BY FAge WHERE COUNT(*)>1可以在数据库系统中执行下面的S 阅读全文
posted @ 2018-10-20 00:58 尐鱼儿 阅读(658) 评论(0) 推荐(0) 编辑
摘要:到目前为止我们使用的聚合函数都是对普通结果集进行统计的,我们同样可以使用聚合函数来对分组后的数据进行统计,也就是统计每一个分组的数据。我们甚至可以认为在没有使用GROUP BY语句中使用聚合函数不过是在一个整个结果集是一个组的分组数据中进行数据统计分析罢了。 让我们来看一下“查看每个年龄段的员工的人 阅读全文
posted @ 2018-10-20 00:54 尐鱼儿 阅读(473) 评论(0) 推荐(0) 编辑
摘要:数据分组用来将数据分为多个逻辑组,从而可以对每个组进行聚合运算。SQL语句中使用GROUP BY子句进行分组,使用方式为“GROUP BY 分组字段”。分组语句必须和聚合函数一起使用,GROUP BY子句负责将数据分成逻辑组,而聚合函数则对每一个组进行统计计算。 虽然GROUP BY子句常常和聚合函 阅读全文
posted @ 2018-10-20 00:53 尐鱼儿 阅读(501) 评论(0) 推荐(0) 编辑
摘要:前面我们讲解了聚合函数的使用,比如要查看年龄为23岁员工的人数,只要执行下面的SQL就可以: 可是如果我们想查看每个年龄段的员工的人数怎么办呢?一个办法是先得到所有员工的年龄段信息,然后分别查询每个年龄段的人数,显然这样是非常低效且烦琐的。这时候就是数组分组开始显现威力的时候了。 为了更好的演示本节 阅读全文
posted @ 2018-10-20 00:52 尐鱼儿 阅读(181) 评论(0) 推荐(0) 编辑
摘要:“公司要为年龄为23岁、25岁和28岁的员工发福利,请将他们的年龄、工号和姓名检索出来”,要完成这样的功能,我们可以使用OR语句来连接多个等于判断。SQL语句如下: 执行完毕我们就能在输出结果中看到下面的执行结果: 这里要检索的年龄值是很少的,只有3个,如果要求我们“检索年龄为21岁、22岁、25岁 阅读全文
posted @ 2018-10-20 00:51 尐鱼儿 阅读(119) 评论(0) 推荐(0) 编辑
摘要:使用IN语句只能进行多个离散值的检测,如果要实现范围值的检测就非常麻烦甚至不可能了。比如我们要完成下面的功能“检索所有年龄介于23岁到27岁之间的员工信息”,如果用IN语句来实现的话就必须列出此范围内的所有可能的值,SQL如下: 执行完毕我们就能在输出结果中看到下面的执行结果: 当范围内的值比较多的 阅读全文
posted @ 2018-10-20 00:51 尐鱼儿 阅读(339) 评论(0) 推荐(0) 编辑
摘要:“=”、“<”、“>”等运算符都是用来进行数值判断的,有的时候则会想使用这些运算符的反义,比如“不等于”、“不小于”或者“不大于”,MSSQLServer、DB2提供了“!”运算符来对运算符求反义,也就是“!=”表示“不等于”、“!<”表示“不小于”,而“!>”表示“不大于”。 比如要完成下面的功能 阅读全文
posted @ 2018-10-20 00:50 尐鱼儿 阅读(443) 评论(0) 推荐(0) 编辑
摘要:没有添加非空约束列是可以为空值的(也就是NULL),有时我们需要对空值进行检测,比如要查询所有姓名未知的员工信息。既然NULL 代表空值,有的开发人员试图通过下面的SQL语句来实现: 这个语句是可以执行的,不过执行以后我们看不到任何的执行结果,那个Fnumber为“IT002”的数据行中Fname字 阅读全文
posted @ 2018-10-20 00:49 尐鱼儿 阅读(429) 评论(0) 推荐(0) 编辑
摘要:到目前为止,我们讲解的数据过滤方式都是针对特定值的过滤,比如“检索所有年龄为25的所有员工信息”、“检索所有工资介于2500元至3800元之间的所有记录”,但是这种过滤方式并不能满足一些模糊的过滤方式。比如,检索所有姓名中含有“th”的员工或者检索所有姓“王”的员工,实现这样的检索操作必须使用通配符 阅读全文
posted @ 2018-10-20 00:48 尐鱼儿 阅读(238) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示