第4章操作数据库与表教学课件PPT.pptx

上传人:春哥&#****71; 文档编号:25339597 上传时间:2022-07-11 格式:PPTX 页数:53 大小:2.60MB
返回 下载 相关 举报
第4章操作数据库与表教学课件PPT.pptx_第1页
第1页 / 共53页
第4章操作数据库与表教学课件PPT.pptx_第2页
第2页 / 共53页
点击查看更多>>
资源描述

《第4章操作数据库与表教学课件PPT.pptx》由会员分享,可在线阅读,更多相关《第4章操作数据库与表教学课件PPT.pptx(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第4章 操作数据库与表MySQL网络数据库设计与开发(第3版)2022-7-112第四章 操作数据库与表MySQL网络数据库设计与开发(第3版)2022-7-113目 录情景引入任务目标任务实施010203任务小结知识拓展0405MySQL网络数据库设计与开发(第3版)2022-7-114小李已对MySQL数据库有了初步认识,并在电脑上正确安装了MySQL数据库。现在,小李为了完成开发学生成绩管理系统的任务,需要在MySQL数据库中创建学生信息数据库及相应的数据表,并在数据表中进行数据的插入、修改、删除等操作。4.1情景引入MySQL网络数据库设计与开发MySQL网络数据库设计与开发(第3版)

2、2022-7-1154.1情景引入接下来需要完成的任务大概有如下几类。1创建数据库对象:根据需要创建相应数据库、数据表。2查看数据库对象:查看已存在的数据库、数据表,以及表的存储结构。3修改数据库对象:根据系统业务需要,对已经创建好的数据库及数据表 做相应的修改(如修改数据库的相应参数,修改已存在的数据表的存储参数及表结构等)。4删除数据库对象:对于已创建好的数据库及表结构,当用户不再需要时,可以将其删除。MySQL网络数据库设计与开发(第3版)2022-7-1161. 知识目标2. 能力目标3. 素质目标4.2任务目标MySQL网络数据库设计与开发MySQL网络数据库设计与开发(第3版)20

3、22-7-117 知识目标1能熟练创建、查看、删除、修改数据库。2能熟练创建、查看、删除、修改数据表。3能熟练对满足WHERE条件的记录进行插入、修改、删除。4能创建及维护表的完整性约束。4.2任务目标MySQL网络数据库设计与开发(第3版)2022-7-118 能力目标1能熟练创建、查看、删除、修改数据库。2能熟练创建、查看、删除、修改数据表。3能熟练对满足WHERE条件的记录进行插入、修改、删除。4能创建及维护表的完整性约束。4.2任务目标MySQL网络数据库设计与开发(第3版)2022-7-119 素质目标1具备一定的数据安全意识。2具备一定的数据操作规则与运行秩序意识。3具备一定的观察

4、、判断、推理及逻辑分析能力。4具备一定的团队协作能力。5具备一定的责任意识与担当精神。6具备规范操作数据库的职业素养。4.2任务目标MySQL网络数据库设计与开发(第3版)2022-7-1110任务4.3.1 操作MySQL数据库任务4.3.2 操作MySQL数据库表任务4.3.3 插入MySQL表数据任务4.34 修改MySQL表数据任务4.3.5 删除MySQL表数据任务4.3.6 创建及维护表的完整性约束4.3任务实施MySQL网络数据库设计与开发MySQL网络数据库设计与开发(第3版)2022-7-11111创建数据库 创建数据库是指在系统磁盘上划分一块区域用于数据的存储和管理。创建数

5、据库是表操作的基础,也是数据库管理的基础。 在MySQL数据库中,创建数据库是通过SQL语句CREATE DATABASE实现的,基本语法格式如下:CREATE DATABASE IF NOT EXISTS db_namecreate_specification , create_specification . 其中,create_specification可分为两个子句,如下: DEFAULT CHARACTER SET charset_name| DEFAULT COLLATE collation_name温馨提示:温馨提示:中括号的内容为可选项,其余为必选项。中括号的内容为可选项,其余为

6、必选项。4.3.1 操作MySQL数据库MySQL网络数据库设计与开发(第3版)2022-7-1112语法剖析如下: CREATE DATABASE:创建数据库的固定语法,不能省略。 IF NOT EXISTS:包含在中括号里,为可选项,意思是,在创建数据库之前,判断即将创建的数据库名是否存在。若不存在同名数据库,则创建该数据库;若已存在同名数据库,则不创建任何数据库。但是,若存在同名数据库且没有指定IF NOT EXISTS,则会出现错误。4.3.1 操作MySQL数据库MySQL网络数据库设计与开发(第3版)2022-7-1113识 别 符最大长度(字节)允许的字符数据库64目录名允许的任

7、何字符,不包括“/”“”“。”表64文件名允许的任何字符,不包括“/”“”“。”列64所有字符索引64所有字符别名255所有字符4.3.1 操作MySQL数据库 db_name:即将创建的数据库名称,该名称不能与已经存在的数据库相同。数据库中相关对象的命名要求,如表4.1所示。除了在表4.1内注明的限制,识别符不可以包含ASCII码中值为0或255的字节。数据库、表和列名不应以空格结尾。在识别符中可以使用引号识别符,但应尽可能避免这样使用。表4.1 数据库中相关对象的命名要求MySQL网络数据库设计与开发(第3版)2022-7-11144.3.1 操作MySQL数据库 create_speci

8、fication:用于指定数据库的特性,存储在数据库目录中的db.opt文件中。CHARACTER SET子句用于指定默认的数据库字符集,COLLATE子句用于指定默认的数据库排序。注意:注意:在在MySQL数据库中,每一条数据库中,每一条SQL语句都以语句都以“ “;” ”作为结束标志。作为结束标志。MySQL网络数据库设计与开发(第3版)2022-7-11152查看数据库 为检验在数据库系统中是否已经存在名为student的数据库,可以使用SHOW DATABASES命令查看效果。其语法形式如下:SHOW DATABASES; 在执行SHOW DATABASES命令后,将列出MySQL服务

9、器主机上的所有数据库。 温馨提示:温馨提示:此处为此处为DATABASES,而非,而非DATABASE,初学者很容易混淆。,初学者很容易混淆。代码执行结果如图所示。 从显示的结果可以看出,已经存在student数据库,说明student数据库创建成功。4.3.1 操作MySQL数据库MySQL网络数据库设计与开发(第3版)2022-7-11163选择数据库 在创建student数据库后,用户可以使用USE命令选择需要的数据库。其语法形式如下:USE db_name; 该语句可以通知MySQL数据库把db_name数据库当作默认(当前)数据库使用,用于后续语句。该数据库保持为默认数据库,直到语段

10、的结尾,或者直到运行另一个不同的USE语句。也可理解为,从一个数据库切换到另一个数据库,在使用CREATE DATABASE语句创建了数据库后,刚才创建的数据库不会自动成为当前数据库,需要用这条USE语句来指定。4.3.1 操作MySQL数据库MySQL网络数据库设计与开发(第3版)2022-7-11174删除数据库 删除数据库是指在数据库系统中删除已存在的数据库。在删除数据库后,原来分配的空间将被收回。值得注意的是,删除数据库会永久删除该数据库中所有的表及其数据,因此,应谨慎使用DROP命令删除数据库。在MySQL数据库中,删除数据库是通过SQL语句DROP DATABASE实现的。其语法形

11、式如下:DROP DATABASE IF EXISTS db_name 4.3.1 操作MySQL数据库MySQL网络数据库设计与开发(第3版)2022-7-1118 DROP DATABASE db_name为固定用法,此命令可以删除名为db_name的数据库,当db_name数据库在MySQL服务器主机中不存在时,系统就会出现错误提示,如图所示。4.3.1 操作MySQL数据库MySQL网络数据库设计与开发(第3版)2022-7-11195. MySQL存储引擎 在MySQL数据库中提到了存储引擎的概念,简而言之,存储引擎是指表的类型。数据库的存储引擎决定了表在计算机中的存储方式。下面将讲

12、解存储引擎的内容和分类,以及如何选择合适的存储引擎。 使用SHOW ENGINES语句可以查看MySQL数据库支持的存储引擎类型。其语法形式如下:SHOW ENGINES;4.3.1 操作MySQL数据库MySQL网络数据库设计与开发(第3版)2022-7-1120 在查询结果中,第一列Variable_name表示存储引擎的名称;第二列Value表示MySQL数据库对存储引擎的支持情况,YES表示支持,NO表示不支持,DISABLED表示支持但还未开启。Variable_name列有取值为have_innodb的记录,对应Value的值为YES,表示支持InnoDB存储引擎。在创建表时,若没

13、有指定存储引擎,则表的存储引擎将为默认的存储引擎。下面将介绍使用SHOW语句查看默认的存储引擎。 在MySQL数据库中,使用SHOW语句还可以查询默认存储引擎,代码如下: SHOW VARIABLES LIKE storage_engine; 4.3.1 操作MySQL数据库MySQL网络数据库设计与开发(第3版)2022-7-1121 SHOW ENGINES语句可以用“;”结束,也可以用“g”或“G”结束。“g”与“;”的作用相同,“G”可以让结果显示得更加美观。 在查询结果中,Engine表示存储引擎的名称;Support表示MySQL数据库是否支持该类引擎,YES表示支持;Commen

14、t表示对该引擎的评论。从查询结果中可以看出,MySQL数据库支持的存储引擎包括MyISAM、MEMORY、InnoDB、BLACKHOLE、ARCHIVE、FEDERATED和MRG_ MYISAM等。其中InnoDB为默认(DEFAULT)存储引擎。 在MySQL数据库中,使用SHOW语句可以查询MySQL数据库所支持的存储引擎。其代码如下: SHOW VARIABLES LIKE have%; 4.3.1 操作MySQL数据库MySQL网络数据库设计与开发(第3版)2022-7-1122 结果显示,默认的存储引擎为InnoDB。如果用户想更改默认的存储引擎,可以在my.ini中进行修改,将

15、default-storage-engine=INNODB更改为default-storage-engine= MyISAM,然后重启服务,这样修改便生效了。 3种常见的MySQL存储引擎: 1.InnoDB存储引擎InnoDB存储引擎是MySQL数据库的一种存储引擎。 2.MyISAM存储引擎MyISAM存储引擎曾是MySQL数据库默认的存储引擎。 3.MEMORY存储引擎MEMORY存储引擎是MySQL数据库中的一类特殊存储引擎,可以使 用存储在内存中的内容来创建表,并且所有数据都被放在内存中。4.3.1 操作MySQL数据库MySQL网络数据库设计与开发(第3版)2022-7-1123

16、表是数据库存储数据的基本单位,一个表包含若干个字段或记录。本任务主要讲解如何在数据库中操作表。1创建表创建表 创建表是指在已存在的数据库中建立新表,这是建立数据库最重要的一步, 也是进行其他表操作的基础。在MySQL数据库中,创建表是通过SQL语句CREATE TABLE实现的。4.3.2 操作MySQL数据库表MySQL网络数据库设计与开发(第3版)2022-7-1124其语法形式如下:CREATE TEMPORARY TABLE IF NOT EXISTS tbl_name (create_definition,.) table_options select_statement或:CREA

17、TE TEMPORARY TABLE IF NOT EXISTS tbl_name( LIKE old_tbl_name );create_definition: column_definition | CONSTRAINT symbol PRIMARY KEY index_type (index_col_name,.) | KEY index_name index_type (index_col_name,.) | INDEX index_name index_type (index_col_name,.) | CONSTRAINT symbol UNIQUE INDEX index_nam

18、e index_type (index_col_name,.) | FULLTEXT|SPATIAL INDEX index_name (index_col_name,.) | CONSTRAINT symbol FOREIGN KEY index_name (index_col_name,.) reference_definition | CHECK (expr)4.3.2 操作MySQL数据库表MySQL网络数据库设计与开发(第3版)2022-7-1125 以上为MySQL官方参考文档给出的创建表的完整语法格式,由于创建表的选项和设置较多,因此这里不再一一描述,详细的语法介绍可以参考本书的

19、附录或者MySQL语法的官方文档。 语法剖析:TEMPORARY为创建临时表的选项,如果创建正式表,则可以不填此项。在通常情况下,创建表可以通过如下的语法实现。Create TEMPORARY TABLE 表名 ( 属性名 数据类型 完整性约束条件, 属性名 数据类型 完整性约束条件, . 属性名 数据类型 完整性约束条件);4.3.2 操作MySQL数据库表MySQL网络数据库设计与开发(第3版)2022-7-1126其中,数据类型和完整性约束为: TINYINT(length) UNSIGNED ZEROFILL| SMALLINT(length) UNSIGNED ZEROFILL| M

20、EDIUMINT(length) UNSIGNED ZEROFILL| INT(length) UNSIGNED ZEROFILL| INTEGER(length) UNSIGNED ZEROFILL| BIGINT(length) UNSIGNED ZEROFILL| REAL(length,decimals) UNSIGNED ZEROFILL| DOUBLE(length,decimals) UNSIGNED ZEROFILL| FLOAT(length,decimals) UNSIGNED ZEROFILL| DECIMAL(length,decimals) UNSIGNED ZERO

21、FILL| NUMERIC(length,decimals) UNSIGNED ZEROFILL| DATE | TIME | TIMESTAMP | DATETIME | CHAR(length) BINARY | ASCII | UNICODE | VARCHAR(length) BINARY | TINYBLOB | BLOB | MEDIUMBLOB | LONGBLOB | TINYTEXT BINARY | TEXT BINARY | MEDIUMTEXT BINARY | LONGTEXT BINARY | ENUM(value1,value2,value3,.) | SET(v

22、alue1,value2,value3,.) | spatial_type4.3.2 操作MySQL数据库表MySQL网络数据库设计与开发(第3版)2022-7-11272查看结构表 查看表结构是指查看数据库中已存在的表的定义。查看表结构的语句包括DESCRIBE语句和SHOW CREATE TABLE语句。通过这两个语句,可以查看表的字段名、字段的数据类型、完整性约束条件等,下面将详细讲解查看表结构的方法。 1)查看表基本结构 在MySQL数据库中,DESCRIBE语句可以查看表的基本定义。该语句可以查看表的字段名、字段数据类型、是否为主键和默认值等信息。DESCRIBE语句的语法形式如下:

