MySQL数据库项目化教程PPT完整全套教学课件_第1页
MySQL数据库项目化教程PPT完整全套教学课件_第2页
MySQL数据库项目化教程PPT完整全套教学课件_第3页
MySQL数据库项目化教程PPT完整全套教学课件_第4页
MySQL数据库项目化教程PPT完整全套教学课件_第5页
已阅读5页,还剩514页未读 继续免费阅读

下载本文档

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

文档简介

项目一数据库入门项目1数据库入门.pptx项目2建立和管理数据库.pptx项目3创建与管理表.pptx项目4数据管理.pptx项目5数据查询.pptx项目6视图.pptx项目7存储过程、存储函数与事务.pptx项目8触发器.pptx项目9数据库的高级管理.pptx项目10数据库设计.pptx全套可编辑PPT课件认识数据库下载、安装与配置MySQL了解数据库应用及其基本概念和数据库管理系统主流产品。学习数据库模型和结构化査询语言SQL知识。掌握安装MySQL数据库系统环境,配置MySQL服务器技能。掌握排除MySQL服务器安装、启动服务和连接服务类的故障能力。培养学生发现、分析及解决问题的能力,增加学生研究创新的信心和动力;培养学生理解并敬重工匠精神,在学习中努力发扬工匠精神。任务1.1认识数据库1.1.1数据库的发展历程数据库管理技术先后经历了人工管理、文件管理、数据库管理三大主要阶段。1.人工管理2.文件管理3.数据库管理1.1.2数据库存的相关概念1.数据数据(Data)是用来记录信息的可识别符号,是信息的具体表现形式。2.数据库数据库(Database,DB)是用来存储数据的仓库。3.数据库管理系统4.数据库系统数据库系统(DatabaseSystem,DBS)通常指的是由计算机的硬件系统、软件系统、数据库、数据库管理系统和数据库管理员的一个完整系统。5.数据库应用系统数据库应用系统(DatabaseApplicationSystem)是指开发人员利用数据库和某种前台开发工具开发的,面向某一类信息处理业务的软件系统一个数据库服务器可以管理多个数据库,通常情况下开发人员会针对每个应用创建一个数据库,为保存应用中实体的数据,会在数据库中创建多个表(用于存储和描述数据的逻辑结构),每个表都记录着实体的相关信息。1.1.2数据库存储结构一个数据库服务器可以管理多个数据库,通常情况下开发人员会针对每个应用创建一个数据库,为保存应用中实体的数据,会在数据库中创建多个表(用于存储和描述数据的逻辑结构),每个表都记录着实体的相关信息。1.1.3SQL语言1.数据定义语言数据定义语言(DataDefinitionLanguage,DDL)提供了定义、修改和删除数据库、数据表以及其他数据库对象的一系列语句。常用语句的关键字为CREATE、ALTER和DROP。2.数据操作语言数据操作语言(DataManipulationLanguage,DML)提供了插入、修改、删除和检索数据库记录的一系列语句。常用语句的关键字为INSERT、UPDATE、DELETE和SELECT。3.数据控制语言数据控制语言(DataControlLanguage,DCL)提供了授予和收回用户对数据库和数据库对象访问权限的一系列语句。常用语句的关键字为GRANT(授予权限)和REVOKE(收回权限)。4.事务控制语言事务控制语言(TransactionControlLanguage,TCL)提供了提交或回滚记录更新的事务控制语句。常用语句的关键字为COMMIT(提交事务)、SAVEPOINT(设置保存点)、ROLLBACK(回滚事务)。1.1.4主流数据库简介1.国产数据库2.Oracle数据库3.DB2数据库4.SQLServer数据库5.MySQL数据库6.非关系型数据库(1)访问MySQL数据库网站/,了解MySQL各版本及功能;(2)上网检索MySQL发展的最新动态及优缺点;(3)上网检索中国数据库的发展历程;(4)上网检索为中国数据库技术发展的作出杰出贡献的人物;(5)上网检索结构化查询语言SQL的发展及其与各DBMS产品的关系;(6)上网检索数据模型的概念及数据模型的种类。任务1.2下载、安装与配置MySQL1.2.1下载MySQL针对不同的操作系统,MySQL提供了多个版本的安装文件,初学者可以到/网站下载MySQL安装文件1.2.2安装MySQL1.运行安装程序下载完毕后,双击安装文件进行安装。此时,会弹出MySQL安装向导界面1.2.2安装MySQL1.运行安装程序DeveloperDefault(开发默认安装):安装MySQL开发所需的所有程序。Serveronly(服务安装):只安装MySQL服务器程序。Clientonly(客户端安装):只安装MySQL命令行客户端和命令行使用程序。Full(完全安装):安装软件包内的所有组件。Custom(定制安装):选择想要安装的软件和安装路径。1.2.2安装MySQL2.选择安装功能模块有4类模块可以选择,分别是MySQL服务、应用程序、MySQL连接和文档,分别展开模块分类,将需要的模块选择,点击中间向右箭头,添加到准备安装列表中。1.2.2安装MySQL3.检查安装条件是否满足如果出现“Oneormoreproductrequirementshavenotbeensatisfied”提示,说明所选的功能模块中有部分模块缺少基本安装条件。例如MySQLforVisualStudio模块需要安装MicrosoftVisualStudio应用才能正常使用。【提示】MySQL8.0的安装需要MicrosoftVisualC++2019的运行环境,如果在win10以下版本安装MySQL8.0,需要先安装MicrosoftVisualC++2019的运行库,才能正确安装。1.2.2安装MySQL4.安装完成安装程序就会按选择清单安装程序,此时可以看到安装的进度,等待几分钟,程序就会提示安装完成。1.2.3配置MySQL5.配置服务模块这里需要完成服务、路由、实例3个模块的配置。1.2.3配置MySQL5.配置服务模块首先配置的是类型和网络,需要配置的内容有服务运行的机器类型、网络连接的协议、端口、通道名称、高级配置选项等。类型选择为“DevelopmentComputer”启用TCP/IP协议端口默认为33061.2.3配置MySQL5.配置服务模块其次要配置的是认证方式,MySQL8.0提供了两种认证方式一种是8.0版本新特征中的强密码加密认证方式,新认证方式采用256位SHA加密算法进行加密,安全性更好;另一种是兼容5.x版本的传统认证方式。如果应用程序不支持新认证方式连接,可以使用传统认证方式。1.2.3配置MySQL5.配置服务模块进入账号和角色设置,MySQL的账号有两种角色一种是超级管理员账号,另一种是普通账号。这一步可以设置超级管理员root的密码,还可以新增普通账号。1.2.3配置MySQL5.配置服务模块进入windows服务配置界面,如果需要MySQL能够开机启动,需要勾选“ConfigureMySQLServerasaWindowsService”和“StarttheMySQLServeratSystemStartup”两个选项服务的名称为“MySQL80”。1.2.3配置MySQL5.配置服务模块进入日志配置,这里分别设置错误日志、一般日志、查询日志、应用程序日志等类型日志文件保存位置和文件名。1.2.3配置MySQL5.配置服务模块进入高级选项设置,这里配置有关数据库中的表名称、字段名称等是否支持大小写的问题,默认都是小写。1.2.3配置MySQL5.配置服务模块完成服务模块配置。1.2.3配置MySQL6.配置路由模块MySQLRouter是InnoDBCluster(MySQLshell+Router+masterslavereplication)的一部分,轻量级中间件,在应用和后端数据库之间起到透明的路由分发的作用。建议Router与应用部署在一起,这样可以使应用通过socket连接Router,减少网络延迟,MySQL无需创建额外的账号给Router。1.2.3配置MySQL7.实例配置MySQL提供了部分数据库实例,这里需要填入账号和密码,安装程序会使用该账号进行登录MySQL,并创建提供的数据库实例。1.2.3配置MySQL8.完成MySQL8.0安装这里可以复制安装日志,选择结束安装打开MySQL工作台或MySQLShell。1.2.3配置MySQL9.MySQLWorkbenchMySQLWorkbench是一款专为MySQL设计的ER/数据库建模工具。为数据库管理员、程序开发者和系统规划师提供可视化设计、模型建立、以及数据库管理功能。1.2.3配置MySQL10.MYSQLShellMYSQLShell提供了全新的连接MYSQL的方式,一个满足各种人群连接MYSQL的方式。例如通过MySQLShell,我们可以在WINDOWS上链接在LINUX上的MYSQL。1.2.3配置MySQL11.MySQL环境变量的配置(1)右击桌面【此电脑】,选择属性,进入“设置”对话框,如图1-29所示。1.2.3配置MySQL11.MySQL环境变量的配置(2)单击图1-29中的【高级系统变量】命令,进入“系统属性”对话框,如图1-30左图所示。单击【环境变量】命令,进入“环境变量”对话框,如图1-30图中所示,在系统变量中选择PATH,点击【编辑】按钮,进入“编辑环境变量”对话框。单击【新建】按钮,然后输入MySQL8.0.29的安装路径下的bin目录的路径,如图1-30图右所示。1.2.3配置MySQL11.MySQL环境变量的配置(3)最后连续单击两个【确定】按钮,关闭这三个对话框,返回到“设置”对话框,再单击右上角的,关闭“设置”对话框,完成环境变量的配置。1.2.4MySQL目录结构(1)bin目录:用于放置一些可执行文件,如mysql.exe、mysqlshow.exe等。(2)data目录:用于放置一些日志文件以及数据库。(3)docs目录:存放一些文档。(3)include目录:用于放置一些头文件,如mysql.h、mysqlx_ername.h。(4)lib目录:用于放置一系列的库文件。(5)share目录:用于存放字符集等信息。1.2.5启动与停止MySQL服务1.通过Windows服务管理器启动MySQL服务1.2.5启动与停止MySQL服务2.通过DOS命令启动MySQL服务通过DOS命令启动MySQL服务的具体命令如下:C:\ProgramFiles\MySQL\MySQLServer8.0\bin>netstartmysql80停止MySQL服务,具体命令如下:C:\ProgramFiles\MySQL\MySQLServer8.0\bin>netstopmysql801.2.6登录与退出MySQL服务器1.使用相关命令登录登录MySQL数据库可以通过DOS命令完成,具体命令如下:在上述命令中,mysql为登录命令,-h后面的参数是服务器的主机地址,由于客户端和服务器在同一台机器上,因此输入localhost或者IP地址都可以,如果是本地登录可以省略该参数,-u后面的参数是登录数据库的用户名,这里为root,-p后面是登录密码,接下来就在命令行窗口中输入如下命令:C:\ProgramFiles\MySQL\MySQLServer8.0\bin>mysql-hlocalhost-uroot-p1.2.6登录与退出MySQL服务器2.使用MySQLShell登录可以通过一种简单的方式来登录MySQL,该方式需要记住MySQL的登录密码。1.2.7MySQL的图形窗口管理工具1.NavicatfoMySQL2.SQLyog3.PhpMyAdmin4.MySQLWorkbench(1)下载版本的MySQL8.029免安装版的安装包(2)创建配置文件my.ini,配置其参数(3)使用记事本打开my.ini文件,录入并保存如下基本内容(4)实践训练本项目主要讲解了数据库的基础知识、MySQL的安装与配置以及MySQL的使用。通过本项目的学习,希望初学者真正掌握MySQL数据库的基础知识,并且学会安装与配置MySQL,为后面章节的学习奠定扎实的基础。项目二建立和管理数据库目录/Contents0102数据库基础知识建立和管理数据库学习目标学习CREATE、ALTER、DROP的基本语法格式;学习数据库的创建、修改、删除的方法。知识目标掌握不同语句格式进行数据库信息查看技能;掌握应用CREATE语句进行创建数据库方法;掌握应用ALTER与DROP语句进行数据库修改与删除操作。技能目标培养学生具备一定的逻辑思维和综合分析能力,能够正确运用CREATE、ALTER、DROP语句管理数据库;培养学生具备适应职业变化的能力以及持续学习新知识的能力。素质目标任务2.1数据库基础知识1.选择数据库要查看某一个数据库,我们首先要知道如何选择数据库,并将当前用户所处的路径切换至该数据库,其语法格式如下:mysql>USE数据库名;通过上述命令可以得知,USE后面接某个数据库的名字,即可成功选择数据库。【实例2-1】选择information_schema数据库,SQL语句如下所示。mysql>USEinformation_schema;2.1.1MySQL系统数据库实例结果图2.查看当前数据库当我们想知道当前用户处于哪一个数据库的时候,可以通过SELECT语句查看当前所处于哪一个数据库,其命令如下:mysql>SELECTDATABASE();通过上述命令可以得知,SELECT代表查询DATABASE()代表数据库,执行以上命令即可查询当前用户所处数据库。2.1.1MySQL系统数据库执行结果图3.查看数据库系统服务版本当我们想知道Mysql数据库服务版本时,可以通过SELECT关键字进行查询,其基本语法格式如下:mysql>SELECT@@VERSION;其中SELECT代表查询,@@VERSION代表当前数据库系统服务版本,执行上述命令之后,可以查看到当前数据库系统服务版本。2.1.1MySQL系统数据库执行结果图4.查看当前用户当我们需要查看当前登录的用户是什么的时候,也可以通过SELECT关键字进行查询。其基本语法格式如下:mysql>SELECTUSER();其中SELECT代表查询,USER()代表当前数据库登录用户,执行上述命令之后,可以查看到当前登录用户名。2.1.1MySQL系统数据库执行结果图5.查看数据库属性当我们想了解某个数据库的属性时,可以通过以下语法格式进行查看:mysql>SHOWCREATEDATABASE数据库名;其中数据库名即为要查看的数据库名字。【实例2-2】查看information_schema数据库属性,SQL语句如下所示。mysql>SHOWCREATEDATABASEinformation_schema;2.1.1MySQL系统数据库执行结果图6.查看警告信息在数据库命令的执行过程中,会出现警告信息,这些信息很容易会被忽略,我们可以通过下述命令格式进行查看:mysql>SHOWWARNINGS;以下将介绍常见的警告信息代号及描述。1265:警告是字段长度不够,导入的是被系统自动裁剪后的数据。1366:数据的字符集不对。1262:导入的数据有一列多余。2.1.1MySQL系统数据库执行结果图7.Mysql注释符Mysql中包含注释符,对某一行或多行命令进行注释解释。Mysql中包含的注释符有三种:2.1.1MySQL系统数据库#注释内容代表单行注释,表示从#开始,后面的内容都为注释内容。--注释内容代表单行注释,特别注意的是,--后面有一个空格。/*注释内容*/代表多行注释,从/*开始再到*/结束,8.系统数据库详细介绍当下载完数据库软件之后,刚刚初始化的MySQL包含几个最原始的数据库,分别为:information_schema数据库:information_schema数据库是MySQL的原始数据库,提供了访问数据库元数据的几种方式。parformance_schema数据库:这个是MySQL的核心数据库,类似于SQLServer中的master表,其主要存储了数据库的用户、权限设置、关键字等MySQL自己需要使用的控制和管理信息。mysql数据库:MySQL8.0开始支持原子数据定义语言(DDL)语句。此功能称为原子DDL。sys数据库:这个库是通过视图的形式把information_schema和performance_schema结合起来。2.1.1MySQL系统数据库2.1.1MySQL系统数据库1.information_schema数据库是Mysql的原始数据库,在Mysql中,information_schema数据库准确来说是信息数据库,该数据库保存了Mysql服务器维护的其他的所有数据库的信息。information_schema数据库中包含了16个表,每个表存储的信息不同。通过下列Sql语句可以查询information_schema数据库中包含哪些表mysql>USEinformation_schema;mysql>SHOWTABLES;下列将介绍information_schema数据库中部分表信息:SCHEMATA表:提供了当前mysql实例中所有数据库的信息。TABLES表:提供了关于数据库中的表的信息(包括视图)。COLUMNS表:提供了表中的列信息。STATISTICS表:提供了关于表索引的信息。USER_PRIVILEGES(用户权限)表:给出了关于全程权限的信息。2.performance_schema数据库Mysql5.5版本更新了性能优化引擎,这个功能默认是不开启的,需要设置特定的参数:performance_schema才可以开启该功能,这个参数只能修改f配置文件才能修改成功。我们可以使用下述命令查看该数据库拥有的数据表。mysql>USEperformance_schema;mysql>SHOWTABLES;performance_schema数据库中最重要的表为以下几类:setuptable:设置表,配置监控选项。currenteventstable:记录当前那些thread正在发生什么事情。historytable:发生的各种事件的历史记录表。summarytable:对各种事件的统计表。2.1.1MySQL系统数据库3.mysql数据库是核心数据库,类似于sqlserver中的master表,其主要存储了数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。不可以删除,如果对Mysql不清楚不了解的话,不要轻易修改这个数据库里面的表信息。通过下列Sql语句可以查询mysql数据库中包含哪些表mysql>USEmysql;mysql>SHOWTABLES;2.1.1MySQL系统数据库4.sys数据库这个库是通过视图的形式把information_schema和performance_schema结合起来,查询出更加令人容易理解的数据存储过程可以可以执行一些性能方面的配置,也可以得到一些性能诊断报告内容。因为sys数据库结合了information_schema和performance_schema数据库,所以需要启用performance_schema(即将该参数设置为ON),这样sys数据库的很多功能才可以进行使用,同时,如果需要访问该数据库的话,还必须拥有管理员权限。通过下列Sql语句可以查询sys数据库中包含那些内容mysql>USEsys;mysql>SHOWTABLES;2.1.1MySQL系统数据库查看数据库,就是查看该数据库中包含了哪些内容,首先,我们可以通过SHOWDATABASES命令查看所有数据库,其次当前用户的路径要处于我们要查看的数据库,采用USE数据库名命令将当前用户切换至该数据库,用户切换至该数据库之后,使用SHOWTABLES命令查看该数据库包含的表。2.1.2查看数据库2.1.2查看数据库其基本语法格式如下所示。SHOWDATABASES;USE数据库名;SHOWTABLES;【实例2-3】看MySQL所有初始数据库,并具体查看mysql数据库中包含的表。SQL语句如下所示。mysql>SHOWDATABASES;mysql>USEmysql;mysql>SHOWTABLES;执行结果图2.1.2查看数据库

