《教学课件项目4 创建与维护MySQL数据表.pptx》由会员分享,可在线阅读,更多相关《教学课件项目4 创建与维护MySQL数据表.pptx(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MySQL数据库原理及应用(微课版|第3版)数据库原理及应用数据库原理及应用-项目4 创建与维护MySQL数据表MySQL数据库原理及应用(微课版|第3版)情景导入情景导入在成功安装在成功安装MySQLMySQL并完成配置,学会数据库的创建与维护操作之后,并完成配置,学会数据库的创建与维护操作之后,善于思考的王宁同学又有了新的疑问,数据库是怎样保存数据的呢?善于思考的王宁同学又有了新的疑问,数据库是怎样保存数据的呢?李老师告诉王宁,在关系数据库中,数据表是存储数据的基本单位,李老师告诉王宁,在关系数据库中,数据表是存储数据的基本单位,一个数据库中可以包含多个数据表。在软件开发中,学会数据库和数
2、一个数据库中可以包含多个数据表。在软件开发中,学会数据库和数据表的基本操作,是实现轻松管理数据的基础。据表的基本操作,是实现轻松管理数据的基础。那么,怎么创建一个数据表?表的结构怎么确定那么,怎么创建一个数据表?表的结构怎么确定?怎么输入记录?怎么对数据记录进行维护?本?怎么输入记录?怎么对数据记录进行维护?本项目将带领王宁一起学习数据表的创建与维护操项目将带领王宁一起学习数据表的创建与维护操作。作。MySQL数据库原理及应用(微课版|第3版)?设计表结构设计表结构?创建表创建表?维护表维护表主要内容主要内容MySQL数据库原理及应用(微课版|第3版)项目项目1 1 理解理解数据库数据库职业能
3、力目标(含课程思政)理解理解MySQLMySQL数据表的基本概念数据表的基本概念掌握表的创建、维护与修改方法掌握表的创建、维护与修改方法掌握如何在表中添加、修改和删除数据记录掌握如何在表中添加、修改和删除数据记录掌握表的复制与删除方法掌握表的复制与删除方法MySQL数据库原理及应用(微课版|第3版)任务任务4 4-1 -1 设计表结构设计表结构【任务提出】【任务提出】王宁同学通过预习了解到,在王宁同学通过预习了解到,在MySQLMySQL中,物理中,物理的数据是存储在数据表中的。那么,怎样才能设计的数据是存储在数据表中的。那么,怎样才能设计出规范、合理的表结构呢,王宁同学要从设计学生出规范、合
4、理的表结构呢,王宁同学要从设计学生信息管理系统数据库的各个表的结构开始本任务的信息管理系统数据库的各个表的结构开始本任务的学习。学习。MySQL数据库原理及应用(微课版|第3版)在MySQL中,表是数据库中最重要、最基本的操作对象,是存储数据的基本单位。如果把数据库比喻成柜子,那么表就像柜子中各种规格的抽屉。一个表就是一个关系,表实质上就是行列的集合,每一行代表一条记录,每一列代表记录的一个字段。每个表由若干行组成,表的第一行为各列标题,其余行都是数据。任务任务4 4-1 -1 设计表结构设计表结构MySQL数据库原理及应用(微课版|第3版)v1、表的命名完整的数据表名称应该由数据库名和表名两
5、部分组成,其格式如下:v【注意】MySQL对象包括数据库、表、视图、存储过程或存储函数等。这些对象名必须符合一定规则或约定,各个DBMS的约定不完全相同。database_name.table_name(一)(一)理解表的概念理解表的概念MySQL数据库原理及应用(微课版|第3版)v命名原则1、名字可以由当前字符集中的任何字母数字字符组成,下划线(_)和美元符号($)也可以。2、名字最长为64个字符。但名字的长度受限于所用操作系统限定的长度。3、如果要用引号,一定要用单引号,而双引号并不禁止变量解释。4、文件系统的大小写敏感性影响到如何命名和引用数据库和表。(一)(一)理解表的概念理解表的概念
6、MySQL数据库原理及应用(微课版|第3版)v2、表的结构MySQL的表的存在方式如同电子表格的工作表一样拥有列(Column)和行(Row)。用数据库的专业术语来表示,这些列即是字段(Field),每个字段分别存储着不同性质的数据,而每一行中的各个字段的数据构成一条数据记录(Record)。表的结构定义工作即决定表拥有哪些字段以及这些字段的特性。只有彻底了解字段特性的各个定义项,才能有办法创建一个功能完善和具有专业水准的表。(一)(一)理解表的概念理解表的概念MySQL数据库原理及应用(微课版|第3版)(一)(一)理解表的概念理解表的概念MySQL数据库原理及应用(微课版|第3版)v3、字段
7、名表可以拥有多个字段,各个字段分别用来存储不同性质的数据,为了加以识别,每个字段必须有一个名称。字段名同样必须符合MySQL的命名规则。(1)字段名最长可达64个字符。(2)字段名可包含中文、英文字母、数字、下划线符号(_)、井字符号(#)、货币符号($)及at符号()。(3)同一个表中,各个字段的名称绝对不能重复。(4)字段名可以用中文。(一)(一)理解表的概念理解表的概念MySQL数据库原理及应用(微课版|第3版)v4、字段长度和小数位数字段的长度是指字段所能容纳的最大数据量。但是对不同的数据类型而言,长度对字段的意义有些不同,说明如下。(1)字符串类型。长度代表字段所能容纳字符的数目。(
8、2)整数类型。长度则代表该数据类型指定的显示宽度。即能够显示的最大数据的长度。在不指定宽度的情况下,每个整数类型都有默认的显示宽度。(3)二进制类型。长度代表字段所能容纳的最大字节数。(4)浮点数类型和定点数类型。长度代表的是数据的总长度,也就是精度。精度是指数据中数字的位数(包括小数点左侧的整数部分和小数点右侧的小数部分),而小数位数则是指数字中小数点右侧的位数。例如,数字12345.678,其精度是8,小数位数是3。(一)(一)理解表的概念理解表的概念MySQL数据库原理及应用(微课版|第3版)v4、字段长度和小数位数通常用下面所示的格式来表示数据类型及其所采用的长度(精度)和小数位数,其
9、中,n代表长度、p代表精度、s代表小数位数。binary(n)binary(10)长度为10的binary数据类型。char(n)char(12)长度为12的char数据类型。decimal(p,s)decimal(8,3)精度为8、小数位数为3的decimal数据类型。(一)(一)理解表的概念理解表的概念MySQL数据库原理及应用(微课版|第3版)(二)(二)了解了解MySQLMySQL数据类型数据类型确定表中每列的数据类型是设计表的重要步骤。列的数据类型就是定义该列所能存放的数据的值的类型。MySQL的数据类型非常丰富,常见的数据类型介绍见课本表4.1。MySQL数据库原理及应用(微课版|
10、第3版)vMySQLMySQL中,存在多种数据类型,每一种类型都有其特定的使用中,存在多种数据类型,每一种类型都有其特定的使用场景,它们的存在保证了程序功能的多样性。场景,它们的存在保证了程序功能的多样性。思政小贴士思政小贴士v同样,世界上也存在着各种各样的人,每个人都有其同样,世界上也存在着各种各样的人,每个人都有其存在的意义。如何将个人价值发挥出来?就需要我们存在的意义。如何将个人价值发挥出来?就需要我们,最终成为社会需,最终成为社会需要的人才要的人才!MySQL数据库原理及应用(微课版|第3版)v1、设置默认值当向表中插入数据时,如果用户没有明确给出某列的值,MySQL自动指定该列使用默
11、认值。它是实现数据完整性的方法之一。(三)掌握列的其它属性(三)掌握列的其它属性MySQL数据库原理及应用(微课版|第3版)v2、设置表的属性值自动增加 当向MySQL的表中加入新行时,可能希望给行一个唯一而又容易确定的ID号。可以通过为表主键添加AUTO_INCREMENT关键字来实现。该标识字段是唯一标识表中每条记录的特殊字段,初值默认为1,当一个新记录添加到这个表中时,这个字段就被自动赋给一个新值。默认情况下是加1递增。(三)掌握列的其它属性(三)掌握列的其它属性MySQL数据库原理及应用(微课版|第3版)v3、设置NULL与NOT NULL在创建表的结构时,列的值可以允许为空值。NUL
12、L(空,列可以不指定具体的)值意味着此值是未知的或不可用的,向表中填充行时不必为该列给出具体值。注意,NULL不同于零、空白或长度为零的字符串。NOT NULL是指不允许为空值,该列必须输入数据。(三)掌握列的其它属性(三)掌握列的其它属性MySQL数据库原理及应用(微课版|第3版)任务任务4 4-1 -1 设计表结构设计表结构【任务实施】【任务实施】随着学习的深入,王宁同学掌握了表结构的设计随着学习的深入,王宁同学掌握了表结构的设计方法,成功确定了学生信息管理系统中各个表的结方法,成功确定了学生信息管理系统中各个表的结构,见课本表构,见课本表4.24.2表表4.94.9。MySQL数据库原理
13、及应用(微课版|第3版)【任务提出】【任务提出】在确定好每个表的表结构后,王宁同学迫不及待在确定好每个表的表结构后,王宁同学迫不及待地要开始动手创建数据表。本任务将带领王宁首先地要开始动手创建数据表。本任务将带领王宁首先从创建从创建studentstudent表、表、coursecourse表、表、scsc表开始,分别表开始,分别使用使用NavicatNavicat图形管理工具和使用图形管理工具和使用SQLSQL语句两种方语句两种方法创建表。法创建表。任务任务4-4-2 2 创建表创建表MySQL数据库原理及应用(微课版|第3版)v使用Navicat工具创建表(一)使用一)使用NavicatN
14、avicat工具创建表工具创建表(1)打开Navicat窗口,双击打开【gradem】数据库,用鼠标右键单击【表】节点,选择【新建表】命令。(2)在设计表窗口中,输入列名、数据类型、字段的长度、小数点位数,设置是否允许为空,是否使用默认值等。逐个定义表中的列,设计完整的表结构。(3)设置主键约束。(4)确定表名,保存,完成表的创建工作。MySQL数据库原理及应用(微课版|第3版)v语法格式(二)使用(二)使用CREATE TABLECREATE TABLE语句创建表语句创建表CREATE TABLE(,);MySQL数据库原理及应用(微课版|第3版)v完整性约束条件 列级完整性约束条件如下。a
15、PRIMARY KEYPRIMARY KEY:指定该字段为主键。bNULL/NOT NULLNULL/NOT NULL:指定的字段允许为空/不允许为空,如果没有约束条件,则默认为NULL。cUNIQUEUNIQUE:指定字段取值唯一,即每条记录的指定字段的值不能重复。dDEFAULTDEFAULT:指定设置字段的默认值。eAUTO_INCREMENTAUTO_INCREMENT:指定设置字段的值自动增加。(二)使用(二)使用CREATE TABLECREATE TABLE语句创建表语句创建表MySQL数据库原理及应用(微课版|第3版)表级完整性约束条件如下。aPRIMARY PRIMARY K
16、EY用于定义表级主键约束,语法格式如下。CONSTRAINT PRIMARY KEY(字段名1,字段名2,字段名n)bFOREIGN KEYFOREIGN KEY用于设置参照完整性规则,即指定某字段为外键,语法格式如下。CONSTRAINT FOREIGN KEY()REFERENCES cUNIQUEUNIQUE既可用于列级完整性约束,也可用于表级完整性约束,语法格式如下。CONSTRAINT UNIQUE()(二)使用(二)使用CREATE TABLECREATE TABLE语句创建表语句创建表MySQL数据库原理及应用(微课版|第3版)【任务实施】【任务实施】王宁同学通过学习,王宁同学通
17、过学习,最终最终给出的给出的studentstudent表、表、coursecourse表和表和scsc表的结表的结构定义语句如下:构定义语句如下:任务任务4-4-2 2 创建表创建表USE gradem;CREATE TABLE student -创建学生表(sno char(10)PRIMARY KEY,-学号为主键sname char(8),-姓名ssex char(2)DEFAULT 男,-性别sbirthday date DEFAULT 1992-01-01,-出生日期sid varchar(18),-身份证号saddress varchar(30),-家庭住址spostcode c
18、har(6),-邮政编码sphone char(18)DEFAULT 不详,-电话spstatus varchar(20),-政治面貌sfloor char(10),-楼号sroomno char(5),-房间号sbedno char(2),-床位号tuixue tinyint(1)NOT NULL DEFAULT 0,-是否退学xiuxue tinyint(1)NOT NULL DEFAULT 0,-是否休学smemo text,-简历sphoto blob,-照片classno char(8)-班级号);MySQL数据库原理及应用(微课版|第3版)【任务实施】【任务实施】任务任务4-4-2
19、 2 创建表创建表USE gradem;CREATE TABLE course -创建课程关系表(cno char(3)NOT NULL,-课程号cname varchar(20)NOT NULL,-课程名称cterm tinyint NOT NULL,-学期CONSTRAINT C1 PRIMARY KEY(cno,cterm)-课程号+学期为主键);CREATE TABLE sc -创建成绩关系表(sno char(10)NOT NULL,-学号cno char(3)NOT NULL,-课程号degree decimal(4,1),-成绩cterm tinyint NOT NULL,-学期
20、CONSTRAINT A1 PRIMARY KEY(sno,cno,cterm),-学号+课程号+学期为主键CONSTRAINT A2 CHECK(degree=0 and degree=100),-成绩约束条件CONSTRAINT A3 FOREIGN KEY(sno)REFERENCES STUDENT(sno),-学号为外键CONSTRAINT A4 FOREIGN KEY(cno,cterm)REFERENCES COURSE(cno,cterm)-(课程号,学期)为外键);MySQL数据库原理及应用(微课版|第3版)v初次尝试使用初次尝试使用SQLSQL语句创建数据表时,往往需要反复
21、修正才能语句创建数据表时,往往需要反复修正才能执行成功,相信初学者已经深深地体会到了执行成功,相信初学者已经深深地体会到了SQLSQL语句的书写准语句的书写准则和编码规范。则和编码规范。思政小贴士思政小贴士v其实,掌握任何一门程序设计语言,都离不开其实,掌握任何一门程序设计语言,都离不开,。MySQL数据库原理及应用(微课版|第3版)任务任务4-3 4-3 维护表维护表【任务提出】【任务提出】王宁同学想对已经完成设计的王宁同学想对已经完成设计的studentstudent表的结构做表的结构做一下修改,他想把一下修改,他想把sphotosphoto字段删除,想把该表的存储引字段删除,想把该表的存
22、储引擎改为擎改为MyISAMMyISAM。该用到哪些。该用到哪些SQLSQL语句去实现呢?王宁语句去实现呢?王宁同学带着这些问题走进了本任务的学习中。同学带着这些问题走进了本任务的学习中。MySQL数据库原理及应用(微课版|第3版)v使用Navicat工具查看表结构(一)查看表结构(一)查看表结构(1)启动Navicat工具软件,打开【Navicat for MySQL】窗口,并确保与服务建立连接。(2)在【连接】窗格中依次展开【mysql】服务器、【gradem】数据库以及【表】结点,选中要查看其结构的表student,选择Navicat窗口中的“设计表”命令,即可打开设计表窗口,在该窗口中
23、可以查看表中每个字段的字段名、数据类型、长度、是否允许空值、是否为主键、是否有默认值等。MySQL数据库原理及应用(微课版|第3版)在MySQL中,可以使用DESCRIBE/DESC语句查看表的字段信息,包括:字段名、字段数据类型、是否为主键、是否有默认值等,语法格式如下。DESCRIBE;或简写为:DESC;(一)查看表结构(一)查看表结构MySQL数据库原理及应用(微课版|第3版)【例4.1】分别用DESCRIBE和DESC语句查看student表和course表的表结构。DESCRIBE student;DESCRIBE course;(一)查看表结构(一)查看表结构MySQL数据库原理
24、及应用(微课版|第3版)在MySQL中,可以使用SHOW CREATE TABLE语句查看详细表结构,包括创建表时的CREATE TABLE语句,语法格式如下。SHOW CREATE TABLE G;【例4.2】分别用SHOW CREATE TABLE语句查看course表的详细信息。SHOW CREATE TABLE course;在Navicat工具中的命令列界面中不认可参数“G”,在命令行中可以。(一)查看表结构(一)查看表结构MySQL数据库原理及应用(微课版|第3版)v使用SHOW TABLES语句显示表列表在MySQL中,可以使用SHOW TABLES语句显示当前数据库中的表列表,
25、语法格式如下。SHOW TABLES;MySQL数据库原理及应用(微课版|第3版)v“千里之行,始于足下千里之行,始于足下”,数据表结构可以看作房屋图,数据表结构可以看作房屋图纸,重要性不言而喻。所以在创建表结构时,一定要将纸,重要性不言而喻。所以在创建表结构时,一定要将主键和外键约束设置合理,避免后续因为表结构不正确主键和外键约束设置合理,避免后续因为表结构不正确引起的数据异常。引起的数据异常。思政小贴士思政小贴士MySQL数据库原理及应用(微课版|第3版)v常用的修改表的操作:修改表名。修改字段数据类型或字段名、增加或删除字段或修改字段的排列位置。更改表的存储引擎或删除表的完整性约束条件。
26、(二)修改表结构(二)修改表结构MySQL数据库原理及应用(微课版|第3版)v使用ALTER TABLE语句修改表结构ALTER TABLE ADD FIRST|AFTER 已存在字段名|MODIFY FIRST|AFTER字段名2|CHANGE|DROP|RENAME TO|ENGINE=;(二)修改表结构(二)修改表结构MySQL数据库原理及应用(微课版|第3版)v参数说明:aADD FIRST|AFTER 已存在字段名:为指定的表添加一个新字段。其中,“FIRST”表示将新添加的字段设置为表的第1个字段。“AFTER”是将新字段添加到指定的“已存在字段名”的后面。bMODIFY FIRS
27、T|AFTER字段名2:对指定表中字段的数据类型或完整性约束条件进行修改。如果不需要修改字段的数据类型,可以将新数据类型设置成与原来一样,但数据类型不能为空。(二)修改表结构(二)修改表结构MySQL数据库原理及应用(微课版|第3版)v参数说明:cCHANGE :对指定表中的字段名进行改名。如果不需要修改字段的数据类型,可以将新数据类型设置成与原来一样,但数据类型不能为空。dDROP|:对指定表中不需要的字段或完整性约束进行删除。eRENAME TO:对指定表的表名进行重命名。fENGINE=:对指定表的存储引擎进行修改。(二)修改表结构(二)修改表结构MySQL数据库原理及应用(微课版|第3
28、版)【例4.4】在student表中添加一个数据类型为char、长度为10的字段class,表示学生所在班级,新字段添加在“ssex”字段的后面。ALTER TABLE student ADD class char(10)AFTER ssex;ALTER TABLE sc MODIFY degree smallint;【例4.5】将sc表中的degree字段的数据类型改为smallint。(二)修改表结构(二)修改表结构MySQL数据库原理及应用(微课版|第3版)【例4.6】将student表中sbirthday字段改名为sbirth。ALTER TABLE student CHANGE sb
29、irthday sbirth date;ALTER TABLE sc RENAME score;【例4.7】将sc表的表名改为score。(二)修改表结构(二)修改表结构MySQL数据库原理及应用(微课版|第3版)v1、向表中添加数据启动Navicat管理工具后,在【连接】窗格中双击【mysql】服务器,再双击要操作的数据库,在右侧窗口中显示该数据库中的所有表,双击要操作的表(如student),或用鼠标右键单击表,选择快捷菜单中的【打开表】命令,打开该表的数据窗口。(三)在表中添加、查看、修改与删除数据记录(三)在表中添加、查看、修改与删除数据记录在数据窗口中,用户可以添加多行新数据,同时还
30、可以修改、删除表中数据。使用该窗口的快捷菜单或下方的操作栏,可以实现表中数据在各行记录间跳转、剪切、复制和粘贴等。MySQL数据库原理及应用(微课版|第3版)v2、快速查看、修改和删除数据记录 修改数据记录。若想修改某字段的数据,只需将光标移到该字段然后开始修改即可。删除数据记录。选中该记录,按【Ctrl+Delete】组合键,或在快捷菜单中执行【删除记录】命令,或单击窗口下方操作栏的“”按钮,然后在【确认删除】对话框中单击【删除一条记录】按钮。快速查看数据记录。利用方向键和翻页键来浏览数据记录,ak 利用窗口下方的导航按钮快速移到第1条、最后一条或特定记录编号的数据记录。(三)在表中添加、查
31、看、修改与删除数据记录(三)在表中添加、查看、修改与删除数据记录MySQL数据库原理及应用(微课版|第3版)v使用Navicat工具复制表右键单击要复制的表,在弹出的快捷菜单中选择【复制表】命令,执行后会生成一个新表,表名称为“原表名_copy”。(四)复制表(四)复制表v使用SQL语句复制表语法格式:语法格式:CREATE TABLE 新表名 SELECT*FROM 旧表名;【例如】复制student表到studbak表中。CREATE TALBE studbak SELECT*FROM student;MySQL数据库原理及应用(微课版|第3版)v使用Navicat工具删除表在【Navic
32、at for MySQL】窗口中右键单击要删除的表,选择【删除表】命令;或单击该表,按【Delete】键。v使用DROP TABLE语句删除表语法格式:语法格式:DROP TABLE IF EXISTS,表名2,;在MySQL中,使用DROP TABLE可以一次删除一个或多个没有被其他表关联的数据表。(五)删除表(五)删除表MySQL数据库原理及应用(微课版|第3版)任务任务4-3 4-3 维护表维护表【任务实施】【任务实施】通过本任务的学习,王宁同学的问题得到了解决,通过本任务的学习,王宁同学的问题得到了解决,其实现代码如下:其实现代码如下:1.将student表中sphoto字段删除。AL
33、TER TABLE student DROP sphoto;2.将student表的存储引擎改为MyISAM。ALTER TABLE student ENGINE=MyISAM;MySQL数据库原理及应用(微课版|第3版)项目总结项目总结本项目带领大家学习了数据表的结构、命名,MySQL中的数据类型,表的创建、修改、维护、删除等操作。要求大家加强复习,增进理解。把各个知识点学会、领悟,能举一反三。v主要内容主要内容重点要求大家结合实训内容进行练习,灵活掌握表结构的设计、表的创建与维护操作。为下一个项目的内容学习打好基础。v重难点要求重难点要求MySQL数据库原理及应用(微课版|第3版)志存高远志存高远 自强不息自强不息