MySQL 8.0数据库管理与应用 课件 第1、2章 MySQL基础、数据库与表_第1页
MySQL 8.0数据库管理与应用 课件 第1、2章 MySQL基础、数据库与表_第2页
MySQL 8.0数据库管理与应用 课件 第1、2章 MySQL基础、数据库与表_第3页
MySQL 8.0数据库管理与应用 课件 第1、2章 MySQL基础、数据库与表_第4页
MySQL 8.0数据库管理与应用 课件 第1、2章 MySQL基础、数据库与表_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

第1章MySQL基础1.1.1数据库数据库是按照数据结构来组织、存储和管理数据的的仓库,数据库建立在计算机的存储设备上。在日常工作中,经常需要把一些相关的数据放进这样的“仓库”中,并根据管理的需要进行相应的处理。例如,企业或事业单位的人事部门通常会把本单位职工的基本情况(职工号、姓名、出生日期、性别、籍贯、工资、简历等)存放在一张表中,这张表就可以看成是一个数据库。有了这个“数据仓库”,便可以根据需要随时查询某个职工的基本情况,也可以查询工资收入在某个范围内的职工人数等。这些工作都能够在计算机上自动进行,人事管理的工作效率得到了极大提高。严格地说,数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据按照一定的数据模型组织和储存在一起、具有尽可能小的冗余度、较高的数据独立性和易扩展性等特点,并且可以在一定范围内为多个用户共享。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用程序提供服务,其数据结构独立于使用它的应用程序,对数据的添加、删除、修改和查询等操作通过软件进行统一管理和控制。1.1数据库基本概念1.1.2关系型数据库关系型数据库是建立在关系模型基础上的数据库,它借助于集合代数等数学概念和方法来处理数据库中的数据。关系模型是在上世纪70年代提出来的,直到今天它仍然是数据存储的标准。关系模型由关系数据结构、关系操作集合、关系完整性约束3个部分组成。现实世界中的各种实体以及实体之间的各种联系都可以使用关系模型来表示。简言之,关系模型就是指二维表模型,一个关系型数据库就是由二维表及其之间的联系所组成的数据组织。在关系模型中,关系可以理解为一张二维表,每个关系都具有一个名称,即表名。二维表中的行在数据库术语中通常称为记录或元组;二维表中的列称为字段或属性;字段的取值范围称为域,也就是字段的取值限制;一组可以唯一标识记录的字段称为关键字,称为主键,主键可以由一个或多个字段组成;关系模式是指对关系的描述,其格式为“表名(字段1,字段2,...,字段n)”,称为表结构。在关系型数据库中,通过在不同表之间创建关系可以将某个表中的字段链接到另一个表中的字段,从而防止出现数据冗余。1.1数据库基本概念1.1.3数据库管理系统数据库管理系统(DBMS)是一种管理数据库的软件,可以用于创建、使用和维护数据库。DBMS对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员(DBA)通过DBMS进行数据库的维护工作。DBMS可以使多个应用程序和用户使用不同方法来创建、修改和查询数据库。大部分DBMS提供数据定义语言(DDL)和数据操作语言(DML),允许用户定义数据库的模式结构和权限约束,实现添加数据、修改数据、删除数据和查询数据等操作。目前,比较流行的数据库管理系统有:Oracle、MySQL、SQLServer、PostgreSQL、DB2、Sybase、Access、SQLite、MarialDB、VisualFoxPro以及Informix等。1.1数据库基本概念1.1.4数据库系统数据库系统(DBS)通常由软件、数据库和数据库管理员组成,其中软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。数据库通过数据库管理系统进行统一管理,数据的添加、修改、删除和检索都要通过数据库管理系统来实现。数据库管理员负责创建、监控和维护整个数据库,使数据能够被任何拥有使用权限的人有效使用。1.1数据库基本概念1.1.5结构化查询语言结构化查询语言(SQL,StructuredQueryLanguage)是一种关系型数据库操作语言,它具有数据查询、数据定义、数据操作和数据控制功能,可以用于定义和管理数据库中的对象,也可以用于检索、插入、修改和删除关系型数据库中的数据。结构化查询语言包含以下6个部分。数据查询语言(DQL):通过数据检索语句从表中获取数据。关键字SELECT是数据查询语句中使用最多的动词,其他常用的关键字有WHERE,ORDERBY,GROUPBY以及HAVING。这些关键字也经常与其他类型的SQL语句一起使用。数据操作语言(DML):也称为动作查询语言,用于添加、修改和删除表中的记录,在DML语句中使用的动词主要包括INSERT、UPDATE和DELETE。事务处理语言(TPL):确保被DML语句影响的表的所有行及时得到更新,所使用的语句主要包括BEGINTRANSACTION、COMMIT和ROLLBACK。数据控制语言(DCL):通过GRANT或REVOKE进行授权或撤销授权,确定单个用户、角色和用户组对数据库对象的访问权限。数据定义语言(DDL):在数据库中创建新表或删除表,在表中创建索引等,也是动作查询的一部分。在DDL语句中使用的动词主要包括CREATE、ALTER和DROP。指针控制语言(CCL):用于对表中的单独行进行操作。所用语句包括DECLARECURSOR、FETCHINTO和UPDATEWHERECURRENT等。1.1数据库基本概念1.2.1什么是MySQLMySQL是当今最受欢迎的开源SQL数据库管理系统,由Oracle公司开发、分发并提供技术支持。MySQL官方网站(/)提供了有关MySQL软件的最新信息。MySQL是一种数据库管理系统MySQL是一种关系型数据库管理系统MySQL是一种开源软件MySQL数据库服务器非常快速、可靠、可扩展且易于使用MySQL服务器适用于客户端/服务器或嵌入式系统有大量的共享MySQL软件可以使用1.2MySQL概述1.2.2MySQL的主要特点跨平台性真正的多线程提供多种编程语言支持数据类型丰富安全性好处理大型数据库连接性好客户端和工具1.2MySQL概述1.2.3MySQL的版本MySQL企业版(EnterpriseEdition)