【实例2-4】更改用户所处数据库为information_schema数据库,并查看information_schema数据库的信息。SQL语句如下所示:mysql>USEinformation_schema;mysql>SHOWTABLES;执行结果图MySQL中包含了很多的字符集,要查看字符集,我们首先要知道字符集是什么,字符集具体是指某个字符范围的编码规则。MySQL中主要有四个字符集级别,分别为:服务器级别,数据库级别,表级别以及列级别,若低级别的字符集没有特别设置的话会自动集成高级别的字符集设置,就比如数据库的字符集没有设置,就会自动继承服务器的字符集设置。2.1.3查看字符集2.1.3查看字符集MySQL中有很多字符集,以下介绍几个常用的字符集:Utf8字符集:收录所有字符,而且在不断扩充,兼容ASCII字符集,采用长编码方式,编码一个字符需要1~4个字节。ASCII字符集:共收录128个字符,包括空号,标点符号,数字,小写字母和不可见字符等,采用一个字节进行编码。ISO8859-1字符集:收录256个字符,在ASCII字符集上扩充,也使用一个字节进行编码,字节别名latin1。GB2312字符集:兼容ASCII字符集,如果该字符集在ASCII字符集中,则采用1字节编码,否则为2字节编码。GBK字符集:在GB2312字符集上进行扩容。2.1.3查看字符集我们可以通过以下命令查看MySQL支持的字符集:mysql>SHOWCHARACTERSET;在结果集中:Charset列:代表字符集的名字。Description列:是对相对于的字符集描述。Defaultcollation列:为字符集的默认校对规则。Maxlen列:为该字符集中一个字符占用的最大字节数。执行结果图字符集中有着排序规则,从严格意义来说,排序规则依赖于字符集,排序规则一般来说是代表对字符集中字符串的比较,排序而制定的规则,一个字符集可以于多种排序规则对应,但一种排序规则只对应一个字符集,而两个不同的字符集之间不能存在相同的排序规则。我们可以通过下述命令格式查看某一个字符集的对应排序规则。mysql>SHOWCOLLATIONLIKE‘字符集名’;其中字符集名为要查看的字符集。2.1.3字符集——排序规则排序规则的后缀是有特殊意义的,一般来说,根据后缀的名称不同可以知道排序规则是否区分大小写,是否区分重音,是否二进制等。下面为部分后缀说明:_ci:不区分大小写_cs:区分大小写_ai:不区分重音_as:区分重音_bin:二进制2.1.3字符集排序规则当我们要知道某一个数据库的排序规则时,可以通过以下命令进行查看。mysql>USE数据库名;mysql>SHOWVARIABLESLIKE'collation_database';要想知道某一个数据库的排序规则时,我们先通过USE关键字选择数据库,而后通过SHOW命令进行查看。【实例2-5】查看information_schema数据库排序规则,具体命令如下所示。mysql>USEinformation_schema;mysql>SHOWVARIABLESLIKE'collation_database';2.1.3字符集排序规则执行结果图要知道MySQL的存储引擎,我们首先要知道存储引擎是什么?存储引擎其实抽象来说就是对于数据库数据的一种存取机制,如何实现对数据的存储,如何对存储的数据建立对应的索引以及如何更新,查询数据等多类技术的实现方法。MySQL较为常用的引擎有四个,分别是:

MyISAM存储引擎innoDB存储引擎MEMORY存储引擎ARCHIVE存储引擎2.1.4数据库存储引擎1.MyISAM存储引擎存放的位置:如果采用MyISAM存储引擎,数据库文件类型就包括.frm、.MYD、.MYI,默认存放位置是C:\DocumentsandSettings\AllUsers\ApplicationData\MySQL\MySQLServer8.*\data。存放的方式:这类存储引擎不支持事务,不支持行级锁,只支持并发插入的表锁,主要用于高负载的SELECT。优缺点:优势在于该引擎占用的空间小,处理SQL语句速度快。缺点是不支持事务的完整性和并发性。2.1.4MyISAM存储引擎2.InnoDB存储引擎:存储位置:如果采用InnoDB存储引擎,数据库文件类型就包括.frm、ibdata1、.ibd,存放位置有两个,.frm文件默认存放位置是C:\DocumentsandSettings\AllUsers\ApplicationDataMySQL\MySQLServer8.*\data,ibdata1、.ibd文件默认存放位置是MySQL安装目录下的data文件夹。innodb存储引擎的mysql表提供了事务,回滚以及系统崩溃修复能力和多版本迸发控制的事务的安全。优缺点:InnoDB的优势在于提供了良好的事务处理、崩溃修复能力和并发控制。缺点是读写效率较差,占用的数据空间相对较大。2.1.4innoDB存储引擎3.MEMORY存储引擎该存储引擎与前面的存储引擎相比有点不一样,该引擎是使用存储在内存中的数据来创建表,而且所有的数据也都会在内存中存储。该存储引擎默认使用哈希(HASH)索引,其速度比使用B+树或B-树型要快,如果希望使用B树型,则在创建的时候可以引用2.1.4MEMORY存储引擎4.ARCHIVE存储引擎ARCHIVE存储引擎非常适合存储大量的、作为历史记录的数据,与InnoDB和MyISAM这两种引擎不同的是,ARCHIVE引擎提供了压缩功能,拥有非常快速的插入速度,但是ARCHIVE引擎不支持索引,所以查询功能相对于其他引擎较差一些。2.1.4ARCHIVE存储引擎我们可以通过以下命令查看MySQL支持的存储引擎:mysql>SHOWENGINES;查询结果中:EnginoSavepoints:为引擎名字,Support:表示为当前版本是否支持该引擎,DEFAULT:为默认存储引擎,Comment:为引擎具体包含的内容。Transactions:为该引擎是否支持事务,XA:为是否支持分布式事务。2.1.4查看存储引擎执行结果图(1)了解数据库知识及基础命令(2)熟悉如何查看数据库(3)了解存储引擎(4)熟悉常用存储引擎(5)通过命令查看存储引擎(6)了解字符集及字符集排序规则(7)熟悉常用字符集(8)通过命令查看字符集表任务4.1添加数据小结2.1.5任务实施——完成对系统数据库的查看任务2.2建立和管理数据库1.CREATE语句直接创建数据库任务2.2.1创建数据库想MySQL创建新的数据库时,可以在CREATE语句中直接创建出库,但是存在即报错,其语法格式如下所示。CREATEDATABASE数据库名;在上述语法格式中,“数据库名”表示数据库的名称。【实例2-3】创建数据库xsgl,SQL语句如下所示。mysql>CREATEDATABASExsgl; 执行结果如图2-17所示。