23、 DESCRIBE 表名;4.3.2 操作MySQL数据库表MySQL网络数据库设计与开发(第3版)2022-7-11282)查看表详细结构 在MySQL数据库中,SHOW CREATE TABLE语句可以查看表的详细定义。该语句不仅可以查看表的字段名、字段的数据类型、完整性约束条件等信息,而且可以查看表默认的存储引擎和字符编码。SHOW CREATE TABLE语句的语法形式如下: SHOW CREATE TABLE 表名;4.3.2 操作MySQL数据库表MySQL网络数据库设计与开发(第3版)2022-7-11293修改表 修改表是指修改数据库中已存在的表定义。修改表比重新定义表简单,不

24、需要重新加载数据,也不会影响正在进行的服务。MySQL数据库一般通过ALTER TABLE语句来修改表,其中包括修改表名、修改字段数据类型、修改字段名、增加字段、删除字段、修改字段的排列位置、更改默认存储引擎和删除表的外键约束等。 1)修改表名 在同一个数据库中,表名可以唯一地确定一个表,数据库系统通过表名来区分不同的表。例如,若在数据库student中有student表,则在数据库student中,student表就是唯一的,不可能存在另一个名为student的表。在MySQL数据库中,修改表名是通过SQL语句ALTER TABLE实现的,语法形式如下: ALTER TABLE 旧表名 RE