MySQL企业版包括最全面的高级功能,管理工具和技术支持,可实现最高级别的MySQL可扩展性,安全性,可靠性和正常运行时间。它降低了开发,部署和管理业务关键型MySQL应用程序的风险,成本和复杂性。MySQL标准版(StandardEdition)

MySQL标准版能够提供高性能和可扩展的联机事务处理(OLTP)应用程序。该版本包括InnoDB,使其成为完全集成事务安全、符合ACID规则的数据库。此外,通过MySQL复制可以提供高性能和可伸缩的应用程序。MySQL群集版(ClusterCarrierGradeEdition)

MySQL群集是集线性可扩展性和高可用性于一体的分布式数据库,它提供了内存中的实时访问,并在跨分区和分布式数据集之间保持事务一致性。它是为关键任务应用而设计的。MySQL社区版(CommunityEdition)

该版本是世界上最流行的开源数据库的免费下载版本,它在GPL许可下提供,并由一个庞大而活跃的开源开发人员社区提供支持。MySQL社区版可以在20多个平台和操作系统上使用,主要包括以下组成部分:SQL和NoSQL、MySQL文档存储、事务性数据字典、可插拔的存储引擎体系结构(InnoDB、NDB、MyISAM等)、MySQL复制、MySQL组复制、MySQLInnoDB群集、MySQL路由器、MySQL分区、存储过程、触发器、视图、性能架构、信息架构、MySQL连接器(ODBC、JDBC、.NET等)、MySQL工作台。1.2MySQL概述1.2.3MySQL的版本MySQL企业版(EnterpriseEdition)

MySQL企业版包括最全面的高级功能,管理工具和技术支持,可实现最高级别的MySQL可扩展性,安全性,可靠性和正常运行时间。它降低了开发,部署和管理业务关键型MySQL应用程序的风险,成本和复杂性。MySQL标准版(StandardEdition)

MySQL标准版能够提供高性能和可扩展的联机事务处理(OLTP)应用程序。该版本包括InnoDB,使其成为完全集成事务安全、符合ACID规则的数据库。此外,通过MySQL复制可以提供高性能和可伸缩的应用程序。MySQL群集版(ClusterCarrierGradeEdition)

MySQL群集是集线性可扩展性和高可用性于一体的分布式数据库,它提供了内存中的实时访问,并在跨分区和分布式数据集之间保持事务一致性。它是为关键任务应用而设计的。MySQL社区版(CommunityEdition)