图2-17创建数据库xsgl从执行结果可以看出,CREATE语句成功执行。其中QueryOK表示查询成功;1rowaffected(0.01sec)表示创建了1行记录,用时0.01秒。添加完成后,为了验证记录是否添加成功,使用SHOWDATABASE语句查看数据库的记录。查询结果如图2-18所示。

图2-18查询创建数据库记录任务2.2.1创建数据库

在MySQL中,可以通过判断数据库是否存在来创建数据库,其基本的语法格式如下示:

CREATEDATABASEIFNOTEXISTS数据库名

上述格式中,“数据库名”用于指所创建的数据库名。

【实例2-4】创建数据库xsgl,SQL语句如下所示。

mysql>CREATEDATABASEIFNOTEXISTSxsgl;

执行结果如图2-19所示。

图2-19创建数据库xsgl2.CREATE语句判断是否存在创建数据库任务2.2.1创建数据库SQL执行成功后,因为在之前实验中创建过xsgl,它也不会创建这个库,查询结果如图2-20所示。

图2-20查询数据库上述结果来看,创建相同名称的数据库并不会创建,依旧是以前的那个数据库。任务2.2.1创建数据库3.CREATE语句创建数据库并设置字符集在MySQL中,可以创建数据库并设置数据库的字符集,其基本的语法格式如下示。