25、NAME TO 新表名;4.3.2 操作MySQL数据库表MySQL网络数据库设计与开发(第3版)2022-7-11302)修改字段的数据类型 字段的数据类型包括整数型、浮点数型、字符串型、二进制类型、日期和时间类型等。数据类型决定了数据的存储格式、约束条件和有效范围,表中的每个字段都有相应的数据类型,有关数据类型的详细内容参见第3章。在MySQL数据库中,修改字段的数据类型可以通过ALTER TABLE语句实现,语法形式如下:ALTER TABLE 表名 MODIFY 属性名 数据类型; 3)修改字段名及数据类型 数据库系统通过字段名来区分表中的不同字段,在一个表中,字段名可以确定唯一一个字

26、段。例如,student表中包含sno字段,则sno字段在student表中是唯一的。在MySQL数据库中,修改表的字段名可以通过ALTER TABLE语句实现,基本语法形式如下:ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型;4.3.2 操作MySQL数据库表MySQL网络数据库设计与开发(第3版)2022-7-1131 4)增加字段 如果需要增加新的字段,则可以通过ALTER TABLE语句进行增加。在MySQL数据库中,增加字段通过ALTER TABLE语句实现,其基本语法形式如下: ALTER TABLE 表名 ADD 属性名 1 数据类型 完整性约束条件

