数据查询;;单表查询 ;单表无条件查询; 当在SELECT语句指定列的位置上使用*号时,表示选择表的所有列,如要显示Members表中所有列,不必将所有字段名一一列出,使用 SELECT * FROM Members;;单表无条件查询;消除结果集中的重复行;SELECT语句语法格式 查询所有列的数据 查询指定列的数据 查询经过计算的列 消除结果集中的重复行 ;谢谢
2022-05-29 13:02:53 1.29MB mysql 数据库 database
SQL; 单条数据记录的插入;;单条数据记录的插入;● VALUES子句:包含各列需要插入的数据清单,数据的顺序要与列的顺序相对应。若表名后不给出列名,则在VALUES子句中要给出每一列(除IDENTITY和timestamp类型的列)的值,如果列值为空,则值必须置为NULL,否则会出错。VALUES子句中的值: (1)表达式:可以是一个常量、变量或一个表达式,也可以是空值NULL,其值的数据类型要与列的数据类型一致。例如,列的数据类型为int,插入的数据是‘aaa’就会出错。当数据为字符型时要用单引号括起。 (2)DEFAULT:指定为该列的默认值。前提是该列原先已经指定了默认值。 如果列清单和VALUES清单都为空,则INSERT会创建一行,每个列都设置成默认值。; 插入语句最常用格式: INSERT INTO 表名(列名,...) VALUES (表达式, ...) ;【例】 向表Book中插入如下的一行数据: ? INSERT into book (图书编号,图书类别,书名,作者,出版社,出版时间,单价,数量,折扣,封面图片) VALUES ('TP1001','计算机','
2022-05-29 13:02:52 1.29MB mysql 数据库 文档资料 database
数据查询;;范围比较;【例】 查询Book表中2010年出版的图书信息。 SELECT * FROM Book WHERE 出版时间 BETWEEN '2010-1-1' AND '2010-12-31'; ;【例】 查询Book表中不在2010年出版的图书的情况。 SELECT * FROM Book WHERE 出版时间 NOT BETWEEN '2010-1-1' AND '2010-12-31'; ;使用IN关键字可以指定一个值表,值表中列出所有可能的值,当与值表中的任一个匹配时,即返回TRUE,否则返回FALSE。 使用IN关键字指定值表的格式为: 表达式 IN (表达式1 [,…n]) ; 【例】 查询Book表中“高等教育出版社”、“北京大学出版社”和“人民邮电出版社”出版的图书的情况。 SELECT * FROM Book WHERE 出版社 IN ( '高等教育出版社', '北京大学出版社','人民邮电出版社'); 说明:IN关键字最主要的作用是表达子查询。 ;范围比较关键字BETWEEN 范围比较关键字IN;谢谢
2022-05-29 13:02:52 1.29MB 数据库 mysql database
数据查询;;分类汇总;【例】 输出Book表中图书类别名。 SELECT 图书类别 FROM Book GROUP BY 图书类别; 【例】 按图书类别统计Book表中各类图书的库存数。 SELECT 图书类别,COUNT(*) AS '库存数' FROM Book GROUP BY 图书类别; ; 【例】 在sell表中按图书编号分类统计订单数和订单的平均订购册数 SELECT 图书编号,AVG(订购册数) AS '订购册数',COUNT(订单号) AS '订单数' FROM Sell GROUP BY 图书编号; ; 使用带ROLLUP操作符的GROUP BY子句,可指定在结果???内不仅包含由 GROUP BY 提供的正常行,还包含汇总行。 ; 【例】按图书类别、出版社分类统计Book表中各类图书的库存数。 SELECT 图书类别, 出版社, Sum(数量) AS '库存数' FROM Book GROUP BY 图书类别, 出版社; 请将执行结果与以下语句比较: SELECT 图书类别, 出版社, Sum(数量) AS '库存数' FROM Book GROUP BY 图书类别
2022-05-29 13:02:51 1.29MB 数据库 mysql 分类 文档资料
数据库设计;;(1)自顶向下。首先定义全局概念结构的框架,然后逐步细化。 (2)自底向上。首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构。 (3)逐步扩张。首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构。 (4)混合策略。将自顶向下和自底向上的方法相结合,用自顶向下策略设计一个全局概念结构的框架,以它为框架自底向上设计各局部概念结构。 ;最常采用的是混合策略,即自顶向下进行需求分析,然后自底向上设计概念结构。;(1)明确建模目标(模型覆盖范围) (2)定义实体集(自底向上标识和定义实体集) (3)定义联系(实体间的关联关系) (4)确定实体集属性(属性描述一个实体集的特征或性质) (5)建立信息模型(构造E-R模型) (6)对信息模型进行集成和优化(检查和消除命名不一致、结构不一致等问题) 概念设计是DB设计的核心环节。概念数据模型是对现实世界的抽象和模拟。;(1)进行数据抽象,设计局部E-R模型。 (2)集成各局部E-R模型,形成全局E-R模型。 ;小结;谢谢
2022-05-29 13:02:51 1.3MB mysql 数据库 database
数据库设计 关系规范化 课程目标 理解 —— 关系模式规范化; 掌握 —— 范式的应用。 关系规范化 关系模式 关系模式相当于一张二维表的框架,在这个框架下填入数据,称为关系模式的一个实例,或者叫关系(R) R(A1,A2,A3..Ai):R是关系名,Ai是关系的属性名。一个关系名对应一张表,关系名对应表名,属性对应表中的列名。 关系模型的简化表示法: R 关系规范化 关系模式规范化的作用 关系型数据库的设计主要是关系模式的设计。关系模式设计的好坏直接影响关系型数据库设计的成败。将关系模式规范化是设计好关系型数据库的唯一途径。 未经规范化的数据库一般都有下述缺点: 较大的数据冗余,数据一致性差,数据修改复杂,对表进行更新,插入,删除是会报异常。 规范化的作用就在于尽量去除冗余,使数据保持一致,使数据修改简单,除去在表中进行插入、删除时产生的异常,规范化后的表一般都较小。 关系规范化 范式 关系模式的规范化主要由范式来完成。 所谓范式(Normal Form, NF)是指规范化的关系模式。由规范化程度不同而产生不同的范式。根据满足条件不同,经常称某一关系模式R为“第几模式”。
2022-05-29 13:02:50 1.38MB mysql 数据库 database
数据查询;; 如果要在不同表中查询数据,则必须在FROM子句中指定多个表。指定多个表时就要使用到连接。当不同列的数据组合到一个表中叫做表的连接。例如,在Bookstore数据库中需要查找购买了网页程序设计图书的会员姓名,就需要将Book、Sell和Members三个表进行连接,才能查找到结果。 ;交叉连接和内连接;表A; SELECT的查询对象由FROM子句指定,各个表用逗号分隔,这样就指定了交叉连接。 其格式为: FROM 表名1 [ [AS] 别名1 ] [ , 表名2[ [AS] 别名2]] … ; 【例】 members表和sell表进行交叉连???。 SELECT Book.*, Sell.* FROM Book, Sell ; 交叉连接潜在地产生数量非常大的行,因为可能得到的行数为每个表中行数之积。在这样的情形下,通常要使用WHERE子句设定条件来将结果集减少为易于管理的大小,这样的连接即为等值连接。 ;交叉连接和内连接; 【例】 查找Bookstore数据库中客户订购的图书书名,订购册数和订购时间。 SELECT Book.书名, Sell.订购册数, Sell.订购时间
2022-05-29 13:02:50 1.32MB mysql 数据库 database
数据查询;;聚合函数;MAX和MIN分别用于求表达式中所有值项的最大值与最小值,语法格式为: MAX / MIN ( [ ALL | DISTINCT ]表达式 ) 其中,expression是常量、列、函数或表达式,其数据类型可以是数字、字符和时间日期类型。 ; 【例】 求sell表中订购了图书编号为TP7/301-135的订单的最高订购册数和最低订购册数。 SELECT MAX(订购册数), MIN(订购册数) FROM Sell WHERE 图书编号 = 'TP7/301-135'; 注意:当给定列上只有空值或检索出的中间结果为空时,MAX和MIN函数的值也为空。 ;SUM和AVG???别用于求表达式中所有值项的总和与平均值,语法格式为: SUM / AVG ( [ ALL | DISTINCT ]表达式 ) 其中,expression是常量、列、函数或表达式,其数据类型只能是数值型。 ;【例】 求sell中订购了图书编号为TP7/301-135图书的订购总册数。 SELECT SUM(订购册数) AS '订购总册数' FROM Sell WHERE 图书编号 = 'TP7/30
2022-05-29 13:02:49 1.27MB mysql 数据库 database
数据查询;;空值比较;空值比较;空值比较; MySQL有一个特殊的等于运算符“<=>”,当两个表达式彼此相等或都等于空值时,它的值为TRUE,其中有一个空值或都是非空值但不相等,这个条件就是FALSE。 【例】 查询Sell表中还未收货的订单情况。 SELECT * FROM Sell WHERE 是否收货<=>NULL; ; 在使用算术运算符+、-时,如果参与运算的值出现空值,则导致计算结果为空值。 SELECT 图书编号,数量+10 FROM book; ;空值的概念 空值比较的方法 空值在数据运算中的特殊情况 ;谢谢
2022-05-29 13:02:49 1.29MB mysql 数据库 database
数据查询;;列别名;列别名;列别名;列别名; 【例】 对Sell表的记录计算订购金额(订购金额=订购册数*订购单价),并显示图书编号和订购金额。 SELECT 图书编号, 订购册数*订购单价 AS 订购金额 FROM Sell; ;列别名的作用 生成列别名的方法 计算列值的别名;谢谢
2022-05-29 13:02:48 1.29MB mysql 数据库 database