版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
备课纸适用班级:_______P.课题项目三创建网上商城系统数据库课时6+4课时教学目的会创建和维护数据库掌握MySQL的数据类型了解MySQL数据库存储引擎会创建和维护数据表能为表中的列设计合理的约束会使用SQL语句插入、更新、删除数据表中的数据重点创建和维护数据库会创建和维护数据表约束设计修改数据难点数据库存储引擎合理设计约束教具多媒体+机房课型新授作业课后习题课后项目实战教学过程课时分配教学方法教学内容课程引入:数据库是数据存储的仓库。3’创建及管理数据库是MySQL最基本的操作任务1创建和维护数据库知识场景:完成网上商城数据库的逻辑设计后,接下来的工作是在MySQL数据库管理系统中创建该数据库,并实现相应的配置和管理工作。备课纸适用班级:_P.带着问题开本任务讨论如下内容:展本章学习(1)怎样建立数据库?激发学习兴(2)当用户需求发生变化时,怎样设置和管理数据库的变化?趣(3)MySQL数据库由哪些文件组成?创建和查看数据库实例讲解创【例3.1】使用Navicat工具,创建名为onlinedb的数据库。建过程使用图形工具创建数据库,操作步骤略。使用SQL语句创建数据库CREATEDATABASE数据库名[DEFAULT]CHARACTERSET编码方式|[DEFAULT]COLLATE排序规则;语法说明。CREATEDATABASE是SQL语言中用于创建数据库的命令;数据库名:表示待创建的数据库名称,该名称在数据库服务器中是唯一的;[DEFAULT]CHARACATERSET:指定数据库的字符集名称;[DEFAULT]COLLATEcollation_name:指定数据库的排序规则名称解释+演示【例3.2】使用SQL语句,创建名为onlinedb的数据库在执行结果的提示信息中,“QueryOK”表示执行成功,“1rowaffected”表示1行受到影响。查看数据库命令提示行下可以使用SQL语句来查看数据库服务器中的数据库列表SHOWDATABASES;备课纸适用班级:_P.实例+演示【例3.3】使用SHOWDATABASES语句,查看数据库服务器中存在的数据库若想查看指定数据库的信息,可以使用SHOW语句演示【例3.4】使用SHOW语句,查看数据库onlinedb的信息修改数据库ALTERDATABASE数据库名[DEFAULT]CHARACTERSET编码方式|[DEFAULT]COLLATE排序规则;实例+演示【例3.5】使用SQL语句,修改数据库onlinedb的字符集设置为uft8,排序规则设置为utf8_bin。删除数据库删除数据库是指在数据库系统中删除已经存在的数据库。DROPDATABASE数据库名;备课纸适用班级:_P.【例3.6】删除数据库服务器中名为onlinedb的数据库学习提示删除数据库会删除该数据库中所有的表和所有数据,且不能恢复,因此在执行删除数据库操作时要慎重。MySQL的存储引擎1.存储引擎简介存储引擎就是数据的存储技术。数据库的存储引擎决定了数据表在计算机中的存储方式。DBMS使用数据存储引擎进行创建、查询、修改数据。学习提示Oracle和SQLServer等关系型数据库系统都只提供一种存储引擎,所以它们的数据存储管理机制都一样。2.查看MySQL支持的存储引擎演示+精讲SHOWENGINES;Engine指存储引擎名称Support参数说明mysql是否支持该类引擎Comment参数指对该引擎的说明Transactions参数表示是否支持事务处理XA参数表示是否支持分布式交易处理的XA规范备课纸适用班级:_P.实例+演示【例3.8】查看MySQL服务器系统支持的默认存储引擎。3.InnnoDB存储引擎InnoDB是MySQL的默认事务型引擎,也是最重要、使用最广泛的存储引擎。特性:InnoDB具有提交、回滚和崩溃恢复能力的事物安全(ACID兼容)InnoDB是为处理巨大数据量的最大性能设计,被用在众多需要高性能的大型数据库站点上。InnoDB支持外键完整性约束,存储表中的数据时,每张表的存储都按主键顺序存放,如果没有在表定义时指定主键,InnoDB会为每一行生成一个6字节的ROWID列,并以此作为主键。MySQL数据库的的组成1.MySQL数据库文件MySQL中每一个数据库,在data目录下都会有一个与数据库同名的文件夹,用于存储该数据库的表文件。MySQL数据库文件的组成取决于该数据库使用的存储引擎,因此这里仅介绍InnoDB存储引擎相关的数据文件。备课纸适用班级:_P.2.系统数据库MySQL的数据库包括系统数据库和用户数据库。系统数据库是由MySQL安装程序自动创建的数据库,用于存放和管理用户权限和其他数据库的信息,包括数据库名、数据库中的对象及访问权限等信息。MySQL中的系统数据库数据库名说明mysqlMySQL的核心数据库,用于存储MySQL服务的系统信息表,包括授权系统表、系统对象信息表、日志系统表、服务器端辅助系统表等服务器控制和管理信息information_schema用于保存MySQL服务器所维护的所有数据库的信息,包括数据库名、数据库的表、表中列的数据类型与访问权限等。此数据库中的表均为视图,因此在用户或安装目录下无对应数据文件performance_schema用于收集数据库服务器的性能参数。此数据库中所有表的存储引擎为performance_schema,用户不能创建存储引擎为performance_schema的表。默认情况下该数据库为关闭状态syssys数据库中所有数据来自performance_schema。目标是把performance_schema的把复杂度降低,让DBA(数据库管理员)更快的了解DB的运行情况。
学习提示不要随意删除和更改系统数据库的数据内容,否则会使MySQL服务器不能正常运行。任务2解读MySQL的数据类型任务描述数据类型决定了数据的存储格式和有效范围等。MySQL提供了丰富的数据类型,包括整数类型、小数类型、字符串类型、日期类型和JSON类型等。学生讨论Java语言中支持哪些数据类型?基本类型和包装类型备课纸适用班级:_P.整数类型整数类型是数据库中最基本的数据类型MySQL支持数据类型的名称后面指定该类型的显示宽度数据类型(显示宽度)数据类型参数指的是数据类型名称;显示宽度指能够显示的最大数据长度字节数;实例+演示【例3.9】创建test_int表,用于测试整数类型的数据存储。(1)创建test_int数据表(2)向表test_int中,添加两条测试记录如下。(3)查看表结构(4)查询test_int表。小数类型使用浮点数和定点数来表示小数。浮点数类型包括单精度浮点数(FLOAT)和双精度浮点数(DOUBLE),定点数类型是DECIMAL;DECIMAL型的有效取值范围由M和D决定其中M表示数据的长度,D表示小数点后的长度备课纸适用班级:_P.实例+演示【例3.10】创建test_dec表,用于测试小数类型的数据存储。(1)创建测试表(2)添加测试数据(3)查询表结果分析结论从执行结果可以看出,浮点型数据虽然支持精度,但并没按预期输出结果,存在数据误差。实际应用中,类似货币等对精度敏感的数据,建议使用DECIMAL类型。日期类型实例+演示【例3.11】创建test_date表,用于测试日期类型的数据存储。(1)创建测试表(2)添加测试数据(3)查询表结果分析结论YEAR类型精确到年份、DATE类型精确到日、TIME类型取时分秒、DATETIME和TIMESTAMP都可以精确到秒。实际开发中,TIMESTAMP支持动态默认值,当使用ONUPDATECURRENT_TIMESTAMP定义TIMESTAMP后,每一次对记录的修改都会用系统当前时间自动更新时间。在要实时记录更新时间的场景中,TIMESTAMP类型是最合适的选择。字符串类型字符串类型是一种非常重要的数据类型,小到名称,大到一篇博客都可以作为字符串。备课纸适用班级:_P.一般来说,MySQL指定的允许长度包括存储空间和额外开销的长度。实例+演示【例3.12】创建test_char1表,测试字符串类型单列数据存储大小。(1)测试1:超出单列长度的定义分析结论错误提示列的长度最多为21845,这说明VARCHAR数据类型按字符存储。其中,这里字符集默认为utf8mb4,每个字符占3个字节。(2)测试2:超出单列长度的定义分析结论错误提示行的长度最大为65535。这说明MySQL除对单列限制长度外,同时也限制单行长度不能超过65535;由于VARCAHR类型在存储时有1个字符的开销,因此21845+1超出了范围。(3)测试3:符合单列长度的定义备课纸适用班级:_P.分析结论test_char1表创建成功。在使用VARCHAR存储字符串,字符集设为utf8mb4时,最多存储21844个字符。学习提示实际开发中,大多数要处理的字符串都是VARCHAR类型,且从执行效率来说,TEXT和BLOB不如CHAR和VARCHAR,建议只有当需要保存大数量数据时,才选择使用TEXT和BLOB类型。JSON类型JSON是一种轻量级的数据交换格式,是ECMAScript(欧洲计算机协会制定的JS规范)的子集,由于其简洁和清晰的层次结构,已成为当前最为流行的数据交换格式,其本质是一个字符串。MySQL中,JSON类型的值主要有对象和数组两种方式。(1)JSON对象:用符号“{}”表示,其数据以键/值对组合,其中键名用双引号“”包裹,使用冒号“:”分隔,后面紧跟键对应的值,形式如下所示。(2)JSON数组:用符号“[]”将数据一一列举,与其他程序语言中数组不同的是,JSON数组支持不同数据类型的值存放在同一数组中。实例演示【例3.14】创建test_json表,测试JSON数据类型的存储。学习提示与MySQL提供的字符串类型比,JSON数据类型具有优化存储格式、自动验证格式等优点,但其所需空间与LONGTEXT或LONGBLOB相同,且不能有默认值。任务3创建和操作数据表任务描述数据表是数据库中存储数据的基本单位,一个数据库可包含若干个数据表。数据库程序员在创建完数据库后需要创建数据表,并确定表中各个字段列的名备课纸适用班级:_P.称、数据类型、数据精度、是否为空等属性。提出问题本任务主要阐述如下内容。1.如何创建数据表,使用图形工具或SQL语句创建表2.怎样定义表中各列3.如何修改数据表4.如何删除数据表回顾数据库关系数据库中,表是以行和列的形式组织,数据存在于行和列相交的单元格中,表的结构一行数据表示一条唯一的记录,一列数据表示一个字段,唯一标识一行记录的属性称为主键。1.查看数据表【例3.9】查看onlinedb数据库下数据表。mysql>USEonlinedb;Databasechangedmysql>SHOWTABLES;2.使用Navicat图形工具创建表实例讲解备课纸适用班级:_P.3.使用CREATETABLE语句创建表语法精讲IFNOTEXISTS:可选参数,判断表不存在时才执行创建表的语句。表名:表示所要创建的表的名称,若不在当前数据库中创建表,则需要使用数据库名.表名的方式引用,例如:onlinedb.users,表示在onlinedb数据库下的表users。字段定义字段名类型[NOTNULL|NULL][DEFAULT默认值][AUTO_INCREMENT][UNIQUEKEY|PRIMARYKEY][COMMENT‘字符串’][外键定义]NULL(NOTNULL):表示字段是否可以为空。DEFUALT:指定字段的默认值。AUTO_INCREMENT:设置字段为自增,只有整数类型的字段才能设置自增。自增默认基数从1开始,步长为1,每个表只能有一个自增字段。UNIQUEKEY:唯一性约束。PRIMARYKEY:主键约束。COMMENT:注释字段。
外键定义:外键约束。【例3.17】使用CREATETABLE语句,创建users表备课纸适用班级:_P.实例讲解学习提示表的名称必须符合命名规则,且不能为SQL语言的关键字,如create、update、order等。使用有意义的英文词汇,词汇中间以下划线分隔。只能使用英文字母,数字,下划线,并以英文字母开头,不超过32个字符,须见名知意,建议使用名词不是动词。4.查看表结构(1)使用DESCRIBE语句可以查看表的基本定义【例3.18】使用DESCRIBE语句查看users的表结构实例讲解mysql>DESCRIBEonlinedb.users;+---------+--------------+-------+-----+---------+----------------+|Field|Type|Null|Key|Default|Extra|+---------+--------------+-------+-----+---------+----------------+|uid|int(11)|NO|PRI|NULL|auto_increment||uname|varchar(30)|NO||NULL|||upwd|varchar(50)|NO||NULL|||ugender||YES||男||+---------+--------------+-------+-----+---------+----------------+4rowsinset(0.02sec)学习提示:DESCRIBE可以缩写成DESC(2)使用SHOWCLOUMNSFROM语句查看表结构学习提示SHOW[FULL]COLUMNSFROM表名;若使用FULL关键字,则显示基本结构外,还会显示权限和注释列;当不带关键字FULL时,结构显示与DESCIBE语句结果相同。备课纸适用班级:_P.【例3.19】使用SHOWFULLCOLUMNSFROM语句查看users的表结构。实例讲解Privileges表示对该列的权限(3)使用SHOWCREATETABLE语句查看表结构使用SHOWCREATETABLE不仅可以查看表的详细定义,还可以查看表使用的默认的存储引擎和使用的字符集SHOWCREATETABLE表名;实例讲解【例3.20】使用SHOWCREATETABLE语句查看users的表结构mysql>SHOWCREATETABLEusers\G;***************************1.row***************************Table:usersCreateTable:CREATETABLE`users`(`uid`intNOTNULLAUTO_INCREMENTCOMMENT'用户id',`uname`varchar(30)NOTNULL,`upwd`varchar(50)NOTNULL,`ugender`char(1)DEFAULT'男',PRIMARYKEY(`uid`))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_0900_ai_ci1rowinset(0.00sec)学习提示默认情况下,MySQL的查询结果是横向输出的,第一行是表头,其余行为记录集。当字段比较多时,显示的结果非常乱,不方便查看,这时可以在执行语句后加上参数“\G”,以纵向输出表结构。【例3.21】使用\G语法查看users的表结构,执行结果如下。备课纸适用班级:_P.mysql>DESCUSERS\G;***************************1.row***************************Field:uidType:intNull:NOKey:PRIDefault:NULLExtra:auto_increment***************************2.row***************************Field:unameType:varchar(30)Null:NOKey:Default:NULLExtra:***************************3.row***************************Field:upwdType:varchar(50)Null:NOKey:Default:NULLExtra:***************************4.row***************************Field:ugenderType:char(1)Null:YESKey:Default:男Extra:4rowsinset(0.00sec)表的结构按纵向进行排列,且每个字段单独显示,方便阅读修改表1.修改表名语法讲解ALTERTABLE原表名RENAME[TO]新表名;实例讲解【例3.22】将数据库onlinedb中的users表更名为users_new表备课纸适用班级:_P.mysql>ALTERTABLEusersRENAMEusers_new;QueryOK,0rowsaffected(0.01sec)2.修改字段语法讲解修改字段可以实现修改字段名、字段类型等操作。在一张表中,字段名称是唯一的。ALTERTABLE表名CHANGE原字段名新字段名新数据类型;实例讲解【例3.23】将users_new表中upwd的字段名称修改为upassword,数据类型为varchar(50)。mysql>ALTERTABLEusers_newCHANGEupwdupasswordvarchar(50);QueryOK,0rowsaffected(0.03sec)Records:0Duplicates:0Warnings:0其中“Records:0”表示0条记录,“Duplicates:0”表示0条记录重复,“Warning:0”表示0个警告。可以使用DESC语句查看字段修改是否成功。学习提示在修改字段时,必须指定新字段名的数据类型,即使新字段的类型与原类型相若只需要修改字段的类型,使用的SQL语句语法如下。语法讲解ALTERTABLE表名MODIFY字段名新数据类型;表名指的是要修改的表的名称,字段名指的是待修改的字段名称,新数据类型为修改后的新数据类型。【例3.24】修改users_new表,将upassword字段类型改为varbinary,长度为50。mysql>ALTERTABLEusers_newMODIFYupasswordvarbinary(50);QueryOK,0rowsaffected(0.03sec)Records:0Duplicates:0Warnings:0可以使用DESC语句可以查看字段类型修改是否成功备课纸适用班级:_P.学习提示MODIFY和CHANGE都可以改变字段的数据类型,但CHANGE可以在改变字段数据类型的同时,改变字段名。3.修改字段的排列位置语法讲解ALTERTABLE表名MODIFY字段名1数据类型FIRST|AFTER字段名2字段名1指待修改位置的字段名,数据类型是字段名1的数据类型,参数FIRST表示将字段名1设置为表的第1个字段;AFTER则表示将字段名1排列到字段名2之后。实例讲解【例3.25】修改users_new表,将字段upassword排列到ugender字段之后。mysql>ALTERTABLEusers_newMODIFYupasswordvarbinary(50)AFTERugender;QueryOK,0rowsaffected(0.03sec)Records:0Duplicates:0Warnings:04.添加字段语法讲解ALTERTABLE表名ADD字段名数据类型[FIRST|AFTER已存在的字段名];参数“字段名”是需要增加的字段名称,数据类型是新增的字段的数据类型,FIRST和AFTER也是可选参数,用于将增加的字段排列位置。当不指定位置时,新增字段默认为表的最后一个字段实例+演示【例
3.26】在users_new表中增加字段ulogin,用于存储用户的登录帐号,其数据类型为varchar(20),并将其放在uid之后。mysql>ALTERTABLEusers_newADDuloginvarchar(20)AFTERuid;QueryOK,0rowsaffected(0.03sec)Records:0Duplicates:0Warnings:05.删除字段ALTERTABLE表名DROP字段名;实例+演示【例3.27】删除users_new表中的字段ugender。mysql>ALTERTABLEusers_newDROPugender;QueryOK,0rowsaffected(0.07sec)Records:0Duplicates:0Warnings:0备课纸适用班级:_P.复制表1.复制表结构及数据到新表CREATETABLE新表名SELECT*FROM源表名;实例+演示【例3.28】复制users_new表的结构及数据到temp1表mysql>CREATETABLEtemp1SELECT*FROMusers_new;QueryOK,0rowsaffected(0.06sec)Records:0Duplicates:0Warnings:02.只复制表结构到新表CREATETABLE新表名SELECT*FROM源表名WHEREFALSE;实例+演示【例3.29】复制users_new表的结构到temp2表mysql>CREATETABLEtemp2SELECT*FROMusers_newWHEREFALSE;QueryOK,0rowsaffected(0.02sec)此外,实现表结构的复制还可以使用关键字LIKECREATETABLE新表名LIKE源表名;实例+演示【例3.30】复制users_new表的结构到temp3表,mysql>CREATETABLEtemp3LIKEusers_new;QueryOK,0rowsaffected(0.02sec)学习提示使用LIKE关键字复制的表结构会将源表的约束一起复制到新表中,而【例3.28】和【例3.29】则不会复制约束3.复制表的部分字段及数据到新表CREATETABLE新表名AS(SELECT字段1,字段2,......FROM源表名);实例+演示【例3.31】复制users_new表,将ulogin和upassword两列数据到temp4表。执行结果如下。备课纸适用班级:_P.mysql>CREATETABLEtemp4AS(SELECTulogin,upasswordFROMusers_new);QueryOK,3rowsaffected(0.02sec)Records:3Duplicates:0Warnings:0学习提示当源表和新表属于不同的数据库时,需要在源表名前面加上数据库名,格式为“数据库名.源表名”删除表删除表时,表的结构、数据、约束等都将被全部删除。DROPTABLE表名;实例+演示【例3.32】删除名为temp1的表。mysql>DROPTABLEtemp1;QueryOK,0rowsaffected(0.01sec)执行成功后,可以使用DESC命令查看表tempmysql>DESCtemp1;ERROR1146(42S02):Table'onlinedb.temp1'doesn'texist若想同时删除多张表,只需要在DROPTABLE语句中列出多个表名,表名之间用逗号分隔实例+演示【例3.33】同时删除名为temp2、temp3和temp4的表mysql>DROPTABLEtemp2,temp3,temp4;QueryOK,0rowsaffected(0.01sec)学习提示在删除表时,需要确保该表中的字段未被其他表关联,若有关联,则需要先删除关联表,否则删除表的操作将会失败。任务4实现数据的完整性任务描述数据完整性是指数据的准确性和逻辑一致性,用来防止数据库中存在不符合语义规定的数据或者因错误信息的输入造成无效数据或错误数据。备课纸适用班级:_P.本任务讨论如下内容。引导问题数据完整性在关系数据库设计中的角色是怎样?数据完整性同实际应用场景相结合?如何实现数据的完整性?问题情景:学生系统中学生信息录入及选课操作存在的问题?-------讨论课程引入:导出数据完整性在数据库设计中的必要性本任务讨论如下知识内容带着问题开(1)数据完整性的类型有哪些?展本章学习(2)各种约束类型如何实现?激发学生兴(3)什么样的应用场景使用何种约束类型?趣(4)默认值和规则的应用?PRIMARYKEY约束PRIMARYKEY约束在表中定义了一个惟一标识每一列的主键应用PRIMARYKEY约束的注意事项每张表只能有一个PRIMARYKEY约束输入的值必须是惟一的不允许空值将在指定列上创建惟一索引1.使用Navicat创建主键约束【例3.34】在Navicat中创建商品表goods,字段属性如表3-8所示。实例+演示备课纸适用班级:_P.2.使用PRIMARYKEY关键字设置主键约束语法讲解字段名数据类型PRIMARYKEY实例+演示【例3.35】使用SQL语句,创建商品表goods,并设置gid列为主键。mysql>CREATETABLEgoods->(gidintPRIMARYKEY,#标识该字段为主键->gnamevarchar(30)NOTNULL,->gpricedecimal(20,2)->);QueryOK,0rowsaffected(0.03sec)当表中主键由多个字段组合构成时,主键只能在字段定义完后设置语法讲解PRIMARYKEY(字段名1,字段名2,…,字段名n)举例+演示【例3.30】创建购物车信息表cartCREATETABLEcart( gIDINT, uIDINT, cNumINT,PRIMARYKEY(gID,uID)--定义复合主键);学习提示实际开发中,一般会为每张表设置无意义id列作为主键,仅用于标识记录的唯一性,以避免使用复合主键。NOTNULL约束NOTNULL约束也称非空约束,强制字段的值不能为NULL,它不等同于0或空字符,不能跟任何值进行比较。NOTNULL只能用作约束使用。语法讲解属性名数据类型NOTNULL举例+演示【例3.37】为商品信息表goods添加字段gCode(商品编号),类型为备课纸适用班级:_P.VARCHAR(50),不为空,并将其放置gID字段之后。mysql>ALTERTABLEgoods->ADDgcodevarchar(50)NOTNULLAFTERgid;QueryOK,0rowsaffected(0.06sec)Records:0Duplicates:0Warnings:0DEFUALT约束DEFAULT约束即默认值约束,用于指定字段的默认值。当向表中添加记录时,若未为字段赋值,数据库系统会自动为将字段的默认值插入。语法讲解属性名数据类型DEFAULT默认值举例+演示【例3.38】修改购物车表cart,将购买数量的默认值设置为1mysql>ALTERTABLEcart->MODIFYcnumintDEFAULT1;#修改默认值为1QueryOK,0rowsaffected(0.06sec)Records:0Duplicates:0Warnings:0--修改默认值为1UNIQUE约束UNIQUE约束又称唯一性约束,是指数据表中一列或一组列中只包含唯一值。属性名数据类型UNIQUE举例+演示【例3.39】修改users_new表,为字段登录名ulogin添加UNIQUE约束。mysql>ALTERTABLEusers_new->MODIFYuloginvarchar(50)UNIQUE;QueryOK,0rowsaffected(0.06sec)Records:0Duplicates:0Warnings:0学习提示PRIMARYKEY约束拥有自动定义的UNIQUE约束。UNIQUE约束允许字段值为NULL,若建立UNIQUE约束的字段值不允许为NULL,还需同时设置NOTNULL约束。CHECK约束CHECK约束是列输入数据值的验证规则,列中输入数据必须满足CHECK约束的条件,否则无法写入数据库。MySQL8.0开始支持CHECK约束。备课纸适用班级:_P.语法讲解CONSTRAINT约束名CHECK(表达式)其中,表达式指定需要检查的条件,可以是定义范围、枚举或其他允许的条件。【例3.40】修改goods表,为商品价格添加CHECK约束,要求价格必须大于0等于。mysql>ALTERTABLEgoods->ADDCONSTRAINTck_gpriceCHECK(gprice>=0);QueryOK,0rowsaffected(0.06sec)Records:0Duplicates:0Warnings:0FOREIGNKEY约束FOREIGNKEY约束又称外键约束,它与其他约束不同的之处在于,约束的实现不只在单表中进行,而是在两张表间进行。1.表间关系外键约束强制实施表与表之间的引用完整性。外键是表中的特殊字段,表示了相关联两个表的联系。实例+精读学习提示模型图中标识为“fk”的字段为外键。2.使用Navicat图形工具创建外键约束实例+精讲【例3.41】创建商品类型表category和商品goods表,category表结构如表3-10所示,goods表结构如表3-11所示。其中主表为category,从表为goods。Goods表结构如表3-9所示。其中主表为GoodsType,从表为Goods。备课纸适用班级:_P.实例+演示3.使用SQL语句创建外键约束CONSTRAINT外键名FOREIGNKEY(外键字段名)REFERENCES主表名(主键字段名)语法说明。CONSTRAINT表示约束关键字外键名为定义外键约束的名称FORGEIGNKEY指定约束类型为外键约束外键字段名表示当前表定义中定义外键的字段名REFERENCES是引用关键字。实例+精讲【例3.42】使用SQL语句,实现例【例4.41】。(1)修改goods表,添加外键。备课纸适用班级:_P.(2)使用SHOWCREATETABLE查看表结构。学习提示建立外键约束的表,其存储引擎必须是InnoDB,且表不能为临时表。4.外
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年江苏省溧阳市高二历史下册期末考试自测卷带答案(综合题)
- 2026年陕西省华阴市高三历史上册期末考试检测卷及答案(网校专用)
- 2025年湖北省武穴市高三历史上册期末考试模拟卷含答案【培优B卷】
- 2026澳洲幼教面试题及答案
- 2026安委会面试题目及答案解析
- 动车组维修师安全培训效果模拟考核试卷含答案
- 高压试验工岗前全能考核试卷含答案
- 高炉炉前工岗前技术应用考核试卷含答案
- 电子发票代开合同2026
- 煮呢机挡车工班组管理能力考核试卷含答案
- 电力系统经济学原理习题
- 中医体重管理
- 高空坠落应急演练
- 光伏居间合同范本协议书范文
- GB/T 6003.2-2024试验筛技术要求和检验第2部分:金属穿孔板试验筛
- 经典导读与欣赏智慧树知到期末考试答案2024年
- 如何阐述自己的观点 高中语文统编版必修下册第一单元写作课课件
- 农村环保培训课件讲解
- 人工智能原理与方法智慧树知到课后章节答案2023年下哈尔滨工程大学
- GB/T 42430-2023血液、尿液中乙醇、甲醇、正丙醇、丙酮、异丙醇和正丁醇检验
- 走进舞蹈艺术-首都师范大学中国大学mooc课后章节答案期末考试题库2023年
评论
0/150
提交评论