CREATEDATABASE数据库名CHARACTERSET字符集;上述格式中,“数据库名”用于指你所创建的数据库的名字,“字符集”是你所指定的字符集格式。【实例2-5】创建数据库xsgl1,并设置字符集为UTF-8,SQL语句如下所示。

mysql>CREATEDATABASExsgl1DEFAULTCHARACTERSETutf8;执行结果如图2-21所示。

图2-21创建数据库xsgl1任务2.2.1创建数据库SQL执行成功后,成功创建数据库xsgl1,查询结果如图2-22所示。

图2-22查询数据库任务2.2.1创建数据库若想修改原有MySQL数据库的时,可以使用ALTER语句修改数据库,使想能够更改数据库的整体特征,其语法格式如下所示。ALTER{DATABASE|SCHEMA}[db_name]alter_option...

alter_option:{[DEFAULT]CHARACTERSET[=]charset_name|[DEFAULT]COLLATE[=]collation_name

|[DEFAULT]ENCRYPTION[=]{'Y'|'N'}|READONLY[=]{DEFAULT|0|1}}上述格式中,“db_name”用于指你所要修改的数据库名。“alter_option”用于指所要修改的参数。

如果省略数据库名称,则该语句将应用于默认数据库。在这种情况下,如果没有默认数据库,则会发生错误。任务2.2.2修改数据库【实例2-6】修改数据库xsgl1,修改为只读形式,SQL语句如下所示。

mysql>ALTERDATABASExsgl1READONLY=1;

执行结果如图2-23所示。SQL执行成功后,成功修改数据库xsgl1的读写模式,查询结果如图2-24所示。从查询结果来看,xsgl1的读写模式已经进行了更改图2-23修改数据库xsgl1

图2-24查询数据库详细信息任务2.2.2修改数据库只读模式会影响下面的实验,在这里使用如下语句修改会读写模式。

mysql>ALTERDATABASExsgl1READONLY=0;【实例2-7】修改数据库xsgl1,修改字符集,SQL语句如下所示。

mysql>ALTERDATABASExsgl1CHARACTERSETGBK;执行结果如图2-25所示。图2-25修改数据库字符集任务2.2.2修改数据库SQL执行成功后,成功修改数据库xsgl1的字符集。查询结果如图2-26所示。

从查询结果来看,xsgl1的字符接格式已经进行了更改GBK字符集模式仅供参考,修改完以后见效果,推荐使用如下命令修改回UTF-8字符集模式。

mysql>ALTERDATABASExsgl1CHARACTERSETUTF8;图2-26查询数据库详细信息任务2.2.2修改数据库【实例2-8】修改数据库xsgl1,修改数据库是否加密,SQL语句如下所示。

ALTERDATABASExsgl1DEFAULTENCRYPTION='Y';

执行结果如图2-27所示。SQL执行成功后,成功修改数据库xsgl1的加密模式,查询结果如图2-28所示。图2-28查询数据详细信息图2-27修改数据库密码模式任务2.2.2修改数据库1.DROP语句直接删除数据库想MySQL删除数据库时,可以在DROP语句中直接删除数据库,其语法格式如下所示。

DROPDATABASE数据库名;上述格式中,“数据库名”用于指你所创建的数据库的名字。【实例2-9】删除数据库xsgl,SQL语句如下所示。

mysql>DROPDATABASExsgl;执行结果如图2-29所示。图2-29删除数据库xsgl任务2.2.3删除数据库SQL执行成功后,成功删除数据库xsgl,查询结果如图2-30所示。

从查询结果可以看到,xsgl数据库已经被删除了。图2-30查询数据库任务2.2.3删除数据库本项目主要讲解了创建、修改和删除数据的基本操作,这些内容都是本项目的重点,也是数据库开发基础操作之一。读者在学习时一定要多加练习,在实际操作中掌握其内容,为以后的数据操作学习和数据库开发奠定坚实的基础。任务4.1添加数据小结1、2.2.4任务实施2、实践训练课后任务谢谢观看项目三创建与管理表目录/Contents010203数据表基本知识数据表的基本操作数据完整性约束04索引学习目标了解数据类型,学会SQL语句中不同类型数据的表示方式;学习数据完整性约束的概念;学习创建数据表与管理表的基本语法格式;学习索引的概念。知识目标掌握数据表的基本操作,会对数据表进行增删改操作;掌握数据完整约束的使用,学会使用不同的约束来保证数据正确性的能力;掌握索引的作用,会创建和删除索引。技能目标培养学生做任何事要讲究方法,提高效率的能力;培养学生能够遵守规则,强化制度约束,学会责任担当。素质目标任务3.1数据表基本知识数据表是存储数据的基本单位,是由行和列组成的二维表,通常列称为字段,行称为记录。建立数据表时,需要对数据表的字段进行详细定义。数据表的字段定义信息包括数据类型、长度、是否允许为空、是否键值、约束条件等,如下表所示。任务3.1数据表基本知识xuesheng表字段名称数据类型可否为NULL描述备注xhCHAR(3)否学号主键xmVARCHAR(4)否姓名唯一xbENUM('F','M')否性别默认值为'M'csrqDATE可出生日期'2000-01-01'jgVARCHAR(4)可籍贯

lxfsCHAR(11)否联系方式

zydmCHAR(2)否专业代码外键xqSET('music','art','sport','technology')可兴趣

从下面两个方面来了解数据表的基本知识:(1)查看数据表及其结构;(2)数据类型。任务3.1数据表基本知识3.1.1查看数据表1.查看当前数据库包含的表语法格式如下所示。SHOWTABLES上面的语句是查看当前数据库中的数据表,注意需要先选择当前数据库,再通过查看语句查看数据库中的表。【实例3-1】选择系统数据库mysql,查看mysql数据库包含的所有数据表。mysql>USEmysql;mysql>SHOWTABLES;【提示】(1)系统数据库mysql中的用户信息表user存储着允许登录服务器的用户信息;(2)help开头的4个表保存了HELP指令的检索表。3.1.1查看数据表2.查看表结构查看数据表结构的语法格式如下所示。DESC[RIBE]表名语句功能是查看指定表的结构,其中DESC[RIBE]可缩写为DESC,[]中的字符可省略,表名为查看的数据表名称。【实例3-2】查看mysql数据库user表的结构。mysql>USEmysql;mysql>DESCuser;【提示】(1)Field表示表的字段名称;