27、FIRST | AFTER 属性名 2 ; 5)删除字段 删除字段是指删除已经定义好的表中的某个字段。在表创建好后,发现某个字段已不再需要,若将整个表删除,则必然会影响到表中的其他数据,且操作比较麻烦。实际上,在MySQL数据库中,删除表中的字段可以使用ALTER TABLE语句实现,其基本语法形式如下。 ALTER TABLE 表名 DROP 属性名;4.3.2 操作MySQL数据库表MySQL网络数据库设计与开发(第3版)2022-7-1132 6)更改表的存储引擎 MySQL存储引擎是指MySQL数据库中表的存储类型,包括InnoDB、MyISAM、MEMORY等。在创建表时,存储引擎就

28、已经设定好了,如果要改变,则可以通过重新创建一个表来实现,但必然会影响到表中的数据,且操作较麻烦。在MySQL数据库中,更改表的存储引擎的类型可以通过ALTER TABLE语句实现,其语法形式如下: ALTER TABLE 表名 ENGINE=存储引擎名;4.3.2 操作MySQL数据库表MySQL网络数据库设计与开发(第3版)2022-7-11334.删除表 删除表是指删除数据库中已存在的表。删除表会删除表中的所有数据,因此,在删除表时需要特别注意。MySQL数据库通过DROP TABLE语句删除表,由于在创建表时可能存在外键约束,一些表成了与之关联表的父表,因此要删除这些父表,情况比较复杂