该版本是世界上最流行的开源数据库的免费下载版本,它在GPL许可下提供,并由一个庞大而活跃的开源开发人员社区提供支持。MySQL社区版可以在20多个平台和操作系统上使用,主要包括以下组成部分:SQL和NoSQL、MySQL文档存储、事务性数据字典、可插拔的存储引擎体系结构(InnoDB、NDB、MyISAM等)、MySQL复制、MySQL组复制、MySQLInnoDB群集、MySQL路由器、MySQL分区、存储过程、触发器、视图、性能架构、信息架构、MySQL连接器(ODBC、JDBC、.NET等)、MySQL工作台。1.2MySQL概述1.2.4MySQL8.0的新特性数据字典原子DDL语句安全性角色支持密码管理控制FIPS模式支持资源管理InnoDB增强功能默认字符集由latin1变为utf8mb4系统表全部换成事务型的InnoDB表参数修改持久化新增降序索引1.2MySQL概述1.3.1MySQL的下载MySQL社区版8.0.16可以从MySQL官网上下载,其主要组件包括MySQL服务器、MySQLShell、MySQLWorkbench、MySQL路由、各种MySQL连接器、MySQL示例数据库以及MySQL文档等。所有这些组件都可以使用MySQL安装程序在安装向导提示下一次性完成。下载MySQL社区版8.0.16,需要注册一个Oracle网络账户。登录到该账户之后,即可下载MySQL社区版8.0.16安装程序。具体的下载网址如下:/downloads/windows/installer/8.0.html下载选项在具有联机连接的情况下运行MySQL安装程序,请在上面的mysql-installer-webcommunity-.msi行中单击“Download”按钮,安装程序文件名为mysql-installerweb-community-.msi。在没有联机连接的情况下运行MySQL安装程序,请在下面的mysql-installer-community-.msi行中单击“Download”按钮,安装程序文件名为mysql-installer-ommunity-.msi。1.3MySQL的下载和安装1.3.2MySQL的安装在Window10平台上安装MySQL社区版8.0.16的操作步骤运行安装程序,接受软件许可协议。选择安装类型。选择“DeveloperDefault”选项时,将安装开发MySQL应用程序所需的所有产品。选择是否安装MySQLforVisualStudio组件。完成MySQL组件安装。配置MySQL产品:配置独立的MySQL服务器实例,配置服务器类型和连接性,配置身份认证方式,设置MySQL账户和角色,配置Windows服务选项,应用MySQL服务器配置,完成MySQL服务器配置。配置MySQL路由,连接到MySQL服务器,通过运行SQL脚本来创建MySQL示例数据库。最终完成所有MySQL产品的配置过程。

1.3MySQL的下载和安装1.3.3MySQL服务管理1.图形界面方式使用Windows服务管理工具对MySQL服务进行管理。按Win+R组合键,当弹出“运行”对话框时,在“打开”文本框中输入“services.msc”,在“服务”列表中选择“MySQL8.0”服务项,使用工具栏中的按钮可以启动、停止、暂停或重启所选的服务。2.命令行方式启动MySQL服务:

netstartMySQL80停止MySQL服务:

netstopMySQL80安装MySQL服务(默认服务名为MySQL):

mysqldinstall<服务名>卸载MySQL服务:

mysqld--remove