(2)Type表示字段值的数据类型;(3)Null表示字段值是否为空值;

(4)Key表示字段是否为键,例如主键、外键、唯一键;(5)Default表示默认值;

(6)Extra表示其他信息,例如自增字段标识等。3.1.1查看数据表3.查看表定义脚本其语法格式如下:SHOWCREATETABLE表名语句功能是查看指定表的定义语句,包括使用字符集和字符排序规则。【实例3-3】查看mysql数据库user表的定义脚本。mysql>USEmysql;mysql>SHOWCREATETABLEuser\G3.1.1查看数据表4.查看MySQL的数据类型查看MySQl的数据类型的语法格式如下所示。HELPDATATYPES或HELP数据类型名语句功能是查看MySQL支持的数据类型或指定数据类型信息【实例3-4】查看MySQL支持的数据类型。mysql>HELPDATATYPES;【实例3-5】查看VARCHAR类型。mysql>HELPVARCHAR;3.1.2数据类型MySQL数据库提供了多种数据类型,其中包括整数类型、浮点数类型、定点数类型、日期和时间类型、字符串类型和二进制类型。1.整数类型3.1.2数据类型2.浮点数类型和定点数类型DECIMAL类型的有效取值范围是由M和D决定的,其中,M表示的是数据的长度,D表示的是小数点后的长度。3.1.2数据类型3.日期与时间类型需要注意的是,如果插入的数值不合法,系统会自动将对应的零值插入数据库中。日期型常量用引号括起来,例如“2000-01-01”。3.1.2数据类型4.字符串和二进制类型下面针对表中常用的数据类型进行讲解(1)CHAR和VARCHAR类型CHAR和VARCHAR类型都用来表示字符串数据,不同的是,VARCHAR可以存储可变长度的字符串。表示方式:CHAR(M)或VARCHAR(M) 3.1.2数据类型当数据为CHAR(4)类型时,不管插入值的长度是多少,所占用的存储空间都是4个字节。而VARCHAR(4)所对应的数据所占用的字节数为实际长度加1。(2)TEXT类型TEXT类型用于表示大文本数据,例如,文章内容、评论等。(3)ENUM类型ENUM类型又称为枚举类型,定义ENUM类型的数据格式如下所示。ENUM('值1','值2','值3'……'值n')

ENUM类型的数据只能从枚举列表中取,并且只能取一个。需要注意的是,枚举列举中的每个值都有一个顺序编号,MySQL中存入的就是这个顺序编号,而不是列表中的值。(4)SET类型SET类型用于表示字符串对象,它的值可以有零个或多个:SET('值1','值2','值3'……'值n')MySQL中存入的也是顺序编号。它们的区别是:ENUM类型允许重复对象,,SET类型不允许重复对象。3.1.2数据类型(1)查看数据表;(2)数据类型。

数据类型有多种,需要记住常用的数据类型小结(1)选择sys系统数据库。(2)查看sys系统数据库中所有表。(3)查看sys系统数据库中metrics表的定义脚本。(4)查看INT、CHAR、SET、ENUM、DATE、DATETIME、TINYINT、SMALLINT、FLOAT、DECIMAL等常用数据类型。课后任务任务3.2数据表的基本操作 数据表的基本操作包括以下五个方面(1)创建数据表 (2)查看数据表 (3)修改数据表 (4)复制数据表 (5)删除数据表 任务3.2数据表的基本操作 3.2.1创建数据表数据库创建成功后,就需要创建数据表,其基本语法格式如下:CREATETABLE表名(字段名1,数据类型[完整性约束条件],字段名2,数据类型[完整性约束条件],......字段名n,数据类型[完整性约束条件],)在上述语法格式中,“表名”指的是创建的数据表名称,“字段名”指的是数据表的列名,“完整性约束条件”指的是字段的某些特殊约束条件。【提示】在操作数据表之前,应该使用“USE数据库名”指定操作是在哪个数据库中进行,否则会抛出“Nodatabaseselected”错误。3.2.1创建数据表【实例3-6】创建学生表xuesheng的结构,如表3-8所示。3.2.1创建数据表实例3-6的SQL语句如下:mysql>CREATEDATABASEIFNOTEXISTxsgl;mysql>USExsgl;mysql>CREATETABLExuesheng(xhchar(3),xmvarchar(4),xbenum('M','F'),csrqdate,jgvarchar(4),lxfschar(11),zydmchar(2),xqset('music','art','sport','technology'));mysql>SHOWTABLES3.2.2查看数据表在MySQL中,查看数据表的方式有两种,具体如下:1.使用SHOWCREATETABLE查看数据表【实例3-7】使用SHOWCREATETABLE语句查看xuesheng表。mysql>SHOWCREATETABLExuesheng;或mysql>SHOWCREATETABLExuesheng\G加上参数“\G”,会使显示结果整齐美观。2.使用DESCRIBE语句查看数据表【实例3-8】使用DESCRIBE语句查看xuesheng表。mysql>DESCRIBExuesheng;3.2.3修改数据表如果表中的某些字段有错误,需要对表进行修改。比如,修改表名、修改字段名等等。在MySQL中,修改数据表的操作都是使用ALTERTABLE语句修改表名,下面学习五种修改表的方法。(1)修改表名;(2)修改字段名及其类型;(3)修改字段的数据类型;(4)添加字段;(5)删除字段;(6)修改字段的排列位置。3.2.3修改数据表1.修改表名表名的基本语法格式如下所示。ALTERTABLE旧表名RENAME[TO]新表名;“旧表名”指的是修改前的表名,“新表名”指的是修改后的表名,关键字TO是可选的。【实例3-9】将数据库xsgl中的xuesheng表名改为tb_xuesheng表。mysql>ALTERTABLExueshengRENAMETOtb_xuesheng;2.修改字段名及其类型修改字段名及其类型的基本语法格式如下所示。ALTERTABLE表名CHANGE旧字段名新字段名新数据类型;【实例3-10】将数据表tb_xuesheng中的xm字段改为username,数据类型保持不变。mysql>ALTERTABLEtb_xueshengCHANGExmusernameVARCHAR(4);3.2.3修改数据表3.修改字段的数据类型在MySQL中修改字段数据类型的基本语法格式。ALTERTABLE表名MODIFY字段名数据类型;【实例3-11】将数据表tb_xuesheng中的xh字段的数据类型由char(3)修改为INT(11)。mysql>ALTERTABLEtb_xueshengMODIFYxhINT(11);4.添加字段添加字段的基本语法格式。ALTERTABLE表名ADD新字段名数据类型[约束条件][FIRST|AFTER已存在字段名]“新字段名”为添加字段的名称,“FIRST”为可选参数,用于将新添加的字段设置为表的第一个字段,“AFTER”也为可选参数,用于将新添加的字段添加到指定的“已存在字段名”的后面。【实例3-12】在数据表tb_xuesheng中添加一个没有约束条件的INT类型的字段age。mysql>ALTERTABLEtb_xueshengADDageINT(10);【注意】如果列类型改变,导致数据存储不了该怎么办?例:int改smallint;如果不匹配数据将丢失,在mysql严格模式下不能修改。3.2.3修改数据表5.删除字段删除字段的基本语法格式如下:ALTERTABLE表名DROP字段名;【实例3-13】删除tb_xuesheng表中的age字段。mysql>ALTERTABLEtb_xueshengDROPage;6.修改字段的排列位置基本语法格式如下:ALTERTABLE表名MODIFY字段名1数据类型FIRST|AFTER字段名2“FIRST”为可选参数,指的是将字段1修改为表的第一个字段;“AFTER字段名2”是将字段1插入到字段2的后面。【实例3-14】将数据表tb_xuesheng的username字段修改为表的第一个字段。mysql>ALTERTABLEtb_xueshengMODIFYusernameVARCHAR(4)FIRST;3.2.4复制数据表1.复制表结构及记录到新表CREATETABLE新表名[AS]SELECT语句上述语句的功能是复制表结构字段定义及其检索出来的记录,创建一个新表,将结果保存到新表中,但不复制主键、索引、自动编号等。其中的AS可以省略。【实例3-16】复制数据表tb_xuesheng到tb_xuesheng_1中。mysql>CREATETABLEtb_xuesheng_1ASSELECT*FROMtb_xuesheng;mysql>SHOWCREATETABLEtb_xuesheng_1\G3.2.4复制数据表2.只复制表结构CREATETABLE新表名[AS]SELECT*源表名WHEREFALSE或者CREATETABLE新表名LIKE源表名上述语句的功能是复制表结构字段定义,包括主键、索引、自动编号,不复制记录。源表名是被复制的表名。【实例3-17】用两种方法复制数据表tb_xuesheng到tb_xuesheng_2,tb_xuesheng_3中。mysql>CREATETABLEtb_xuesheng_2LIKEtb_xuesheng;mysql>CREATETABLEtb_xuesheng_3SELECT*FROMtb_xueshengWHEREFALSE;mysql>SHOWCREATETABLEtb_xuesheng_2\Gmysql>SHOWCREATETABLEtb_xuesheng_3\G3.2.5删除数据表基本的语法格式如下所示。DROPTABLE[IFEXISTS]表名;在上述格式中,“表名”指的是要删除的数据表,IFEXISTS为可选项,判断表名是存在,如果存在就删除表,如果不存在不做任何操作。【实例3-18】删除数据表tb_xuesheng,SQL语句如下。mysql>DROPTABLEtb_xuesheng;(1)创建数据表;