29、。下面详细讲解删除表的方法。 1)删除没有被关联的普通表 在MySQL数据库中,直接使用DROP TABLE语句可以删除没有被其他表关联的普通表。其基本语法形式如下: DROP TABLE 表名; 为了下一步操作,可以先执行如下语句,复制一个test表。 CREATE TABLE test like student;4.3.2 操作MySQL数据库表MySQL网络数据库设计与开发(第3版)2022-7-1134 温馨提示:温馨提示:在删除一个表时,表中的所有数据也会被删除。因此,在删在删除一个表时,表中的所有数据也会被删除。因此,在删除表时一定要慎重,最稳妥的做法是先将表中所有数据备份出来,再

30、删除表。除表时一定要慎重,最稳妥的做法是先将表中所有数据备份出来,再删除表。一旦在删除表后发现造成了损失,就可以通过备份的数据还原表,将损失降一旦在删除表后发现造成了损失,就可以通过备份的数据还原表,将损失降到最小。到最小。 2)删除被其他表关联的父表 在数据库中的某些表之间建立了关联关系,一些表成了父表,这些父表被其他表所关联,如果需要删除这些父表,则情况会比较复杂。4.3.2 操作MySQL数据库表MySQL网络数据库设计与开发(第3版)2022-7-1135 插入数据即向表中插入新的记录(表的一行数据即为一条记录)。插入的新记录必须完全遵守表的完整性约束,所谓完整性约束是指列是什么数据类