1.3MySQL的下载和安装1.4.1MySQL命令行工具1.4MySQL程序介绍1.4.1MySQL命令行工具命令行工具mysql的使用方法1.调用mysql工具mysql-h<hostname>-u<username>-p<password>在“mysql>”提示符下输入一个SQL语句,并以“;”、“\g”或者“\G”结束,然后按回车键执行该语句。如果要退出mysql命令行工具,可以执行quit或exit命令。2.mysql选项mysql命令行工具提供了许多选项,其中多数选项都有短格式和长格式,这两种格式分别以“-”和“--”开头。如果选项后面还有参数,则使用短格式时直接跟参数,使用长格式时选项与参数用等号分隔。1.4MySQL程序介绍1.4.1MySQL命令行工具3.mysql命令mysql可以将发出的SQL语句发送到待执行的服务器,此外还有一些命令mysql可以由mysql自己解释。要查看这些命令,在mysql>提示下输入“help”或“\h:”。4.从文本文件执行SQL语句也可以事先将要执行的SQL语句保存到一个脚本文件(.sql)中,然后通过mysql从该文件读取输入。为此首先创建一个脚本文件script.sql并编写想要执行的语句,然后按以下方式调用mysql:mysqldb_name<script.sql>output.tab执行脚本文件包含的批处理后,输出结果写入文件output.tab中。如果在文本文件中包含一个usedb_name语句,则不需要在命令行中指定数据库名:mysql<script.sql如果正在运行mysql,可以使用source或\.命令执行SQL脚本文件:mysql>sourcescript.sql;mysql>\.script.sql;1.4MySQL程序介绍1.4.2MySQL工作台1.MySQL工作台的功能SQL开发;数据建模(设计);服务器管理;数据迁移;MySQL企业支持。2.运行MySQL工作台单击“开始”按钮,弹出“开始”菜单;然后展开“MySQL”文件夹,单击“MySQLWorkbench8.0CE”快捷方式。在“MySQLConnecions”下方单击“LocalinstanceMySQL80”连接,以root账户连接到MySQL服务器。输入root账户的登录密码,然后单击“OK”按钮。如果想保存登录密码,可勾选“Savepasswordinvault”复选框。当连接到MySQL服务器后,将会显示MySQL工作台用户界面。3.设置数据库存储位置在数据库导航窗格底部击“Administration”选项,单击“OptionsFile”,以设置MySQL配置文件。在“Administration-OptionsFile”窗格中,勾选“datadir”复选框,并在右侧输入或选择新的数据目录的路径。单击“Administration-OptionsFile”窗格底部的“Apply”按钮,将所作更改保存到MySQL配置文件中。在“ApplyChangestoMySQLConfigurationFile”窗口右下角,单击“Apply”按钮。将原数据目录中的所有内容复制到新设置的数据目录中。重启MySQL服务器,使新设置生效。1.4MySQL程序介绍1.4.3其他MySQL图形管理工具1.NavicatforMySQLNavicatforMySQL是一套由PremiumSoft公司出品的用于管理MySQL数据库的桌面应用程序。使用它能同时连接MySQL和MariaDB数据库,并与AmazonRDS、AmazonAurora、OracleCloud、MicrosoftAzure、阿里云、腾讯云和华为云等云数据库兼容。它提供了智能数据库设计器、简单的SQL编辑、无缝数据迁移以及多元化操作工具,为MySQL数据库管理、开发和维护提供了一款直观而强大的图形界面。2.SQLYogSQLyog是Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。它提供了数据库同步与数据库结构同步工具、数据库备份与还原功能,支持XML、HTML、CSV等多种格式数据的导入与导出,可以运行批量SQL脚本文件,在新版本中更是增加了强大的数据迁移。使用SQLyog可以通过网络来维护远端的MySQL数据库。3.MySQLGUIToolsMySQLGUITools是一个可视化的MySQL数据库管理控制台。它提供了4个好用的图形化应用程序,即数据库设计工具、数据迁移工具、MySQL管理器以及查询浏览器,可以方便地进行数据库管理和数据查询。这些图形化管理工具可以大大提高数据库管理、备份、迁移和查询以及管理数据库实例效率,即使没有丰富的SQL语言基础的用户也可以应用自如。4.phpMyAdminphpMyAdmin是一个利用PHP编写的免费软件工具,旨在通过Web管理MySQL数据库。它为管理MySQL数据库提供了一个Web接口,可以在任何地方通过网页对远端的MySQL数据库进行管理,各种常用操作(管理数据库、表、列、关系、索引、用户以及权限等)既可以通过网页执行,同时也可以直接通过执行SQL语句的方式来实现。1.4MySQL程序介绍第2章数据库与表2.1.1创建数据库使用CREATEDATABASE语句创建数据库:CREATE{DATABASE|SCHEMA}[IFNOTEXISTS]数据库名[创建选项]...创建选项:[DEFAULT]CHARACTERSET[=]字符集名|[DEFAULT]COLLATE[=]排序规则名|DEFAULTENCRYPTION[=]{'Y'|'N'}CREATESCHEMA是CREATEDATABASE的同义词。使用SHOWCREATEDATABASE语句可以显示创建命名数据库的CREATEDATABASE语句,可以查看该数据库的默认字符集和排序规则。例如:mysql>CREATEDATABASEdb1;mysql>SHOWCREATEDATABASEdb1\G2.1数据库操作2.1.2列举数据库使用SHOWDATABASES列举MySQL服务器主机上的所有数据库:SHOW{DATABASES|SCHEMAS}[LIKE'模式'|WHERE表达式]其中SHOWSCHEMAS是SHOWDATABASES的同义词。LIKE子句(如果存在)指示要匹配的数据库名称,'模式'是一个字符串,其中可以包含SQL通配符“%”和“_”,百分号“%”表示任意多个字符,下画线“_”表示单个任意字符。也可以使用WHERE子句来选择使用更一般条件的行。用户只能看到具有某种权限的数据库,除非拥有全局SHOWDATABASES权限。也可以使用mysqlshow命令获取此数据库清单。如果服务器是使用--skip-show-database选项启动的,则不能使用SHOWDATABASES语句,除非具有SHOWDATABASES权限。也可以使用mysqlshow命令列出数据库清单。2.1数据库操作2.1.3设置默认数据库使用USE语句设置默认的数据库:USE数据库名USE语句可以通知MySQL将具有指定名称的数据库作为当前的默认数据库来使用,在后续对数据库对象操作(例如创建表)的语句中,这个数据库将保持为默认数据库,直到语句段结束,或者直到发布另一个不同的USE语句。在MySQL中,可以使用DATABASE()函数来获取当前的默认数据库的名称。如果没有默认数据库,则DATABASE()函数将返回NULL。2.1数据库操作2.1.4修改数据库使用ALTERDATABASE语句修改数据库:ALTER{DATABASE|SCHEMA}[数据库名]修改选项...修改选项:[DEFAULT]CHARACTERSET[=]字符集名|[DEFAULT]COLLATE[=]排序规则名|DEFAULTENCRYPTION[=]{'Y'|'N'}ALTERDATABASE语句用于更改数据库的整体特征。这些特征存储在数据字典中。要使用ALTERDATABASE语句,需要拥有修改数据库的权限。ALTERSCHEMA是ALTERDATABASE的同义词。数据库名指定要修改的数据库。如果省略数据库名,则ALTERDATABASE语句用于当前的默认数据库。2.1数据库操作2.1.5删除数据库使用DROPDATABASE语句从MySQL服务器上删除数据库:DROP{DATABASE|SCHEMA}[IFEXISTS]数据库名数据库名指定要删除的数据库。IFEXISTS用于防止在数据库不存在时发生错误。DROPDATABASE必须拥有数据库的DROP权限。DROPSCHEMA是DROPDATABASE的同义词。由于执行DROPDATABASE语句时将从给定的数据库目录中删除由MySQL在正常操作期间创建的文件和目录,从而删除数据库中的所有表并删除整个数据库,因此使用这个语句时要非常小心,以防止发生误操作。也可以使用mysqladmin客户端工具来删除数据库。2.1数据库操作2.2.1数据类型1.数值类型BIT[(M)]INYINT[(M)][UNSIGNED][ZEROFILL]BOOL、BOOLEANSMALLINT[(M)][UNSIGNED][ZEROFILL]MEDIUMINT[(M)][UNSIGNED][ZEROFILL]INT[(M)][UNSIGNED][ZEROFILL]INTEGER[(M)][UNSIGNED][ZEROFILL]BIGINT[(M)][UNSIGNED][ZEROFILL]SERIALFLOAT[(M,D)][UNSIGNED][ZEROFILL]DOUBLE[(M,D)][UNSIGNED][ZEROFILL]DECIMAL[(M[,D])][UNSIGNED][ZEROFILL]DEC[(M[,D])][UNSIGNED][ZEROFILL]、NUMERIC[(M[,D])][UNSIGNED][ZEROFILL]、FIXED[(M[,D])][UNSIGNED][ZEROFILL]2.字符串类型

