版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目2:数据库设计数据库应用任务1创建与管理数据库——
创建数据库
教学目标
素质目标
知识目标1
线上线下结合,引导学习方式,培养自主学习能力;2
做好课前的准备,课后的整理工作,培养勤俭、奋斗、创新、奉献的劳动精神;3
课程思政:本次课讲数据库的创建,培养学生团结协作,合作共赢的思想1数据库对象的命名规则;2数据库的建立;3管理数据库;
能力目标1能通过代码建立数据库、能通过数据库管理平台建立数据库;2能进行数据库性能的优化;
教学重点通过命令行方式建立数据库;在SQLyog图形工具软件中建立数据库;管理数据库教学难点通过命令行方式建立数据库教学重难点1.复习一、下载与安装MySQL;二、登录MySQL的方法:1)采用windows命令行方式:mysql-uroot-p然后输密码;2)Mysql的命令行方式;3)在图形工具软件sqlyog下登录创建数据库4知识储备1.对象的命名规则在MySQL中的所有对象都有一个对象名称,如数据库、数据表、视图、索引、存储过程、函数、触发器等对象,在创建时都需要用户为其命名,其命名规则如下:名称由大小写形式的英文字母、中文、数字、下画线、$以及其他语言的字母字符等符号组成。名称不允许完全由数字字符构成。名称长度不超过64个字符。名称中不允许有空格和特殊字符。名称不能使用MySQL的保留字。创建数据库5知识储备1.对象的命名规则
互动问答1.判断以下数据库对象命名是否正确:a_bc、123、a123123a、$ab
、
select
、学生表创建数据库6知识储备2.数据库分类在MySQL中,数据库分为系统数据库和用户数据库两大类。(一)系统数据库MySQL安装完成后,会在Data目录下自动创建几个必需的数据库,用户不能直接修改这些数据库,可以在MySQL8.0CommandLineClient模式下,用SHOWDATABASES命令查看这些系统数据库。
创建数据库7知识储备各个系统数据库的作用如下。Information_Schema数据库:这是一个信息数据库,用于存储系统中一些数据库对象信息,如用户表信息、列信息、权限信息、字符集和分区信息等。MySQL数据库:是MySQL的核心数据库,用于存储系统的用户权限信息,这些信息不可以删除,用户也不要轻易去修改这个数据库中的信息。Performance_Schema数据库:用于存储数据库服务器性能参数。Sakila数据库:用于存放数据库样本,该库中的表都是一些样本表。Sys数据库:是MySQL5.7版以后新增加了的系统数据库,通过这个库可以快速地了解系统的元数据信息,可以方便数据库管理员查看数据库的很多信息,更快地了解数据库的运行情况,从而为解决数据库的性能瓶颈提供帮助。world数据库:提供了关于城市、国家和语言的相关信息。
创建数据库8知识储备(二)用户数据库用户数据库是用户根据开发和应用需求而建立的数据库。使用SQL语句创建数据库的命令是CREATEDATABASE或CREATESCHEMA。创建用户数据库语法格式:CREATE{DATABASE|SCHEMA}[IFNOTEXISTS]数据库名[[DEFAULT]CHARACTERSET字符集名][[DEFAULT]COLLATE校对规则名];
创建数据库9任务实施【任务1】使用MySQL命令行工具创建一个“学生成绩管理”数据库,命名为XSCJ,指定字符集为gb2312,默认校对规则为gb2312_chinese_ci(简体中文,不区分大小写)。输入的SQL语句与执行结果如下所示:mysql>CREATEDATABASEIFNOTEXISTSXSCJ>DEFAULTCHARACTERSETgb2312>DEFAULTCOLLATEgb2312_chinese_ci;QueryOK,1rowaffected,1warning(0.01sec)
在本任务中,指定的字符集是gb2312,校对规则采用了该字符集对应的默认字符集gb2312_chinese_ci。如果没有指定字符集和校对规则,则系统采用服务器默认的字符集和校对规则。创建数据库10任务实施一般我们在创建数据库时,可以不采用像上面这种复杂的格式,仅用简单的语法格式来创建数据库:CREATEDATABASE数据库名;通过简单语法格式创建的数据库,其字符集与校对规则采用MySQL8默认的utf8和utf8_general_ci。
创建数据库11任务实施【任务2】在MySQL中创建一个名为XSCJ_db的用于测试的数据库。mysql>CREATEDATABASEXSCJ_db;QueryOK,1rowaffected(0.01sec)这里没有指定字符集和校对规则,则系统采用服务器默认的字符集(utf8)和校对规则(utf8_general_ci)。在这里创建XSCJ_db数据库时,没有用IFNOTEXISTS,如果以前已有XSCJ_db数据库,则会报错,例如,我们再执行一次本例建库语句:mysql>CREATEDATABASEXSCJ_db;ERROR1007(HY000):Can'tcreatedatabase'XSCJ_db';databaseexists系统提示不能创建“XSCJ_db”数据库,该数据库已存在。因此,在建库时最好加上IFNOTEXISTS,就可以避免类似的错误。创建数据库12任务实施互动问题:2.在命令行方式下,创建一个名了’db1’的数据库;(操作)
createdatabasedb1;
创建数据库13任务拓展【拓展1】使用Sqlyog图形工具软件创建数据库步骤如下。(1)启动SQLyog按第二章讲的方法连接到MySQL服务器。(2)创建数据库在连接名“root@localhost”上单击右键,在弹出的快捷菜单中选择“创建数据库”命令:
创建数据库14任务拓展在弹出“创建数据库”对话框,如图所示:在其输入数据库名XSCJ_db2,指定数据库的字符集utf8mb4,数据库排序规则utf8mb4_0900_ai_ci,然后单击“确定”按钮,完成数据库XSCJ_db2的创建,如图所示:
创建数据库15任务拓展在Sqlyog图形工具软件界面下,也可以通过命令方式来创建数据库,如图所示:
创建数据库16知识储备1.查看数据库如果要了解服务器中已创建了哪些数据库,需要使用查看数据库语句,其语法格式为:SHOWDATABASES;2.打开数据库在对某个数据库使用之前,需要先打开这个数据库。打开数据库的语法格式为:USE数据库名;例如,我们要查询数据库XSCJ_db中的表数据,那么需要先使用USEXSCJ_db来打开这个数据库。打开数据库的操作就是指定当前数据库的操作。
管理数据库17知识储备3.修改数据库数据库创建以后,如果需要修改数据库的参数,可以使用ALTERDATABASE命令。其语法格式为:ALTER{DATABASE|SCHEMA}[IFNOTEXISTS]数据库名[[DEFAULT]CHARACTERSET字符集名][[DEFAULT]COLLATE校对规则名];与使用CREATEDATABASE命令创建数据库相比,主要就是命令的关键字不同,其余的语法选项都是一样的。用户必须要有对数据库修改的权限才能使用ALTERDATABASE命令修改数据库。
管理数据库18知识储备3.修改数据库数据库创建以后,如果需要修改数据库的参数,可以使用ALTERDATABASE命令。其语法格式为:ALTER{DATABASE|SCHEMA}[IFNOTEXISTS]数据库名[[DEFAULT]CHARACTERSET字符集名][[DEFAULT]COLLATE校对规则名];与使用CREATEDATABASE命令创建数据库相比,主要就是命令的关键字不同,其余的语法选项都是一样的。用户必须要有对数据库修改的权限才能使用ALTERDATABASE命令修改数据库。
4.删除数据库删除已有的数据库可使用DROPDATABASE命令。其语法格式为:DROPDATABASE[IFEXISTS]数据库名;可选项IFEXISTS的作用是为避免删除不存在的数据库而产生错误。管理数据库19任务实施【任务1】查看当前服务器下有哪些数据库,查看结果如图2-6所示。
管理数据库20任务实施【任务2】打开数据库XSCJ_db3,操作结果如图2-7所示。管理数据库21任务实施【任务3】删除数据库XSCJ_db2,操作结果如图2-9所示。管理数据库22任务拓展【拓展1】使用SQLyog图形工具软件管理数据库。包括:查看当前服务器下有哪些数据库2.打开数据库3.修改数据库属性4.删除数据库管理数据库23复习:1. 对象命名规则;2. 数据库分类;3. 创建数据库SQL命令;4. 查看数据库;5. 打开数据库;6. 修改数据库;7. 删除数据库;8. 在图形工具中创建和管理数据库24管理数据库作业:1)查看当前服务器下有哪些数据库2)打开数据库3)修改数据库属性4)删除数据库5)预习创建数据表结构,微课视频5,微课视频625管理数据库THANKYOU!项目2:数据库设计数据库应用任务2创建与管理数据表——
创建数据表结构(1)
教学目标
素质目标
知识目标1线上线下结合,引导学习方式,培养自主学习能力;2培养学生积极探索、勇于创新的科学素养;3思政内容:本次课通过以公司招聘数据库技术人员的要求为例,来结合讲解数据库开发规范。1理解数据库中使用到的常用数据类型;2掌握在命令行方式下创建数据表的方法;3掌握在命令行方式下设置数据表约束的方法
能力目标1能采用命令方式建立数据表、开发环境中建立数据表;2能实现表的各种约束,特别是主键、外键约束;3能采用图形界面方式创建表及创建表的约束
教学重点通过命令行方式建立数据表并实现约束;在SQLyog图形工具软件中建立数据表及实现表的约束
教学难点通过命令行方式建立数据表及约束教学重难点知识储备数据表是数据库中用于存放数据的容器。作为数据库开发人员,需要在创建的用户数据库中创建系统所需要的数据表。创建数据表分为两个阶段,首先是创建表的结构,然后是向表中输入数据。1.数据类型用户在创建表结构的时候,需要指定表中各种数据所属的类型。数据类型是指用于存储、检索及解释数据值类型而预先定义的命名方法,它决定了数据在计算机中的存储格式,代表不同的信息类型。在MySQL数据库管理系统中,提供了数值类型(整数类型、浮点数和定点数类型、二进制类型)、日期和时间类型以及字符串类型。创建数据表结构30知识储备(一)数值类型
MySQL支持所有标准SQL数值数据类型。下表列出了每个数值类型数据的相关特性。
创建数据表结构31类型存储长度(字节)范围(有符号)范围(无符号)默认宽度整数类型Tinyint1-27,27-10,28-14位Smallint2-215,215-10,216-16位Mediumint3-223~223-10~224-19位Int(Interger)4-231~231-10~23211位Bigint8-263~263-10~26420位浮点与定点数类型Float4
单精度浮点数值,默认保留实际精度Double8
双精度浮点数值,默认保留实际精度Dec(p,s)p+2依赖于p和s的值依赖于p和s的值存放精确的小数值二进制类型Bit(m)m位
64位m位Varbinary(m)可变长度
0~m位可变长度Binary(m)m位
m位Tinyblob可变长度
28-1可变长度Blob可变长度
216-1可变长度Mediumblob可变长度
224-1可变长度Longblob可变长度
232-1可变长度知识储备(二)日期和时间类型
MySQL中表示日期和时间类型有Year、Date、Time、Datetime和Timestamp。下表显示了日期和时间类型的相关特性。
创建数据表结构32类型存储长度(字节)范围格式用途Year11901~2155YYYY或‘YYYY’年份值Date31000-01-01~9999-12-31‘YYYY-MM-DD’或‘YYYYMMDD’日期值Time3'-838:59:59'~'838:59:59'HH:MM:SS时间值或持续时间Datetime81000-01-0100:00:00~9999-12-3123:59:59YYYY-MM-DDHH:MM:SS混合日期和时间值Timestamp41970-01-0100:00:00~2038-01-1903:14:17
YYYY-MM-DDHH:MM:SS混合日期和时间值,时间戳知识储备(三)字符串类型
MySQL支持两类字符串类型:文本字符串如Char、Varchar、Tinytext、Text、Mediumtext、Longtext、Enum和Set等;二进制字符串如Bit和BLOB等。下表描述了这些字符串类型数据的相关特性。
创建数据表结构33类型大小(字节)数值范围(字节)用途文本字符串Char(n)N0~255定长字符串Varchar(n)输入字符串长度+10~65535变长字符串,最大为n+1Tinytext值的长度+20~255短文本字符串Text值的长度+20~65535长文本数据Mediumtext值的长度+30~16777215中等长度文本数据Longtext值的长度+40~4294967295二进制形式的极大文本数据Enum1或2
枚举类型,在表创建时指定列值中选择一个Set1~4字节或8
在表创建时指定列值中选择一个或多个二进制字符串Bit(n)
(n+7)/8位字段类型Binary(n)
n固定长度二进制串Varbinary(n)
n+1可变长度二进制串Tinyblob(n)值的长度+10~256非常小的BlobBLOB值的长度+20~65535小的BlobMeduumblob(n)值的长度+30~224中等大小的BlobLongblob(n)值的长度+40~232非常大的Blob知识储备2.创建数据表在MySQL中,表是数据库中最重要、最基本的操作对象,是数据存储的基本单位。数据在表中的组织方式与电子表格类似,也是按行和列形式组成的集合,每一行代表一条记录,一个记录用于存储一个对象的相关属性;每一列代表记录的一个字段,一个字段就是一个属性。
创建数据表结构34知识储备(二)在Commandlineclient方式下定义表结构数据表在存放数据之前,需要先定义其结构。定义结构就是设置表有哪些字段,以及这些字段的特性,如字段名称、数据类型、长度、精度、小数位数、是否唯一、是否定义为主键、是否允许为空值(NULL)、是否设置默认值等等。在Commandlineclient方式下定义表结构的语法如下:
CREATE[TEMPORARY]TABLE[IFNOTEXISTS]table_name(属性名数据类型[列约束条件],属性名数据类型[列约束条件],…,[表约束条件])ENGINE=存储引擎;
创建数据表结构35知识储备(三)表的约束一个数据库往往是由多个表组成的,如何实现表与表之间的关联关系、如何减少表数据在输入时的错误、如何防止非法数据的输入等,这些都可以通过建立表约束来实现。表约束包括主键约束、外键约束、非空约束、唯一性约束、默认约束和检查约束。(1)主键约束主键是表中一列或多列的组合。主键用于唯一标识数据表中的一条记录。主键约束就是要求主键不能取空值,也不允许取重复值,主键约束对应的是实体完整性。在一个数据表中,只能定义一个主键,并且系统会自动为主键创建索引。
创建数据表结构36知识储备由表的一列组成的主键称为单字段主键,由表的多列组成的主键称为多字段联合主键。a)单字段主键单字段主键的指定有两种方法,一种是在定义列的同时指定主键,另一种是在定义完所有列之后指定主键。在定义列的同时指定主键的语法规则如下:字段名数据类型primarykey[默认值]
创建数据表结构37知识储备【单字段主键示例】在测试数据库XSCJ_db中,以表2-4所示的XSQK1表结构创建XSQK1表。表2-4
XSQK1表结构mysql>useXSCJ_db;#创建表前,需要先指定当前数据库Databasechangedmysql>createtableXSQK1(->学号char(10)primarykey,#在定义列的同时指定主键->姓名varchar(10),->性别char(2));QueryOK,0rowsaffected(0.02sec)
创建数据表结构38列名数据类型长度(字节)约束学号char10主键姓名varchar10
性别char2知识储备【互动】在测试数据库XSCJ_db中,以表2-4所示的XSQK1表结构创建XSQK1表。表2-4
XSQK1表结构
创建数据表结构39列名数据类型长度(字节)约束学号char10主键姓名varchar10
性别char2知识储备在定义完所有列之后指定主键的语法规则如下:[CONSTRAINT<约束名>]PRIMARYKEY[字段名]mysql>droptableifexistsXSQK1;#删除前面创建的CJ1表QueryOK,0rowsaffected(0.27sec)mysql>createtableXSQK1(->学号char(10),->姓名varchar(10),->性别char(2),->constraintprimarykey(学号));#在定义完所有列之后指定主键QueryOK,0rowsaffected(0.02sec)创建数据表结构40知识储备(b)多字段联合主键定义多字段联合主键的语法规则:PRIMARYKEY[字段1,字段2,…字段n]【多字段主键示例】参照下表所示的CJ1表结构创建CJ1表,将“学号”“课程号”两列组成联合主键。
创建数据表结构41列名数据类型长度(字节)主键学号Char10是课程号Char3是成绩Tinyint1
学分Tinyint1知识储备mysql>droptableifexistsCJ1;QueryOK,0rowsaffected(0.01sec)mysql>createtableCJ1(->学号char(10),->课程号char(3),->成绩tinyint,->学分tinyint,->constraintprimarykey(学号,课程号));QueryOK,0rowsaffected(0.03sec)注意:多字段联合主键只能在定义完所有列之后用“constraintprimarykey”指定。创建数据表结构42知识储备(b)多字段联合主键【互动】参照下表所示的CJ1表结构创建CJ1表,将“学号”“课程号”两列组成联合主键。
创建数据表结构43列名数据类型长度(字节)主键学号Char10是课程号Char3是成绩Tinyint1
学分Tinyint1知识储备(2)非空约束非空约束是指字段的值不能为空。对于指定了非空约束的字段,如果用户在添加数据时没有指定值,则数据库会报错。空属性是声明该列的值在表中输入数据时可以不填,用NULL表示,如果不允许为空,则需要声明为NOTNULL。NULL属性表示数值未知,不是零长度字符串,也不是数字0,只表示没有输入其内容,可用于该列的值暂时未定,或不需要输入值的情况。如果某列被定义为NOTNULL属性,但在表中插入数据时没有输入任何数据,则会弹出如下所示的错误。创建数据表结构44知识储备定义非空约束的语法规则:字段名数据类型NOTNULL【非空约束示例】在表2-4XSQK1表结构的基础上,设置XSQK1表中的姓名列不能取空值。mysql>droptableifexistsXSQK1;QueryOK,0rowsaffected(0.03sec)mysql>createtableXSQK1(->学号char(10)primarykey,->姓名varchar(10)NOTNULL,#设置姓名不能为空值->性别char(2));QueryOK,0rowsaffected(0.03sec)
创建数据表结构45知识储备【互动】在下表结构的基础上,设置XSQK1表中的姓名列不能取空值。
创建数据表结构46列名数据类型长度(字节)约束学号char10主键姓名varchar10
性别char2知识储备(3)默认值约束默认值约束用于指定某列的默认值。定义默认值约束的语法规则:字段名数据类型DEFAULT默认值【默认值约束示例】以表2-4XSQK1表结构为例,设置XSQK1表中的性别列的默认值为“男”。mysql>droptableifexistsXSQK1;QueryOK,0rowsaffected(0.03sec)mysql>createtableXSQK1(->学号char(10)primarykey,->姓名varchar(10)NOTNULL,->性别char(2)default'男');#设置性别的默认值为‘男’QueryOK,0rowsaffected(0.04sec)
创建数据表结构47知识储备(3)默认值约束【互动】以下表结构为例,设置XSQK1表中的性别列的默认值为“男”。
创建数据表结构48列名数据类型长度(字节)约束学号char10主键姓名varchar10
性别char2默认值:“男”知识储备(4)唯一键约束唯一性约束又称唯一键约束,它用于保证列中不会出现重复的数据,在一个数据表上可以定义多个唯一性约束,定义了唯一性约束的列可以取空值。唯一性约束实现了实体完整性规则。指定唯一约束的语法规则:字段名数据类型UNIQUE
创建数据表结构49知识储备【唯一性约束示例】以表2-4XSQK1表结构为例,定义数据表XSQK1,将姓名列指定为非空,并取唯一值。mysql>droptableifexistsXSQK1;QueryOK,0rowsaffected(0.03sec)mysql>createtableXSQK1(->学号char(10)primarykey,->姓名varchar(10)NOTNULLUNIQUE,#设置姓名不能取空值,不能有重复值->性别char(2)default'男');QueryOK,0rowsaffected(0.05sec)创建数据表结构50知识储备(5)外键约束外键是指某个属性对本表来说,不是本表的主键或只是本表主键的一部分(本表主键是多字段联合主键的情况),但却是另外一个表的主键。外键是用来在两个表的数据之间建立链接的一列或多列。一个表可以有一个或多个外键。外键对应的是参照完整性,用于保持数据的一致性和完整性。定义了外键之后,不允许删除另一个表中具有关联关系的行。一个表的外键可以为空值,如不为空值,则必须与另一个表中某个主键的值相同。创建数据表结构51知识储备(5)外键约束外键是指某个属性对本表来说,不是本表的主键或只是本表主键的一部分(本表主键是多字段联合主键的情况),但却是另外一个表的主键。外键是用来在两个表的数据之间建立链接的一列或多列。一个表可以有一个或多个外键。外键对应的是参照完整性,用于保持数据的一致性和完整性。定义了外键之后,不允许删除另一个表中具有关联关系的行。一个表的外键可以为空值,如不为空值,则必须与另一个表中某个主键的值相同。创建外键约束的语法规则:[CONSTRAINT<外键名>]FOREIGNKEY字段名1[,字段名2,…]REFERENCES<主表名>主键列1[,主键列2…]
创建数据表结构52知识储备【外键约束示例】在数据库XSCJ_db2中,在表2-5所示的结构基础上,要求将CJ1表的“学号”列定义为外键,关联到XSQK1表的“学号”列。mysql>droptableifexistsCJ1;#删除前面定义CJ1表QueryOK,0rowsaffected(0.03sec)mysql>createtableCJ1(->学号char(10),->课程号char(3),->成绩tinyint,->学分tinyint,->constraintprimarykey(学号,课程号),->constraintFK_XSQK1_XHforeignkey(学号)referencesXSQK1(学号));#定义外键QueryOK,0rowsaffected(0.07sec)创建数据表结构53知识储备【互动】在数据库XSCJ_db2中,在下表所示的结构基础上,要求将CJ1表的“学号”列定义为外键,关联到XSQK1表的“学号”列。
创建数据表结构54列名数据类型长度(字节)主键学号Char10是课程号Char3是成绩Tinyint1
学分Tinyint1知识储备(6)检查约束检查约束是用来检查输入的数据是否满足约束条件,它实现了关系完整性规则中的“域完整性”规则。例如,我们可以通过设置检查约束,使在学生成绩管理系统中要求录入的学生成绩在0到100之间。定义检查约束的语法规则:字段名数据类型CHECK(约束条件)
创建数据表结构55知识储备【检查约束示例】参照表2-5所示的CJ1表结构创建CJ1表,并为成绩列增加检查约束,要求其取值在0到100之间。mysql>droptableifexistsCJ1;QueryOK,0rowsaffected(0.03sec)mysql>createtableCJ1(->学号char(10),->课程号char(3),->成绩tinyintcheck(成绩>=0and成绩<=100),->学分tinyint,->constraintprimarykey(学号,课程号));QueryOK,0rowsaffected(0.04sec)创建数据表结构56知识储备(7)设置表字段值自动增加
在数据表中,若想为表中插入的新记录自动生成唯一的编号,可以在表的主键上添加AUTO_INCREMENT关键字来实现。使用AUTO_INCREMENT关键字的特点:一个表只能有一个字段使用AUTO_INCREMENT关键字;使用AUTO_INCREMENT关键字的字段是表的键(包括主键、外键或唯一键);AUTO_INCREMENT关键字的字段可以是任务整数类型数据(Tinyint、Smallint、Int和Bigint);默认情况下,AUTO_INCREMENT关键字的字段的初始值为1,每新增一条记录自动增加1。使用AUTO_INCREMENT关键字的语法规则:字段名数据类型AUTO_INCREMENT创建数据表结构57知识储备【设置表字段值自动增加示例】以表2-6XSQK2表结构为例,创建XSQK2数据表,设置序号列为自动增长。表2-6XSQK2表结构创建数据表结构58列名数据类型长度(字节)自动增长约束序号int4初值、增量均为1主键姓名varchar10
性别char2
mysql>createtableXSQK2(->序号intprimarykeyauto_increment,->姓名varchar(10),->性别char(2));QueryOK,0rowsaffected(0.07sec)复习:1数据类型;2创建数据表;3创建主键约束、外键约束、非空约束、唯一性约束、默认约束,检查约束和设置自动增长列。59管理数据库作业:1线上:第4章1:章节测式;2预习:创建三张数据表XSQK、KC和CJ表;线上看微课视频“7创建数据表”和“8表的约束”;3.教材P89填空题1-6;选择题1-4。60管理数据库THANKYOU!项目2:数据库设计数据库应用任务2创建与管理数据表——
创建数据表结构(2)
教学目标
素质目标
知识目标1线上线下结合,引导学习方式,培养自主学习能力;2培养学生积极探索、勇于创新的科学素养;3养成小组沟通协作共同学习,解决问题能力和团队合作精神;4思政内容:通过录入数据为后续使用,结合到培养勤俭、奋斗、创新、奉献的劳动精神1掌握创建学生情况表的方法;2掌握创建课程表的方法;3掌握创建成绩表的方法;
能力目标1能采用命令方式建立学生成绩管理数据库系统的三张表:XSQK、CJ和KC;2能采用图形界面方式创建表及表的约束
教学重点采用命令方式建立学生成绩管理数据库系统的三张表:XSQK、CJ和KC;在图形界面下完成数据表的创建
教学难点采用命令方式建立数据表。教学重难点任务实施下面,在数据库XSCJ中建立以下三张数据表来存放数据。1.学生情况表(XSQK)用于存放学生的基本信息,该表的结构及相关属性如表2-7所示。表2-7学生情况表(XSQK)创建数据表结构65列名数据类型长度(字节)约束是否允许为空默认值检查约束主键约束学号char10×无无主键姓名varchar10×无无
性别char2×男‘男’或‘女’
出生日期date3×无无
专业名varchar20×无无
所在学院varchar20×无无
联系电话char11√无无
总学分tinyint1√无无
备注varchar50√无无任务实施【任务1】学生情况表XSQk的创建mysql>createtableXSQK(->学号char(10)primarykey,->姓名varchar(10)notnull,->性别char(2)notnulldefault'男'check(性别='男'or性别='女'),->出生日期datenotnull,->专业名varchar(20)notnull,->所在学院varchar(20)notnull,->联系电话char(11),->总学分tinyint,->备注varchar(50));QueryOK,0rowsaffected(0.03sec)创建数据表结构66任务实施互动1根据下表结构,创建名为XSQK1的学生情况表:
创建数据表结构67列名数据类型长度(字节)约束是否允许为空默认值检查约束主键约束学号char10×无无主键姓名varchar10×无无
性别char2×男‘男’或‘女’
出生日期date3×无无
专业名varchar20×无无
所在学院varchar20×无无
联系电话char11√无无
总学分tinyint1√无无
备注varchar50√无无任务实施2.课程表(KC)用于存放学校开设的课程信息,该表的结构及相关属性如表2-8所示。表2-8课程表(KC)创建数据表结构68列名数据类型长度(字节)约束非空约束默认值约束检查约束主键约束课程号char3×无无主键课程名varchar20×无无
授课教师varchar10√无无
开课学期tinyint1×1在1到6之间
学时tinyint1×无无
学分tinyint1√无无任务实施【任务2】课程表KC的创建mysql>createtablekc(->课程号char(3)primarykey,->课程名varchar(20)notnull,->授课教师varchar(10),->开课学期tinyintnotnulldefault1check(开课学期>=1and开课学期<=6),->学时tinyintnotnull,->学分tinyint);QueryOK,0rowsaffected(0.03sec)创建数据表结构69任务实施互动2根据下表结构,创建名为KC1的课程表:创建数据表结构70列名数据类型长度(字节)约束非空约束默认值约束检查约束主键约束课程号char3×无无主键课程名varchar20×无无
授课教师varchar10√无无
开课学期tinyint1×1在1到6之间
学时tinyint1×无无
学分tinyint1√无无任务实施3.成绩表(CJ)用于存放学生选修了某门课程后所取得的成绩和学分,该表的结构及相关属性如表2-9所示。表2-9成绩表(CJ)创建数据表结构71列名数据类型长度(字节)约束非空约束默认值约束检查约束外键约束主键约束学号char10×无无FK_xsqk_XH,参照xsqk表联合主键课程号char3×无无FK_kc_KCH,参照kc表成绩tinyint1√00~100
学分tinyint1√无无任务实施【任务3】成绩表CJ的创建mysql>createtableCJ(->学号char(10),->课程号char(3),->成绩tinyintcheck(成绩>=0and成绩<=100),->学分tinyint,->constraintprimarykey(学号,课程号),->constraintFK_xsqk_XHforeignkey(学号)referencesxsqk(学号),->constraintFK_kc_KCHforeignkey(课程号)referencesxsqk(课程号));QueryOK,0rowsaffected(0.06sec)创建数据表结构72任务实施互动3根据下表结构,创建名为CJ1的成绩表:创建数据表结构73列名数据类型长度(字节)约束非空约束默认值约束检查约束外键约束主键约束学号char10×无无FK_xsqk_XH,参照xsqk表联合主键课程号char3×无无FK_kc_KCH,参照kc表成绩tinyint1√00~100
学分tinyint1√无无任务拓展使用SQLyog图形工具软件实现数据表的创建【拓展1】在数据库XSCJ_db中,创建KC_db表,该表的结构及相关属性如表2-8所示。操作步骤见教材。【拓展2】在数据库XSCJ_db中创建CJ_db表,该表的结构及相关属性如表2-9所示。操作步骤见教材。
创建数据表结构74复习:1. 数据表XSQK的创建;2. 数据表KC的创建;3. 数据表CJ的创建;4. 数据类型和约束;5. 在图形界面下创建数据表表;75索引的创建和管理作业:1线上:第4章2:章节测式;2预习:数据表的管理;线上看微课视频“9创建三张数据表”;3. 教材P89填空题7-11;选择题6、5。76索引的创建和管理THANKYOU!项目2:数据库设计数据库应用任务2创建与管理数据表——
管理数据表
教学目标
素质目标
知识目标1. 培养学生分析问题、解决问题的探究精神和能力;2. 培养学生团队交流、沟通与协作能力;3. 课程思政:通过向表中插入数据结合国家大数据的战略;1. 掌握向表中添加数据的方法;2. 掌握更新数据的方法;3. 掌握删除数据的方法;4. 掌握在图形工具软件中对表数据操作的方法;
能力目标1. 能使用命令行方式对表数据进行插入、更新和删除操作;2. 能在图形界面下完成表数据的插入、更新和删除操作。
教学重点在命令行方式下对表数据进行添加和在图形界面下添加表数据
教学难点在命令行方式下对表数据进行插入和更新教学重难点知识储备1.查看数据表要查看数据库中已建立了哪些数据表,可能过SHOWTABLES命令来查看,其语法格式是:USE数据库名;SHOWTABLES;【查看数据表示例】查看XSCJ数据库中有哪些数据表。mysql>USEXSCJ;mysql>SHOWTABLES;
管理数据表81知识储备2.查看数据表结构(1)通过DESCRIBE查看表基本结构语法格式:DESCRIBE表名;或EDSC表名;【查看数据表结构示例】通过DESCRIBE查看数据表CJ的基本结构,如图所示。
管理数据表82知识储备2.查看数据表结构(2)通过SHOWCREATETABLE查看表详细结构使用SHOWCREATETABLE语句可以显示出创建表时使用的SQL语句,以及所使用的存储引擎和字符编码,在加上参数“\G”之后,可以使所显示信息更加简洁。SHOWCREATETABLE表名[\G];
管理数据表83知识储备【查看数据表详细结构示例】使用SHOWCREATETABLE查看数据表CJ的详细信息。mysql>SHOWCREATETABLECJ\G;***************************1.row***************************Table:CJCreateTable:CREATETABLE`cj`(`学号`char(10)NOTNULL,`课程号`char(3)NOTNULL,`成绩`tinyintDEFAULTNULL,`学分`tinyintDEFAULTNULL,PRIMARYKEY(`学号`,`课程号`),CONSTRAINT`FK_kc_KCH`FOREIGNKEY(`学号`)REFERENCES`xsqk`(`学号`),CONSTRAINT`FK_xsqk_XH`FOREIGNKEY(`学号`)REFERENCES`xsqk`(`学号`),CONSTRAINT`cj_chk_1`CHECK(((`成绩`>=0)and(`成绩`<=100))))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_0900_ai_ci1rowinset(0.01sec)
管理数据表84知识储备3.表的修改表的修改是对已定义的数据表结构的修改,修改表的操作包括:表名、字段名、字段数据类型、增加字段、删除字段、字段排列位置、外键约束以及表的存储引擎等。(1)修改表名修改表名的语法规则:ALTERTABLE<旧表名>RENAME[TO]<新表名>;【修改表名示例】将XSCJ_db数据库中的数据表xsqk1改名为xsqk。mysql>altertablexsqk1renamexsqk;QueryOK,0rowsaffected(0.04sec)
管理数据表85知识储备(2)修改字段名修改字段名的语法规则:ALTERTABLE<表名>CHANGE<原字段名><新字段名><新数据类型>;【修改字段名示例】将XSCJ_db数据库中的CJ1表的“课程号”字段名改为“课程编号”,数据类型不变。mysql>altertableCJ1change课程号课程编号char(3);QueryOK,0rowsaffected(0.03sec)
管理数据表86知识储备(2)修改字段名互动1:将XSCJ_db数据库中的CJ1表的“课程编号”字段名改为“课程号”,数据类型不变。管理数据表87知识储备(4)添加字段添加字段的语法规则:ALTERTABLE<表名>ADD<新字段名><数据类型>[约束条件][FIRST][AFTER原有字段名]
【添加字段示例】将XSCJ_db数据库中的数据表CJ1的“课程编号”字段后新加一个名为“课程名称”的字段,要求数据类型为varchar(20),且不能取空值。mysql>altertableCJ1add课程名称varchar(20)notnullafter课程号;QueryOK,0rowsaffected(0.84sec)管理数据表88知识储备(4)添加字段互动2:将XSCJ_db数据库中的数据表CJ1的“课程号”字段后新加一个名为“课程名称”的字段,要求数据类型为varchar(20),且不能取空值。管理数据表89知识储备(5)删除字段删除字段的语法规则:ALTERTABLE<表名>DROP<字段名>;【删除字段示例】删除CJ1表中的“课程名称”字段。mysql>altertablecj1drop课程名称;QueryOK,0rowsaffected(0.06sec)
管理数据表90知识储备(6)改变字段排列顺序字段的排列位置由创建时字段录入的先后顺序所确定,但这个顺序是可以改变的。改变字段排列位置的语法规则:ALTERTABLE<表名>MODIFY<字段1><数据类型>FIRST|AFTER<字段2>;【改变字段排列顺序示例】将CJ1表中的“学号”字段排列到“课程编号”的后面。mysql>altertablecj1modify学号char(10)after课程编号;QueryOK,0rowsaffected(0.05sec)
管理数据表91知识储备(6)改变字段排列顺序互动3
将CJ表中的“学号”字段排列到“课程号”的后面。管理数据表92知识储备(7)添加外键约束添加外键约束的语法规则:ALTERTALBE从表名ADDCONSTRAINT外键约束名FOREIGNKEY(外键列名)REFERENCES主表名(主键列名);【添加外键约束示例】为表CJ1的学号列建立外键约束,参考的主键是xsqk表中的学号列。mysql>altertablecj1addconstraintFK_cj1_xhforeignkey(学号)referencesxsqk(学号);QueryOK,0rowsaffected(0.08sec)
添加外键约束后,就在两张表之间建立起了主表与从表的关系,外键取值就需要遵守参照完整性规则。
管理数据表93知识储备(9)删除主键约束删除主键约束的语法规则:ALTERTABLE表名;DROPPRIMARYKEY【删除主键约束示例】删除数据表CJ1的主键约束。mysql>altertablecj1dropprimarykey;QueryOK,0rowsaffected(0.08sec)
管理数据表94知识储备(10)添加主键约束添加主键约束语法规则:ALTERTABLE表名
ADD[CONSTRAINTPK_XH]PRIMARYKEY(列名1[,列名2…]);【添加主键约束示例】向数据表CJ1添加主键约束,主键由为“学号”和“课程编号”两列联合组成。mysql>ALTERTABLECJ1ADDPRIMARYKEY(学号,课程编号);QueryOK,0rowsaffected(0.06sec)
管理数据表95知识储备(11)添加默认值约束添加默认值约束语法规则:ALTERTABLE表名Alter
列名SETDEFAULT默认值;【添加默认值约束示例】修改数据表CJ1,将其成绩列的默认值设置为0。mysql>altertablecj1alter成绩setdefault0;QueryOK,0rowsaffected(0.02sec)管理数据表96知识储备(11)添加默认值约束互动4:修改数据表CJ1,将其成绩列的默认值设置为64。管理数据表97知识储备(12)添加检查约束添加检查约束语法规则:ALTERTABLE表名ADD[CONSTRAINT约束名]CHECK(条件表达式);【添加检查约束示例】修改数据表KC_db,要求“开课学期”列的取值在1到6之间。mysql>ALTERTABLEKC_dbaddCHECK(开课学期>=1and开课学期<=6);QueryOK,0rowsaffected(0.08sec)管理数据表98知识储备(13)删除检查约束删除检查约束语法规则:ALTERTABLE表名DROPCHECK检查约束名;【删除检查约束示例】修改数据表KC_db,删除“开课学期”列上设置的检查约束。mysql>altertablekc_dbdropcheckkc_db_chk_1;QueryOK,0rowsaffected(0.03sec)管理数据表99知识储备4.表的删除删除数据表的语法规则:DROPTABLE[IFEXISTS]表1[表2,…];[表的删除示例]删除XSCJ_db数据库中的xsqk2表。mysql>droptablexsqk2;QueryOK,0rowsaffected(0.03sec)注意,如果删除的表是具有主从关系的主表,那么在删除时会产生错误。当有两个表存在外键约束时,作为主表是不能被直接删除的,需要先解除外键约束后才能删除管理数据表100任务实施【任务1】修改XSCJ数据库中的CJ表,为“成绩”列添加默认值0。mysql>usexscj;Databasechangedmysql>altertablecj->alter成绩->setdefault0;QueryOK,0rowsaffected(0.02sec)Records:0Duplicates:0Warnings:0管理数据表101任务拓展【拓展1】使用Sqlyog图形工具软件修改数据表CJ1。使用Sqlyog图形工具软件可以对数据表进行各种修改,包括增加字段、删除字段、改变字段顺序、字段重命名、修改数据类型、字段长度、设置默认值、主键约束、非空约束和自增字段等。操作过程见教材。【拓展2】使用SQLyog图形工具软件删除XSCJ_db数据库中的“xsqk”表。操作过程见教材。管理数据表102复习:1. 使用INSERT…VALUES命令向表中插入数据;2. 使用UPDATE语句修改表中的数据;3. 使用DELETE语句删除表中的数据;4. 在SQLyog图形工具软件下,完成表数据的插入、修改和删除操作103管理数据表作业:1线上:第4章:章节测试3;2预习:数据查询;线上看微课视频“13向表中添加数据”——“14在图形界面下添加表数据”;3.教材P90,任务二。104管理数据表THANKYOU!项目2:数据库设计数据库应用任务2创建与管理数据表——
表数据操作
教学目标
素质目标
知识目标1养成小组沟通协作共同学习,解决问题能力和团队合作精神;2能按照课程管理要求做好课前的准备,课后的整理工作,培养勤俭、奋斗、创新、奉献的劳动精神;3思政内容:通过对表数据编辑,树立质量意识。1向表中插入数据;2更新数据表;3删除表数据;
能力目标1熟练在命令行方式下完成表数据的插入、删除和更新2掌握通过图形界面方式完成表数据的插入、删除和更新;
教学重点在命令行方式下完成表数据的插入、删除和更新
教学难点在命令行方式下完成表数据的插入和更新教学重难点知识储备1.向表中的所有字段添加数据语法规则是:INSERTINTO表名(字段名1,字段名2,…)VALUES(值1,值2,…);[添加数据示例1]向数据库XSCJ中的XSQK表添加数据。mysql>insertintoxsqk(学号,姓名,性别,出生日期,专业名,所在学院,联系电话,总学分,备注)->values('2020030101','王强','男','19980406','云计算','计算机学院',,null,null);QueryOK,1rowaffected(0.01sec)
表数据操作109知识储备1.向表中的所有字段添加数据如果向表中所有字段添加数据时,在INSERT语句中可以不指定字段名,其语法规则是:INSERTINTO表名VALUES(值1,值2…);[添加数据示例2]向数据库XSCJ中的KC表添加数据。
mysql>insertintokcvalues('101','计算机文化基础','李平',1,48,3);QueryOK,1rowaffected(0.01sec)表数据操作110知识储备2.向表中指定的字段添加数据向表中指定字段添加数据时,可以使用INSERT语句来实现,其语法规则是:INSERTINTO表名(字段名1,字段名2,…)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年重庆道路测试题及答案
- 2026年机电驱动测试题及答案
- 2026年恋爱的心理小测试题及答案
- 2026年离散变换域测试题及答案
- 2026年制冷原理测试题及答案
- 初中生2025年情绪游戏说课稿
- 小学心理健康班会说课稿
- 第12课 撇捺组合说课稿2025学年小学书法北师大版三年级下册-北师大版
- 高中社会实践志愿服务主题班会说课稿2025
- 2026首都医科大学附属北京佑安医院编制外护理人员招聘13人备考题库及答案详解(有一套)
- 魔法森林的奇幻之旅童话故事5篇
- 供应商管理标准作业程序
- 代办开发资质合同范本
- (正式版)DB13∕T 6146-2025 《重点排放单位碳排放计量管理体系建设指南》
- 麻醉学急救处理方案
- 什么是音乐ai课件教学
- 机修安全操作规程培训课件
- 校园室外配套工程的综合施工组织设计
- 水利水电工程设计信息模型分类和编码标准
- 2025年“七五”普法考试题库及答案
- 开放性骨折护理常规课件
评论
0/150
提交评论