31、型,新记录对应的值就必须是这种数据类型;列上有什么约束条件,新记录的值就必须满足这些约束条件。不满足其中任何一条,都可能导致插入记录不成功。 在MySQL数据库中,通过INSERT语句可以实现插入数据的功能。INSERT语句有两种方式插入数据:第一,插入特定的值,即所有的值都是在INSERT语句中确定的;第二,插入查询的结果,包含需要插入表中的值,INSERT语句本身看不出来,完全由查询结果确定。INSERT语句的基本语法形式如下: INSERT INTO 表名列名1,列名2VALUES(值1 , 值2 , ,值n) , (值1 , 值2 , , 值n) , -插入特定的值查询语句 -插入查询

32、的结果4.3.3 插入MySQL数据表MySQL网络数据库设计与开发(第3版)2022-7-11364.3.3 插入MySQL数据表1插入一条完整的记录插入一条完整的记录 插入一条完整的记录可以理解为向表的所有字段插入数据,有两种方法可以实现:第一,只指定表名,不指定具体的字段,按照字段的默认顺序填写数值,然后插入记录;第二,在表名的后面指定需要插入的数值所对应的字段,并按照指定的顺序插入数值。当某条记录的数据比较完整时,如student表有学号、姓名、性别、出生日期、系别5个列,当要插入的学生信息都明确时,用第一种方法可以省略表的列名,直接输入数据;而当某些记录有好几个字段值都不明确时(如学

33、生李勇只知道其姓名和性别),可以考虑用第二种方法,只指定输入这几个明确的信息,不用顾虑真实表的字段顺序。MySQL网络数据库设计与开发(第3版)2022-7-11374.3.3 插入MySQL数据表 1)不指定字段名,按照默认顺序插入数值 在MySQL数据库中,若想按照默认的数值顺序插入某记录,则语法形式如下: INSERT INTO 表名 VALUES(值1,值2,值n); 注意:注意:VALUES后面连接的值的顺序必须和原表字段顺序一致,且数据后面连接的值的顺序必须和原表字段顺序一致,且数据类型匹配。若某列的值允许为空,且插入的记录此字段的值也为空,则必须类型匹配。若某列的值允许为空,且插

34、入的记录此字段的值也为空,则必须在在VALUES后面连接后面连接NULL。MySQL网络数据库设计与开发(第3版)2022-7-11384.3.3 插入MySQL数据表2插入一条不完整的记录 若插入的某记录很多字段值为空,则可以考虑在INSERT语句中直接省略值为空的字段名,只列出有值的字段。如在上面的语句中,若sbirthday字段的值为空,则可以不写入空值,还可以节约时间。3同时插入多条记录 在多数情况下,用户不会只插入一条记录,若每插入一条记录都写一条INSERT语句,则会使插入工作显得烦琐,可使用如下格式一次性插入多条语句: INSERT INTO 表名(字段列表)VALUES(取值列

35、表1),(取值列表2),(取值列表n);MySQL网络数据库设计与开发(第3版)2022-7-11394.3.4 修改MySQL数据表 表中已存在的数据可能会出现需要修改的情况,此时,可以只修改某个字段的值,不用管其他数据。但是在修改数据的过程中,必须先明确两点:第一,需要修改哪些值?第二,需要修改成什么值?这两点明确了,便可灵活地对表中数据进行更新了,否则,可能会误修改其他的数据。修改数据可以使用UPDATE语句实现,其语法形式如下:UPDATE 表名SET字段名1修改后的值1 , 字段名2修改后的值2,WHERE条件表达式; 修改数据的操作可以被看作是把表先从行的方向上筛选出要修改的记录,