CHAR[(M)]VARCHAR(M)BINARY[(M)]VARBINARY(M)TINYBLOBTINYTEXT[(M)]BLOB[(M)]TEXT[(M)]MEDIUMBLOBMEDIUMTEXT[(M)]LONGBLOBLONGTEXT[(M)]ENUM('value1','value2',...)SET('value1','value2',...)3.日期时间类型

TIMEDATEDATETIMETIMESTAMPYEAR2.2表操作2.2.2存储引擎InnoDB:是MySQL8.0中的默认存储引擎。MyISAM:是在Web数据仓库和其他应用环境下最常使用的存储引擎之一。Memory:将所有数据存储在RAM中,可以在需要快速查找非关键数据的环境中提供快速访问。CSV:实际上是以逗号分隔数据的文本文件,它允许以CSV格式导入或转储数据。Archive:使用紧凑的无索引表,可用于存储和检索大量很少引用的历史、存档、或安全审计信息。Blackhole:接受但不存储数据,类似于Unix/dev/null设备。NDB:是一种群集数据库引擎,特别适用于具有高性能查找要求的应用程序。Merge:允许MySQLDBA或开发人员将一系列相同的MyISAM表以逻辑方式组合在一起,并将它们作为一个对象来用。Federated:将多个分离的MySQL服务器链接起来,从多个物理服务器创建一个逻辑数据库。Example:此引擎用作MySQL源代码中的示例,说明如何编写新的存储引擎。2.2表操作2.2.3创建表使用CREATETABLE语句在当前数据库中创建表:CREATE[TEMPORARY]TABLE[IFNOTEXISTS]表名(列定义,...)[CHARACTERSET字符集名][COLLATE排序规则名][COMMENT'表注释文字']ENGINE=存储引擎名列定义:列名数据类型[NOTNULL|NULL][DEFAULT默认值][AUTO_INCREMENT][UNIQUE[KEY]|PRIMARYKEY][COMMENT'列注释文字']2.2表操作2.2.4查看表信息1.使用SHOWTABLES语句列出数据库中的所有非临时表:SHOW[FULL]TABLES[FROM数据库名][LIKE'模式’]2.使用SHOWCREATETABLE语句可示用于创建给定表的CREATETABLE语句:SHOWCREATETABLE表名3.使用SHOWCOLUMNS语句查看一个给定表中各列的信息:SHOW[FULL]COLUMNSFROM表名[FROM数据库名][LIKE'模式’]4.使用DESCRIBE语句获取指定表中各列的信息:{DESCRIBE|DESC}表名[列名|通配符]2.2表操作2.2.5修改表使用ALTERTABLE语句修改表结构:ALTER[IGNORE]TABLE表名修改选项[,修改选项]...修改选项:ADD[COLUMN]列定义[FIRST|AFTER列名]|ADD[COLUMN](列定义,...)|ALTER[COLUMN]列名{SETDEFAULT常量|DROPDEFAULT}|CHANGE[COLUMN]old_列名列定义[FIRST|AFTER列名]|MODIFY[COLUMN]列定义[FIRST|AFTER列名]|DROP[COLUMN]列名|DROPPRIMARYKEY|RENAME[TO]新表名|ORDERBY列名|[DEFAULT]CHARACTERSET[=]字符集名|[DEFAULT]COLLATE[=]排序规则名]|COMMENT[=]'表注释文字'|ENGINE[=]存储引擎名2.2表操作2.2.6复制表通过复制现有表的结构和数据来创建表:CREATE[TEMPORARY]TABLE[IFNOTEXISTS]表名[(]LIKE源表名[)]|[AS]SELECT...其中表名指定要创建的新表,源表名表示现有的表。使用LIKE子句可以创建一个与现有表结构相同的新表,其中的列名、数据类型、是否允许为空等属性以及索引都被复制,但不复制表中的数据,因此所创建的新表是一个空表。使用AS子句可以复制由SELECT语句返回的数据,但索引和完整性约束不会被复制。2.2表操作2.2.7重命名表1.在ALTERTABLE语句中使用RENAME子句对指定表进行重命名:ALTERTABLE旧表名RENAMETO新表名例如,使用下面的语句可以将表test重命名为demo:ALTERTABLEtestRENAMETOdemo;2.使用RENAMETABLE语句对一个或多个表进行重命名:RENAMETABLE旧表名1TO新表名1[,旧表名2TO新表名2]...其中“旧表名1”和“旧表名2”表示表的原来名称,“新表名1”和“新表名2”指定表的新名称。与ALTERTABLE语句不同的是,使用RENAMETABLE语句可以同时对多个表进行重命名。例如:RENAMETABLEdemoTOtest,demo2TOtest2;2.2表操作2.2.8删除表使用DROPTABLE语句可以从数据库中删除一个或多个表,语法格式如下。DROP[TEMPORARY]TABLE[IFEXISTS]表名[,表名]...其中表名表示待删除的表的名称。当使用TEMPORARY关键词时,这个语句只删除临时表。对于不存在的表,使用IFEXISTS以防止错误发生。例如,下面的语句用于删除当前数据库中的test1和test2表:DROPTABLEIFEXISTStest1,test2;2.2表操作2.3.1主键约束主键(PrimaryKey)是表中的一列或多列的组合,由多列组成的主键也称为复合主键,主键的值称为键值,它能够唯一地标识表中的一行。在表中创建主键时,将会在主键列上创建唯一性索引,从而实现数据的唯一性,使用主键进行查询时还会加快数据访问速度。使用主键约束时必须遵循以下规则:每个表只能定义一个主键。主键的值必须能够唯一标识表中的每一行,表中两个不同行的主键值不能相同,并且不能为NULL。这条规则称为唯一性规则。复合主键不能包含不必要的多余列。如果从一个复合主键中删除一列后,剩下的列构成的主键仍能唯一标识表中的每一行,则这个复合主键就是不正确的。这条规则称为最小化规则。在复合主键中某一列的值可以重复,但复合主键中所有列的组合键必须是唯一的。一个列名在复合主键中只能出现一次。在MySQL中,可以在CREATETABLE或ALTERTABLE语句中使用PRIMARYKEY子句在表中定义主键。如果要使用主键作为列的完整性约束,则应当在相应列定义中添加关键字PRIMARYKEY。如果使用主键作为表的完整性约束,则应在定义的最后列后面添加PRIMARYKEY(列名,...)子句。2.3数据完整性约束2.3.2候选健约束候选键可以是表中的一列,也可以是表中多列的一个组合。任何时候,候选键的值必须是唯一的。候选键与主键之间的区别表现在以下几个方面。一个表中只能有一个主键,但一个表中可以有多个候选键,甚至不同候选键之间还可以重合。例如,在col1和col2列上定义了一个候选键,在col2和col3列上定义了另一个候选键,这两个候选键在col2列上重合了,这在MySQL中是允许的。主键的值不允许为NULL,候选键的值则可以取NULL,不过必须使用NULL或NOTNULL进行声明。一般情况下,创建主键时会自动生成PRIMARYKEY索引,创建候选键时会自动生成UNIQUE索引。候选键约束有两种实现方式:如果作为列完整性约束实现,则应在列定义中添加UNIQUE关键字;如果作为表完整性约束实现,则应在最后的列定义后面添加UNIQUE(列名,...)子句。2.3数据完整性约束2.3.3参照完整性约束参照完整性约束是指表(子表)中的某一列表现为一个外键,可以引用另一个表(父表)中的主键或候选键。例如,成绩表中的学号必须出现在学生表中,成绩表中的课程编号也必须出现在课程表中。在这个关系中,学生表和课程表为父表,成绩表为子表,成绩表中的学号列和课程编号列都表现为外键,。参照完整性约束可以在CREATETABLE或ALTERTABLE语句中使用FOREIGNKEY...REFERENCES子句来定义:... /*创建或修改子表*/[ADD]FOREIGNKEY[索引名](索引列,...) /*外键*/REFERENCES表名[(索引列,...)] /*父表和被引用列*/[ONDELETE{RESTRICT|CASCADE|SETNULL|NOACTION}][ONUPDATE{RESTRICT|CASCADE|SETNULL|NOACTION}]索引列:列名[(长度)][ASC|DESC]2.3数据完整性约束2.3.4检查完整性约束检查完整性约束是指在CREATETABLE语句中使用CHECK子句添加的约束条件,通过该约束条件可以限制在列中输入的值,语法格式如下。...CHECKL(条件)其中条件指定列值应满足的条件。检查完整性约束只能在创建表时定义,它可以在某个列上定义,也可以在表级别定义。注意:对于所有的存储引擎,CHECK子句都会被分析,但是会被忽略。接受该子句但又忽略子句的原因是为了提高兼容性,以便更容易地从其他SQL服务器中导入代码,并正常运行应用程序。2.3数据完整性约束2.3.5命名完整性约束为了修改和删除完整性约束,要求定义约束时对其进行命名。要对完整性约束进行命名,可以在约束定义之前使用CONSTRAINT子句,语法格式如下。CONSTRAINT[字符串]{PRIMARYKEY...|FOREIGNKEY...|CHECK...}其中字符串指定所定义约束的名称,该名称在数据库中必须是唯一的。如果省略字符串参数,则MySQL会自动创建这个名称。CONSTRAINT子句要放在在相应的约束前面,只能给表完整性约束指定名称,而不能给列完整性约束指定名称。当定义完整性约束时,应当尽量给约束指定一个名称,以便在修改

温馨提示

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

评论

0/150

提交评论