MySQL数据库技术与项目应用教程(微课版)(AI助学)(第3版)-习题答案 项目3_第1页
MySQL数据库技术与项目应用教程(微课版)(AI助学)(第3版)-习题答案 项目3_第2页
MySQL数据库技术与项目应用教程(微课版)(AI助学)(第3版)-习题答案 项目3_第3页
MySQL数据库技术与项目应用教程(微课版)(AI助学)(第3版)-习题答案 项目3_第4页
MySQL数据库技术与项目应用教程(微课版)(AI助学)(第3版)-习题答案 项目3_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MySQL数据库技术与项目应用教程(微课版)(AI助学)(第3版)习题答案项目三创建网上商城系统数据库单选题:BBADC思考题(参考):(1)空值的处理。对于一个数值类型的字段,空值NULL和0值相同吗?对于一个字符串类型的字段,空值NULL和空字符串相同吗?请简述你对空值NULL的理解。答:在MySQL中,NULL与任何值不相等。NULL代表不确定。(2)在MySQL中datetime跟timestamp两种数据类型都可以表示日期时间,那么这两种数据类型有什么区别呢?根据你的观点,在航空公司机票预定的数据库中,航班的起降时间应该用哪种数据类型来表达呢?请简述你的观点和理由。答:datetime和timestamp两种类型所占存储空间和可表示的数据范围不同。其中datetime占8个字节,表示范围为:1000-01-0100:00:00~9999-12-3123:59:59;而timestamp占4个字节,表示范围为:19700101080001~20380119111407。此外,timestamp类型支持动态默认值,当使用ONUPDATECURRENT_TIMESTAMP语句定义timestamp类型后,每一次对记录的修改都会用系统当前时间自动更新时间。此外,timestamp还会把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。在航空公司机票预定的数据库中,航班起降时间跟起止地的时区相关,因此客户在查询时应该实时根据查询的客户端来显示,因此使用timestamp类型更合适。(3)使用TRUNCATE语句清除数据表中的数据后,再向数据表中添加数据时,自动增长(设置了AUTO-INCREMENT)的字段默认初始值重新从1开始;使用DELETE语句删除数据表中所有数据之后,再向数据表中添加数据时自动增长字段的值会从该字段最大值加1开始编号。这是什么原因呢?TRUNCATE语句是如何快速清空数据的呢?请你简述你对这个问题的理解。答:主要是两种删除方式不一样。DELETE操作属于数据操作语言DML,是将表中的记录一条条进行删除,在一个事务中,数据删除完成后,还可以回滚至删除前的状态。因此数据的删除不会改变AUTO-INCREMENT的当前值。TRUNCATE操作以属于数据定义语言DDL,该操作保留表的结构,并重新创建表,该的所有状态都是新表状态。因此,该操作的执行效率更高。项目实践:(1)创建名称为onlinedb的数据库,默认字符集设置为uft8mb4。createdatabaseonlinedbdefaultcharactersetutf8mb4;(2)据网上商城系统的数据库设计,在onlinedb数据库中添加用户信息表(users)、商品类别表(category)、商品表(goods)、购物车信息表(cart)、订单信息表(orders)、订单详情表(ordersitem)。表结构具体见附录A。createtablecategory(cidintprimarykeyauto_increment, cnamevarchar(100)notnull;);其他表略。(3)根据网上商城系统的数据库设计,为onlinedb数据库中的数据表添加如下约束。•根据物理模型,为goods,orders,ordersitem,cart表添加相应的外键。#为goods表的cid添加外键altertablegoodsaddconstraintfk_goods_cate_cidforeignkey(cid)referencescategory(cid);#为orders表的uid添加外键altertableordersaddconstraintfk_orders_users_uidforeignkey(uid)referencesusers(uid);#为cart表的uid,gid添加外键altertableordersaddconstraintfk_cart_users_uidforeignkey(uid)referencesusers(uid),addconstraintfk_cart_goods_gidforeignkey(gid)referencesgoods(gid);#为ordersitem表的oid,gid添加外键altertableordersaddconstraintfk_item_orders_uidforeignkey(oid)referencesorders(oid),addconstraintfk_item_goods_gidforeignkey(gid)referencesgoods(gid);•为users表中的ulogin字段添加UNIQUE约束。altertableusersaddconstraintuq_uloginunique(ulogin);•为goods中的gcode字段添加UNIQUE约束。altertablegoodsaddconstraintuq_gcodeunique(gcode);•为users表中的uregtime字段,goods中的gaddtime字段添加DEFAULT约束,默认值为当前系统时间。altertableusersmodifyuregtimedatetimedefaultcurrent_timestamp;altertablegoodsmodifygaddtimedatetimedefaultcurrent_timestamp;•为goods中的gsale_qty字段添加DEFAULT约束,默认值0。altertablegoodsmodifygsale_qtyintdefault0;•为goods中的gprice,gquantity字段添加约束,不允许负值(小于零的值)出现。altertablegoodsaddconstraintck_gpricecheck(gprice>=0),addconstraintck_gquantitycheck(gquantity>=0);拓展实训:根据项目二拓展实训中,诗词飞花令游戏的数据模型,完成以下练习。(1)创建名称为PoemGameDB的数据库,默认字符集设置为uft8mb4。createdatabasePoemGameDBcharactersetutf8mb4;(2)根据诗词飞花令游戏数据库的物理模型,在PoemGameDB数据库中添加诗词表(poem)、诗人表(poet)、飞花令表(feihualing)、诗词飞花令关联表(poemling)、诗词类别表(poemType)、诗词分类表(poemIndex)。CREATETABLE`poem`(`pmID`intNOTNULLAUTO_INCREMENTCOMMENT'诗词ID',`pID`intDEFAULTNULLCOMMENT'诗人ID',`pmTitle`varchar(100)NOTNULLCOMMENT'诗词标题',`pmContent`varchar(8000)NOTNULLCOMMENT'诗词内容',`pmHot`intDEFAULT'0'COMMENT'诗词热度',`pmPreface`textCOMMENT'创作背景',`pmAnnotation`textCOMMENT'注解',`pmComment`textCOMMENT'评析',PRIMARYKEY(`pmID`))ENGINE=InnoDBAUTO_INCREMENT=9DEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_0900_ai_ci;CREATETABLE`poet`(`pID`intNOTNULLAUTO_INCREMENTCOMMENT'诗人ID',`pName`varchar(10)NOTNULLCOMMENT'诗人姓名', `pGender`varchar(2)NOTNULLCOMMENT'诗人性别',`pZi`varchar(5)COMMENT'字', `pHao`varchar(10)COMMENT'号', `pBirthYear`intCOMMENT'出生年份', `pDeathYear`intCOMMENT'逝世年份', `pBirthPlace`varchar(20)COMMENT'出生地', `pEthnicity`varchar(10)COMMENT'民族', `pDynasty`varchar(10)COMMENT'朝代', `pProfile`textCOMMENT'诗人生平简介',`pHot`intDEFAULT'0'COMMENT'诗人热度',PRIMARYKEY(`pID`))ENGINE=InnoDBAUTO_INCREMENT=9DEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_0900_ai_ci;dropTABLE`feihualing`;CREATETABLE`feihualing`(`fID`intNOTNULLAUTO_INCREMENTCOMMENT'诗词ID',`fName`varchar(10)NOTNULLCOMMENT'飞花令名称',PRIMARYKEY(`fID`))ENGINE=InnoDBAUTO_INCREMENT=9DEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_0900_ai_ci;CREATETABLE`poemLing`(`plID`intNOTNULLAUTO_INCREMENTCOMMENT'诗令ID',`pmID`intNOTNULLCOMMENT'诗词ID', `fID`intNOTNULLCOMMENT'诗词ID',PRIMARYKEY(`plID`))ENGINE=InnoDBAUTO_INCREMENT=9DEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_0900_ai_ci;CREATETABLE`poemType`(`ptID`intNOTNULLAUTO_INCREMENTCOMMENT'类别ID',`ptTopic`varchar(50)NOTNULLCOMMENT'类别名称',`ptType`enum('选集','主题')DEFAULTNULLCOMMENT'分类方式',PRIMARYKEY(`ptID`))ENGINE=InnoDBAUTO_INCREMENT=11DEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_0900_ai_ci;altertablepoemTypechangeptTopicptNamevarchar(50)NOTNULLCOMMENT'类别名称';CREATETABLE`poemIndex`(`poID`intNOTNULLAUTO_INCREMENTCOMMENT'诗词分类ID',`ptID`intNOTNULLCOMMENT'类别ID',`pmID`intNOTNULLCOMMENT'诗词ID',PRIMARYKEY(`poID`))ENGINE=InnoDBAUTO_INCREMENT=20DEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_0900_ai_ci;(3)根据飞花令游戏的数据库设计,为PoemGameDB数据库中数据表添加如下约束。•根据物理模型,为poem,poemling,poemIndex表添加相应的外键。altertablepoemaddconstraintfk_poemforeignkey(pid)referencespoet(pid);altertablepoemIndexaddconstraintfk1_poemIndexforeignkey(pmid)refe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论