36、再将这些记录某些列的值进行修改。MySQL网络数据库设计与开发(第3版)2022-7-11404.3.4 修改MySQL数据表1修改一个字段的值修改一个字段的值 若数据表中只有一个字段的值需要修改,则只需要在UPDATE语句的SET子句后连接一个表达式(即“字段名修改后的值”的形式)。2修改几个字段的值修改几个字段的值 当某些记录需要同时修改多个字段的值时,可以将所有待修改的表达式都放在SET语句后面,用逗号隔开。MySQL网络数据库设计与开发(第3版)2022-7-11414.3.5 删除MySQL数据表 当表中的某些记录不再需要时,可以直接从表中将其删除。删除操作最关键的是明确要删除的记录

37、,可以使用DELETE语句实现,具体格式如下:DELETE FROM 表名 WHERE 条件表达式 其中,若没有“条件表达式”,则删除表中所有记录。1删除所有数据删除所有数据 删除表中的所有数据,指无任何条件,表中的所有数据都被删除,其中,无条件可以直接解释为没有WHERE语句。所以删除所有数据可以使用如下语句:DELETE FROM待删除的表名MySQL网络数据库设计与开发(第3版)2022-7-11424.3.5 删除MySQL数据表2删除某些记录删除某些记录 首先,需要明确,删除数据是逐条(即逐行)删除的。全部删除可进一步表达为删除表中的所有记录(所有行)。MySQL网络数据库设计与开发

38、(第3版)2022-7-11434.3.6 创建及维护表的完整性约束 在前面的1.3节内容中,讲到了关系的完整性包括:实体完整性、参照完整性、用户定义完整性三大类。本章在创建与删除表时,也讲到了主键与外键约束,即关系模型完整性,DBMS就是通过创建与维护数据约束来实现的。在MySQL数据库中,主要有PRIMARY KEY(主键约束)、FOREIGN KEY(外键约束)、UNIQUE(唯一约束)3种完整性约束,目前MySQL数据库不支持CHECK(检查约束),但是为了与其他系统的兼容性,添加上创建检查约束的语句也不会报错。MySQL网络数据库设计与开发(第3版)2022-7-11444.3.6

39、创建及维护表的完整性约束1主键约束主键约束 主键用PRIMARY KEY表示,通常一个表必须指定一个主键,也只能有一个主键,可以指定一个字段作为表的主键,也可以指定两个或两个以上的字段合并作为主键,其值能唯一标识表中的每一行数据,因此构成主键的字段值不允许为空,值或值的组合不允许重复。 用户可以在创建表时创建主键,也可以对一个已有表中的主键进行修改或者为没有主键的表增加主键。设置主键通常有两种方式:表的完整性约束和列的完整性约束。MySQL网络数据库设计与开发(第3版)2022-7-11454.3.6 创建及维护表的完整性约束2唯一唯一约束约束 唯一约束用UNIQUE表示,唯一约束又被称为替代

40、键,是没有被选作主键的候选键,替代键与主键一样,是表的一列或一组列,它们的值在任何时候都是唯一的。唯一约束与主键的区别在于一个表可以有多个唯一约束,并且唯一约束的列可以为空值。设置唯一约束也可以使用表的完整性约束和列的完整性约束两种方式。MySQL网络数据库设计与开发(第3版)2022-7-11464.3.6 创建及维护表的完整性约束3外键外键约束约束 1)理解参照完整性约束 在关系型数据库中,有很多规则是与表之间的关系有关的,表与表之间往往存在一种“父子”关系。例如,在sc表中的sno字段,它就依赖于student表的主键sno字段,如果唯一代表一名学生的某个学号都不存在的话,则这个学号存入

