《数据库原理及应用教程-MySQL8.0》课件 第5章 数据库和表的操作.ppt

《数据库原理及应用教程-MySQL8.0》课件 第5章 数据库和表的操作.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

5.3.2创建表2.Navicat创建表【例5-6】在数据库teaching中创建course课程表。列名数据类型允许空值键值含义cnochar(4)否主键课程号cnamevarchar(20)否?课程名classhourtinyint是?学时credittinyint是?学分5.3.3修改表用户可以根据实际需要随时更改表结构。可以增加、删除和修改字段,增加、删除约束、索引,以及为表重命名、为列重命名等等。【例5-7】在student表中修改sname字段的数据类型为varchar(15),允许取空值。USEteaching;ALTERTABLEstudentMODIFYCOLUMNsnamevarchar(15)NULL;【例5-8】在course表添加teacher字段,类型varchar(10)。USEteaching;ALTERTABLEcourseADDteachervarchar(10);5.4列约束和表约束约束是通过限制列中数据、行中数据和表之间数据来保证数据完整性的非常有效的方法。列约束是针对表中一个列的约束,约束设置在某一个列的列名和数据类型后面;表约束是针对表中一个或多个列的约束,与列定义一样把它定义为表定义的一个表元素。MySQL提供了6种约束类型,即PRIMARYKEY(主键)、FOREIGNKEY(外键)、UNIQUE(唯一性)、CHECK(取值范围)、DEFAULT(默认值)约束以及是否允许为空(NULL和NOTNULL)。5.4列约束和表约束5.4.1主键约束主键(PRIMARYKEY)约束在表中定义一个主键值,这是唯一确定表中每一行数据的标识符,该约束强制实体完整性。一个表中最多只能有一个主键,主键列不允许取空值。主键经常定义在一个列上,但是也可以定义在多个列的组合上。当主键定义在多个列上时,虽然某一个列中的数据可能重复,但是这些列的组合值不能重复。5.4列约束和表约束5.4.2UNIQUE约束UNIQUE(唯一性)约束指定表中某一个列或多个列不能有相同的两行或两行以上的数据存在,这种约束通过实现唯一性索引来强制实体完整性。当表中已经有了一个主键约束时,如果需要在其他列上实现实体完整性,又因为表中不能有两个或两个以上的主键约束,所以只能通过创建UNIQUE约束来实现。一般地,把UNIQUE约束称为候选键约束。5.4.2UNIQUE约束【例5-13】在teaching1数据库创建student1表,主键约束创建在学号列上,要求身份证号列的数据是唯一的。USEteaching1;CREATETABLEstudent1(snochar(6)PRIMARYKEY,snamevarchar(8)NOTNULL,idnochar(18)UNIQUE,sexchar(1)NOTNULL);5.4.2UNIQUE约束使用UNIQUE约束时应考虑的问题UNIQUE约束所在的列允许取空值,但是主键约束所在的列不允许取空值;一个表中可以有多个UNIQUE约束;可以设置一个列或者多个列组合的UNIQUE约束,这些列或列的组合必须有唯一的值。但是,UNIQUE约束所在的列并不是表的主键列,一般把UNIQUE约束称为候选键约束。5.4.3CHECK约束CHECK约束用来限制用户输入某一个列的数据,即在该列中只能输入指定范围的数据。CHECK约束是通过指定的逻辑表达式来限制列的取值范围。一个列上可以定义多个CHECK约束;当执行INSERT语句或者UPDATE语句时,该约束验证相应的数据是否满足CHECK约束的条件。但是,执行DELETE语句时不检查CHECK约束。5.5.4DEFAULT约束当使用INSERT语句插入数据时,如果没有为某一个列指定数据,那么DEFAULT(默认值)约束就在该列中输入一个默认值。【例5-20】USEteaching1;CREATETABLEst( 学号char(6)PRIMARYKEY,姓名varchar(8)NOTNULL,专业名varchar(20)NULL,性别char(1)NOTNULL,出生日期dateNOTNULL,入学时间timestampDEFAULTNOW(),/*定义默认值约束*/总学分smallint);

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档