摘要: 无索引的表就是一个无序的行集。比如下面的人员表中有一些数据: 这个表上没有索引,因此如果我们查找年龄等于17的人员时,必须查看表中的每一行,看它是否与所需的值匹配。这是一个全表扫描,很慢,如果表中只有少数几个记录与搜索条件相匹配,则其效率是相当低的。 如果我们经常要查询某个年龄的人员,必须查看表中的 阅读全文
posted @ 2018-10-19 23:58 尐鱼儿 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 我们来为货物建一张表,其中包含规格、名称、生产厂家等等信息,如下: 可以看到这里存在大量冗余信息,比如厂家的名称、地址、电话等就在表中重复多次, 这会带来如下的问题: 1,信息冗余占据空间。数据的存储是占据一定的空间的,如果存在过多冗余信息将会使得存储系统的利用率过低。 2,信息冗余使得新数据的加入 阅读全文
posted @ 2018-10-19 23:58 尐鱼儿 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 记录有可以被称为行(Row),可以通俗的认为它是数据表中的一行数据。以员工表为例,一个公司的员工表中的数据是这样的: 这里每一行数据就代表一个员工的资料,这样的一行数据就叫做一条记录。表是由行和列组成的一张二维表,这就是关系数据库中最基本的数据模型。 阅读全文
posted @ 2018-10-19 23:57 尐鱼儿 阅读(652) 评论(0) 推荐(0) 编辑
摘要: 员工表中的每一行记录代表了一个员工,一般员工的名字就能唯一标识这一个员工,但 是名字也是有可能重复的,这时我们就要为每一名员工分配一个唯一的工号: 这样就可以通过这个工号来唯一标识一名员工了。当老板下令说“把王二小提升为副总”的时候,我们就要问“公司有两个王二小,您要提升哪一个?”,老板可以说“技术 阅读全文
posted @ 2018-10-19 23:57 尐鱼儿 阅读(1548) 评论(0) 推荐(0) 编辑
摘要: 上面我们为员工表规定了“姓名”、“部门”和“入职时间”三个列,这样只要按照这个格式进行数据填写就可以了,但是这里仍然有一个问题,那就是我们没法限定用户向表中填写什么数据,比如用户填写成下面的格式: 姓名 33 部门 12.3 入职时间 信息中心 显然姓名不应该为一个数字33;不可能有一个名称为“12 阅读全文
posted @ 2018-10-19 23:55 尐鱼儿 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 同样是生肉,不同的生肉又有不同的特性,有的生肉是里脊肉,有的生肉是前臀尖,这块生肉是18公斤,而那块生肉是12公斤,这块生肉是12.2 元/公斤,而那块生肉是13.6 元/公斤。每块肉都有各自的不同的特性,这些特性包括取肉部位、重量、单价。如果不对每块肉标注这些特性数据的话,当提货人要我们将所有里脊 阅读全文
posted @ 2018-10-19 23:54 尐鱼儿 阅读(866) 评论(0) 推荐(0) 编辑
摘要: 虽然我们已经将不同用途的物品保存在不同的仓库中了,但是在同一个仓库中数据的保存仍然存在问题。比如食品分为熟食、生肉、大米等,如果把他们随意的堆放在一起,就会造成我们无法很容易的对这些食品进行管理,当要对大米进行提货的话就必须在一堆的食品中翻来翻去。解决这个问题的方法就是将仓库划分为不同的区域,熟食保 阅读全文
posted @ 2018-10-19 23:52 尐鱼儿 阅读(406) 评论(0) 推荐(0) 编辑
摘要: 数据库就是数据的仓库,而DBMS是数据库的“管理员”。一些企业即生产食品又生产农用物资,这些产品都要保存到仓库中,同时企业内部也有一些办公用品需要保存到仓库中。 如果这些物品都保存到同一个仓库中的话会造成下面的问题: l,不便于管理。食品的保存和复印纸的保存需要的保存条件是不同的,食品需要低温保鲜而 阅读全文
posted @ 2018-10-19 23:49 尐鱼儿 阅读(666) 评论(0) 推荐(0) 编辑
摘要: 目前有许多DBMS产品,如DB2、Oracle、Microsoft SQL Server、Sybase SQLServer、Informix、MySQL等,它们在数据库市场上各自占有一席之地。下面简要介绍几种常用的数据库管理系统。 (1)DB2 DB2第一种使用使用SQL的数据库产品。DB2 于19 阅读全文
posted @ 2018-10-19 23:48 尐鱼儿 阅读(2687) 评论(0) 推荐(0) 编辑
摘要: 子查询在DELETE 中唯一可以应用的位置就是WHERE 子句,使用子查询可以完成复杂的数据删除控制。其使用方式与SELECT 语句中的子查询基本相同,而且也可以使用相关子查询等高级的特性。下面的SQL语句用来将所有同类书本书超过3 本的图书删除: 上面的SQL 语句使用相关子查询来查询所有与待更新 阅读全文
posted @ 2018-10-19 01:02 尐鱼儿 阅读(2077) 评论(0) 推荐(0) 编辑
摘要: 在UPDATE语句中可以在更新列表中以及WHERE语句使用子查询。下面演示一个将图书的出版日期全部更新为所有图书中的最新出版日期,SQL语句如下: 注意,在MYSQL 中是不支持使用子查询来更新一个列的,所以这个UPDATE 语句无法在MYSQL中执行。 执行完毕查看T_Book表中的内容: 如果U 阅读全文
posted @ 2018-10-19 01:01 尐鱼儿 阅读(1464) 评论(0) 推荐(0) 编辑
摘要: 在使用INSERT语句的时候,一般都是使用它向数据库中一条条的插入数据,比如: 但是有时我们可能需要将数据批量插入表中,比如创建一个和T_ReaderFavorite表结构完全相同的表T_ReaderFavorite2,然后将T_ReaderFavorite 中的输入复制插入到T_ReaderFav 阅读全文
posted @ 2018-10-19 01:00 尐鱼儿 阅读(3551) 评论(0) 推荐(0) 编辑
摘要: ALL在英文中的意思是“所有”,ALL运算符要求比较的值需要匹配子查询中的所有值。ALL运算符同样不能单独使用,必须和比较运算符共同使用。 下面的SQL语句用来检索在所有会员入会之前出版的图书: 执行完毕我们就能在输出结果中看到下面的执行结果: 与ANY 运算符相同,ALL 运算符同样不能与固定的集 阅读全文
posted @ 2018-10-19 00:59 尐鱼儿 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 和IN、ANY、ALL等运算符不同,EXISTS运算符是单目运算符,它不与列匹配,因此它也不要求待匹配的集合是单列的。EXISTS运算符用来检查每一行是否匹配子查询,可以认为EXISTS就是用来测试子查询的结果是否为空,如果结果集为空则匹配结果为false,否则匹配结果为true。 先来看一个简单的 阅读全文
posted @ 2018-10-19 00:59 尐鱼儿 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 在SQL中ANY和SOME是同义词,所以下面介绍的时候只使用ANY,SOME的用法和功能和ANY一模一样。和IN运算符不同,ANY必须和其他的比较运算符共同使用,而且必须将比较运算符放在ANY 关键字之前,所比较的值需要匹配子查询中的任意一个值,这也就是ANY在英文中所表示的意义。 首先看一个ANY 阅读全文
posted @ 2018-10-19 00:58 尐鱼儿 阅读(999) 评论(0) 推荐(0) 编辑
摘要: 在前面已经介绍了IN运算符的简单使用,使用IN运算符可以用来匹配一个固定集合中的某一项。比如下面的SQL语句检索在2001、2003和2005年出版的所有图书: 执行完毕我们就能在输出结果中看到下面的执行结果: 这里进行匹配的集合是已经确定的集合“2001,2003,2005”,如果要匹配的集合是动 阅读全文
posted @ 2018-10-19 00:57 尐鱼儿 阅读(557) 评论(0) 推荐(0) 编辑
摘要: 标量子查询不仅可以用在SELECT 语句的列表中,它还可以用在WHERE 子句中,而且实际应用中子查询很多的时候都是用在WHERE子句中的。 先来看一个简单的例子,我们要检索喜欢“Story”的读者主键列表,那么这可以使用连接来完成,不过这里我们将使用子查询来完成。 使用子查询的实现思路也比使用连接 阅读全文
posted @ 2018-10-19 00:56 尐鱼儿 阅读(689) 评论(0) 推荐(0) 编辑
摘要: 与标量子查询不同,列值子查询可以返回一个多行多列的结果集。这样的子查询又被称为表子查询,表子查询可以看作一个临时的表,表子查询可以用在SELECT 语句的FROM子句中、INSERT语句、连接、IN 子句等很多场合。 首先来看一个在FROM子句中使用的最简单的表子查询。SQL语句如下: 这里将T_R 阅读全文
posted @ 2018-10-19 00:55 尐鱼儿 阅读(627) 评论(0) 推荐(0) 编辑
摘要: 我们讲到可以将标量子查询当成SELECT列表中的一个列,唯一的约束就是子查询的返回值必须只有一行记录,而且只能有一个列。看完上章的例子有的读者可能认为标量子查询只能返回唯一的值,其实标量子查询完全可以返回随当前查询记录而变化的值。比如下面的SQL语句可以清楚的说明这一点: 这个SELECT语句首先检 阅读全文
posted @ 2018-10-19 00:55 尐鱼儿 阅读(1173) 评论(0) 推荐(0) 编辑
摘要: 单值子查询的语法和普通的SELECT语句没有什么不同,唯一的限制就是子查询的返回值必须只有一行记录,而且只能有一个列。这样的子查询又被称为标量子查询,标量子查询可以用在SELECT语句的列表中、表达式中、WHERE 语句中等很多场合。 首先来看一个在SELECT语句列表中使用的最简单的标量子查询。S 阅读全文
posted @ 2018-10-19 00:54 尐鱼儿 阅读(627) 评论(0) 推荐(0) 编辑