41、成绩表中也是完全没有意义的。这里称student表为父表,sc表为子表,通常将sno字段设置为sc表的外键,参照student表的主键字段,通过sno字段将student父表和sc子表建立关联关系,这种类型的关系就是参照完整性约束。参照完整性约束是一种比较特殊的完整性约束,是通过设置外键实现的,其中外键是一个表的特殊字段。MySQL网络数据库设计与开发(第3版)2022-7-11474.3.6 创建及维护表的完整性约束 在创建外键时,主要是为外键定义参照语句reference_definition,语法格式如下。REFERENCES tbl_name (index_col_name,.)ON

42、DELETE reference_optionON UPDATE reference_option 其中,reference_option: RESTRICT | CASCADE | SET NULL | NO ACTION MySQL网络数据库设计与开发(第3版)2022-7-11484.3.6 创建及维护表的完整性约束说明:(1)外键被定义为表的完整性约束,reference_definition中包含了外键所参照的表和列,还可以声明参照动作。(2)RESTRICT表示限制,当需要删除或更新父表中被参照列且已经在外键中出现了的值时,拒绝对父表进行删除或更新操作。(3)CASCADE表示级联

43、,当从父表中删除或更新在外键中出现了的值时,子表中匹配的行也将自动删除或更新。(4)SET NULL表示置为空,如果将子表相应字段设置为NOT NULL,当从父表中删除或更新在外键中出现了的值时,子表中对应的值将自动被设置为NULL。(5)NO ACTION表示不动作,与RESTRICT一样,不允许删除或更新父表中已经被子表参照了的值。(6)参照动作不是必需的,可以不设定。在不声明时,参照动作的效果与RESTRICT的效果一样。MySQL网络数据库设计与开发(第3版)2022-7-11494.4 任务小结MySQL网络数据库设计与开发 任务任务1:操作MySQL数据库。 任务任务2:操作MyS

44、QL数据库表。 任务任务3:插入MySQL表数据。 任务任务4:修改MySQL表数据。 任务任务5:删除MySQL表数据。 任务任务6:创建及维护表的完整性约束。MySQL网络数据库设计与开发(第3版)2022-7-11505.5 知识拓展MySQL网络数据库设计与开发 数据类型是数据的一种属性,它决定了数据的存储格式、有效范围。MySQL数据库的表是一个二维表,由一个或多个数据列构成,每个数据列都有特定类型,该类型决定了MySQL数据库如何看待该列数据。选择合适的数据类型,会提高数据库的效率。MySQL网络数据库设计与开发(第3版)2022-7-11515.5 知识拓展MySQL的数据类型主

45、要包括4类如下。1数值类型数值类型是现实生活中经常遇到的数据类型之一,例如:公司的员工数量、销售额、利润、工资、学生的考试成绩等。只有使用了数值类型的列,才能够进行汇总运算、平均值的运算等数学计算。常见的数值类型分为3种:整数类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT。浮点类型:FLOAT、DOUBLE。定点数类型:DECIMAL、NUMERIC。MySQL网络数据库设计与开发(第3版)2022-7-11525.5 知识拓展MySQL的数据类型主要包括4类如下。2字符串类型字符串类型是数据库中数据存储的重要类型之一,它主要用于存储字符串或文本信息。常见的字符串类型包括:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT。3日期类型在MySQL数据库中,有多种表示日期和时间的数据类型,其主要包括:YEAR(表示年份)、TIME(表示时间)、DATE(表示日期)、DATETIME和TIMESTAMP(表示时间和日期)。MySQL网络数据库设计与开发(第3版)2022-7-11535.5 知识拓展MySQL的数据类型主要包括4类如下。4二进制数据类型二进制数据类型用于存储二进制数据,包括:BINARY、VARBINARY、BIT、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