摘要: 存在数据库系统中的数据的默认展现方式不一定完全符合应用的要求,比如: 1,数据库系统中姓名、工号是单独存储在两个字段的,但是在显示的时候想显示成“姓名+工号”的形式。 2,数据库系统中金额的显示格式是普通的数字显示方式(比如668186.99),但是显示的时候想以千分位的形式显示(比如668,186 阅读全文
posted @ 2018-10-20 01:06 尐鱼儿 阅读(684) 评论(0) 推荐(0) 编辑
摘要: 如果要检索公司里有哪些垂直部门,那么可以执行下面的SQL语句: 执行完毕我们就能在输出结果中看到下面的执行结果: 这里列出了公司所有的垂直部门,不过很多部门名称是重复的,我们必须去掉这些重复的部门名称,每个重复部门只保留一个名称。DISTINCT关键字是用来进行重复数据抑制的最简单的功能,而且所有的 阅读全文
posted @ 2018-10-20 01:03 尐鱼儿 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 在进行数据检索的时候有时候需要只检索结果集中的部分行,比如说“检索成绩排前三名的学生”、“检索工资水平排在第3位到第7位的员工信息”,这种功能被称为“限制结果集行数”。在虽然主流的数据库系统中都提供了限制结果集行数的方法,但是无论是语法还是使用方式都存在着很大的差异,即使是同一个数据库系统的不同版本 阅读全文
posted @ 2018-10-20 00:59 尐鱼儿 阅读(999) 评论(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 尐鱼儿 阅读(653) 评论(0) 推荐(0) 编辑
摘要: 到目前为止我们使用的聚合函数都是对普通结果集进行统计的,我们同样可以使用聚合函数来对分组后的数据进行统计,也就是统计每一个分组的数据。我们甚至可以认为在没有使用GROUP BY语句中使用聚合函数不过是在一个整个结果集是一个组的分组数据中进行数据统计分析罢了。 让我们来看一下“查看每个年龄段的员工的人 阅读全文
posted @ 2018-10-20 00:54 尐鱼儿 阅读(469) 评论(0) 推荐(0) 编辑
摘要: 数据分组用来将数据分为多个逻辑组,从而可以对每个组进行聚合运算。SQL语句中使用GROUP BY子句进行分组,使用方式为“GROUP BY 分组字段”。分组语句必须和聚合函数一起使用,GROUP BY子句负责将数据分成逻辑组,而聚合函数则对每一个组进行统计计算。 虽然GROUP BY子句常常和聚合函 阅读全文
posted @ 2018-10-20 00:53 尐鱼儿 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 前面我们讲解了聚合函数的使用,比如要查看年龄为23岁员工的人数,只要执行下面的SQL就可以: 可是如果我们想查看每个年龄段的员工的人数怎么办呢?一个办法是先得到所有员工的年龄段信息,然后分别查询每个年龄段的人数,显然这样是非常低效且烦琐的。这时候就是数组分组开始显现威力的时候了。 为了更好的演示本节 阅读全文
posted @ 2018-10-20 00:52 尐鱼儿 阅读(176) 评论(0) 推荐(0) 编辑
摘要: “公司要为年龄为23岁、25岁和28岁的员工发福利,请将他们的年龄、工号和姓名检索出来”,要完成这样的功能,我们可以使用OR语句来连接多个等于判断。SQL语句如下: 执行完毕我们就能在输出结果中看到下面的执行结果: 这里要检索的年龄值是很少的,只有3个,如果要求我们“检索年龄为21岁、22岁、25岁 阅读全文
posted @ 2018-10-20 00:51 尐鱼儿 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 使用IN语句只能进行多个离散值的检测,如果要实现范围值的检测就非常麻烦甚至不可能了。比如我们要完成下面的功能“检索所有年龄介于23岁到27岁之间的员工信息”,如果用IN语句来实现的话就必须列出此范围内的所有可能的值,SQL如下: 执行完毕我们就能在输出结果中看到下面的执行结果: 当范围内的值比较多的 阅读全文
posted @ 2018-10-20 00:51 尐鱼儿 阅读(335) 评论(0) 推荐(0) 编辑
摘要: “=”、“<”、“>”等运算符都是用来进行数值判断的,有的时候则会想使用这些运算符的反义,比如“不等于”、“不小于”或者“不大于”,MSSQLServer、DB2提供了“!”运算符来对运算符求反义,也就是“!=”表示“不等于”、“!<”表示“不小于”,而“!>”表示“不大于”。 比如要完成下面的功能 阅读全文
posted @ 2018-10-20 00:50 尐鱼儿 阅读(427) 评论(0) 推荐(0) 编辑
摘要: 没有添加非空约束列是可以为空值的(也就是NULL),有时我们需要对空值进行检测,比如要查询所有姓名未知的员工信息。既然NULL 代表空值,有的开发人员试图通过下面的SQL语句来实现: 这个语句是可以执行的,不过执行以后我们看不到任何的执行结果,那个Fnumber为“IT002”的数据行中Fname字 阅读全文
posted @ 2018-10-20 00:49 尐鱼儿 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 到目前为止,我们讲解的数据过滤方式都是针对特定值的过滤,比如“检索所有年龄为25的所有员工信息”、“检索所有工资介于2500元至3800元之间的所有记录”,但是这种过滤方式并不能满足一些模糊的过滤方式。比如,检索所有姓名中含有“th”的员工或者检索所有姓“王”的员工,实现这样的检索操作必须使用通配符 阅读全文
posted @ 2018-10-20 00:48 尐鱼儿 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 到目前为止,数据检索结果的排列顺序取决于数据库系统所决定的排序机制,这种排序机制可能是按照数据的输入顺序决定的,也有可能是按照其他的算法来决定的。在有的情况下我们需要按照某种排序规则来排列检索结果,比如按照工资从高到低的顺序排列或者按照姓名的字符顺序排列等。SELECT语句允许使用ORDER BY子 阅读全文
posted @ 2018-10-20 00:47 尐鱼儿 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 有时需要对数据库中的数据进行一些统计,比如统计员工总数、统计年龄大于25岁的员工中的最低工资、统计工资大于3800元的员工的平均年龄。SQL中提供了聚合函数来完成计算统计结果集条数、某个字段的最大值、某个字段的最小值、某个字段的平均值以及某个字段的合计值等数据统计的功能,SQL标准中规定了下面几种聚 阅读全文
posted @ 2018-10-20 00:45 尐鱼儿 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 前面演示的例子都是检索出表中所有的数据,不过在很多情况下我们需要按照一定的过滤条件来检索表中的部分数据,这个时候可以先检索出表中所有的数据,然后检查每一行看是否符合指定的过滤条件。比如我们要检索出所有工资少于5000元的员工的姓名,那么可以编写下面的代码来处理: 这种处理方式非常清晰简单,在处理小数 阅读全文
posted @ 2018-10-20 00:44 尐鱼儿 阅读(1140) 评论(0) 推荐(0) 编辑
摘要: 到目前为止,我们已经学习了如何创建数据表、如何修改数据表以及如何删除数据表,我们还学习了如何将数据插入数据表、如何更新数据表中的数据以及如何数据删除。创建数据表是在创建存放数据的容器,修改和删除数据表是在维护数据模型的正确性,将数据插入数据表、更新数据表以及删除数据表中的数据则是在维护数据库中数据与 阅读全文
posted @ 2018-10-20 00:30 尐鱼儿 阅读(226) 评论(0) 推荐(0) 编辑
摘要: “取出一张表中所有的数据”是最简单的数据检索任务,完成这个最简单任务的SQL语句也是最简单的,我们只要执行“SELECT * FROM 表名”即可。比如我们执行下面的SQL语句: 执行完毕我们就能在输出结果中看到下面的执行结果: 执行结果中列出了表中的所有行,而且包含了表中每一列的数据。 上面的SQ 阅读全文
posted @ 2018-10-20 00:30 尐鱼儿 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 由于前面我们执行“DELETE FROM T_Person”语句将数据表T_Person中的数据全部 删除了,为了演示带WHERE 子句的DELETE 语句,我们需要重新插入一些数据到T_Person 中。请执行下面的SQL语句: 执行完此SQL语句后执行SELECT * FROM T_Person 阅读全文
posted @ 2018-10-20 00:27 尐鱼儿 阅读(3998) 评论(0) 推荐(0) 编辑
摘要: 删除数据的SQL 语句非常简单,我们只要指定要删除的表就可以了,比如我们要将T_Debt和T_Person表中的数据删除,那么执行下面的SQL语句即可: 由于T_Debt 表中FPerson 字段是指向表T_Person 的FName 字段的外键,所以必须首先删除T_Debt表中的数据后才能删除T_ 阅读全文
posted @ 2018-10-20 00:26 尐鱼儿 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 外键是指向另一个表中已有数据的约束,因此外键值必须是在目标表中存在的。如果更新后的数据在目标表中不存在的话则会导致违反外键约束异常。T_Debt 表中FPerson 字段是指向表T_Person的FName 字段的外键,如果我们执行下面SQL: 由于在T_Person表中不存在FName字段等于“M 阅读全文
posted @ 2018-10-20 00:25 尐鱼儿 阅读(1295) 评论(0) 推荐(0) 编辑