(2)查看数据表;

(3)修改数据表;

(4)复制数据表;

(5)删除数据表。 小结(1)创建学生管理数据库。(2)创建学生成绩表,并查看表的定义。(3)创建课程表,并查看表的定义。(4)创建学生基本情况表,并查看表的定义。(5)创建专业表,并查看表的定义。(6)显示xsgl数据库中所有数据表。(7)复制zhuanye表所有内容为zhuanye_1。(8)复制kecheng表结构为kecheng_1。(9)改名kecheng_1表为kecheng_2。(10)修改kecheng_2表的kcdm类型为char(3)。(11)修改kecheng_2表的kcdm名字为dm,类型为char(4)。(12)修改kecheng_2表,将kcmc移到dm的后面。(13)删除数据表kecheng_2。课后任务任务3.3数据完整性约束关系数据的完整性约束用于保证用户对数据库修改数据的一致性和正确性,用来防止数据库中存在不符合语义的数据,观察这两张表的结构及字段的约束条件。任务3.3数据完整性约束关系数据的完整性约束分为四种:1.域完整性域完整性要求输入的值应为指定的数据类型、取值范围,确定是否允许空和输入的值类型和范围是否有效,如xuesheng表中xb字段只能取男或女。2.实体完整性实体完整性要求每个实体记录都具有唯一标识,且不能为空,即表的所有主键不能取空。如xuesheng表中的xh。3.参照完整性参照完整性是两个关系表属性之间的引用参照的约束。如chengji表中的xh字段值必须是来自xuesheng表中的xh字段的值。4.用户定义的完整性用户定义的完整性是针对某一具体应用而定义的约束条件,它反映了在某具体应用业务中必须满足的条件。如chengji表中的pscj默认值为0。任务3.3数据完整性约束关系数据库的完整性,在DBMS中是通过各种约束技术来实现的。在MySQL中,定义了一些维护数据库完整性的规则,即表的约束。表3-9列举了常见的表的约束。任务3.3数据完整性约束【提示】可以在创建表时设置约束,也可以创建表后,通过修改表添加约束,请灵活应用约束来保证数据的完整性。3.3.2主键约束在MySQL中,主键约束分为两种,具体如下:1.单字段主键单字段主键指的是由一个字段构成主键,其基本的语法格式如下:字段名数据类型PRIMARYKEY【实例3-19】在xsgl数据库中创建一个数据表xuesheng表,如果存在课程表xuesheng,先删除再创建,并设置xh作为主键。mysql>CREATEDATABASEIFNOTEXISTSxsgl;mysql>USExsgl;mysql>DROPTABLEIFEXISTSxuesheng;mysql>CREATETABLExuesheng(xhchar(3)PRIMARYKEYCOMMENT'学号',xmvarchar(4)COMMENT'姓名',xbenum('M','F')COMMENT'性别',csrqdateCOMMENT'出生日期',jgvarchar(4)COMMENT'籍贯',lxfschar(11)COMMENT'联系方式',zydmchar(2)COMMENT'专业代码',xqset('music','art','sport','technology')COMMENT'兴趣’)COMMENT='学生基本情况表';3.3.2主键约束2.多字段主键多字段主键指的是多个字段组合而成的主键,其基本的语法格式如下所示。PRIMARYKEY(字段名1,字段名2,……字段名n)在上述格式中,“字段名1,字段名2,……字段名n”指的是构成主键的多个字段的名称。【实例3-20】在xsgl数据库中创建一个数据表chengji表,如果存在课程表chengji,先删除再创建,在表中将xh和kcdm两个字段共同作为主键,SQL语句如下。mysql>DROPTABLEIFEXISTSchengji;mysql>CREATETABLEchengji(xhchar(3)COMMENT'学号',kcdmchar(3)COMMENT'课程代码',pscjtinyint(3)COMMENT'平时成绩',sycjtinyint(3)COMMENT'实验成绩',kscjtinyint(3)COMMENT'考试成绩',zhcjdecimal(5,1)COMMENT'综合成绩',PRIMARYKEY(xh,kcdm))COMMENT='学生成绩表';【注意】每个数据表中最多只能有一个主键约束,定义为PRIMARYKEY的字段不能有重复值,且不能为NULL值。3.3.2主键约束2.多字段主键多字段主键指的是多个字段组合而成的主键,其基本的语法格式如下所示。PRIMARYKEY(字段名1,字段名2,……字段名n)在上述格式中,“字段名1,字段名2,……字段名n”指的是构成主键的多个字段的名称。【实例3-20】在xsgl数据库中创建一个数据表chengji表,如果存在课程表chengji,先删除再创建,在表中将xh和kcdm两个字段共同作为主键,SQL语句如下。mysql>DROPTABLEIFEXISTSchengji;mysql>CREATETABLEchengji(xhchar(3)COMMENT'学号',kcdmchar(3)COMMENT'课程代码',pscjtinyint(3)COMMENT'平时成绩',sycjtinyint(3)COMMENT'实验成绩',kscjtinyint(3)COMMENT'考试成绩',zhcjdecimal(5,1)COMMENT'综合成绩',PRIMARYKEY(xh,kcdm))COMMENT='学生成绩表';【注意】每个数据表中最多只能有一个主键约束,定义为PRIMARYKEY的字段不能有重复值,且不能为NULL值。3.3.3非空约束非空约束指的是字段的值不能为NULL,其基本的语法格式如下所示。字段名数据类型NOTNULL;【实例3-21】在xsgl数据库创建一个课程表kecheng,将表中的kcdm字段设置为主键,kcmc设置为非空约束,SQL语句如下。mysql>DROPTABLEIFEXISTSkecheng;mysql>CREATETABLEkecheng(kcdmchar(3)PRIMARYKEYCOMMENT'课程代码',kcmcvarchar(8)NOTNULLCOMMENT'课程名称',xfdecimal(3,1)COMMENT'学分')COMMENT='课程表’;mysql>DESCkecheng;3.3.4唯一约束唯一约束用于保证数据表中字段的唯一性,即表中字段的值不能重复出现。其基本的语法格式如下:字段名数据类型UNIQUE;【实例3-22】在xsgl数据库创建一个课程表zhuanye,将表中的zydm设置为主键,zymc字段设置为唯一约束。mysql>DROPTABLEIFEXISTSzhuanye;mysql>CREATETABLEzhuanye(zydmchar(2)PRIMARYKEYCOMMENT'专业代码',zymcvarchar(8)UNIQUECOMMENT'专业名称',ssyxvarchar(8)COMMENT'所属院系')COMMENT='专业表’;mysql>DESCzhuanye;3.3.5默认约束默认约束用于给数据表中的字段指定默认值,即当在表中插入一条新记录时,如果没有给这个字段赋值,那么,数据库系统会自动为这个字段插入默认值,其基本的语法格式如下所示。字段名数据类型DEFAULT默认值;【实例3-23】修改课程表kecheng,将表中的xf字段设置默认值为0。mysql>ALTERTABLEkechengMODIFYxfdecimal(3,1)DEFAULT0COMMENT'学分';3.3.6设置表的字段值自动增加自动增加使用AUTO_INCREMENT约束来实现,可以是任何整数类型。默认情况下,该字段的值是从1开始自增的,其基本语法格式如下。字段名数据类型AUTO_INCREMENT; 【实例3-24】修改课程表kecheng,为表增加一个字段id,将id字段设置为自动增加。mysql>ALTERTABLEkechengADDidINTPRIMARYKEYAUTO_INCREMENTCOMMENT'课程编号';3.3.7设置表的检查约束检查约束技术能够实现比主键更复杂的数据关联业务规则,使用CHECK关键字实现(MySQL8.0.16版本及以上才生效)。使用CHECK设置表字段约束的基本语法格式如下:字段名数据类型CHECK(条件); 【实例3-25】修改课程表kecheng,设置xf字段设置默认值为0,CHECK约束为xf的值必须大于等于0。mysql>ALTERTABLEkechengMODIFYxfdecimal(3,1)DEFAULT0CHECK(xf>=0)COMMENT'学分';3.3.8设置表的FORGIGNKEY约束FORGIGNKEY约束,即为外键约束,强制数据表与数据表之间的引用完整性。外键是数据表的特殊字段,表示了相关联的两张表的联系。由学生管理数据库的概念模型可以知道,学生表xuesheng与成绩chengji之间存在一对多的关系,即一位学生可以选修多门课程,所以有多个成绩。如图3-32所示。3.3.8设置表的FORGIGNKEY约束1.创建表时设置外键使用FORGIGNKEY设置表外键的基本语法格式如下所示。FORGIGNKEY(外键字段名)REFERENCES主键表(主键字段名)上述语句格式中的外键字段名与主键字段名可以同名,也可以不同名,一般情况下,它们的类型、长度是相同的。【提示】在主从表中,主表被从表引用的字段应该具有PRIMARYKEY约束或UNIQUE约束。【实例3-26】在xsgl数据库创建chengji表,如果存在chengji表先删除再创建。在表中将xh和kcdm两个字段共同作为主键,同时xh是外键,其值依赖于主键表xuesheng中的xh值。3.3.8设置表的FORGIGNKEY约束SQL语句如下所示:mysql>DROPTABLEIFEXISTSchengji;mysql>CREATETABLEchengji(xhchar(3)COMMENT'学号',kcdmchar(3)COMMENT'课程代码',pscjtinyint(3)DEFAULT0COMMENT'平时成绩',sycjtinyint(3)DEFAULT0COMMENT'实验成绩',kscjtinyint(3)DEFAULT0COMMENT'考试成绩',zhcjdecimal(5,1)DEFAULT0.0COMMENT'综合成绩',PRIMARYKEY(xh,kcdm),FOREIGNKEY(xh)REFERENCES

温馨提示

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

评论

0/150

提交评论