版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3章章 数据库基本操作数据库基本操作 掌握如何通过语句查看数据库存储引擎掌握如何通过语句查看数据库存储引擎 了解一些常见的数据库存储引擎了解一些常见的数据库存储引擎 熟悉熟悉MyISAMMyISAM、MEMORYMEMORY和和InnoDBInnoDB存储引擎的适用情况存储引擎的适用情况 掌握掌握MySQLMySQL中创建数据库的两种方式中创建数据库的两种方式 掌握查看数据库时的掌握查看数据库时的SHOWSHOW语句语句 熟悉如何修改数据库的字符集和校对规则熟悉如何修改数据库的字符集和校对规则 掌握删除数据库时执行的语句掌握删除数据库时执行的语句 掌握选择数据库时执行的语句,并且查看当前数
2、据库表掌握选择数据库时执行的语句,并且查看当前数据库表主要内容主要内容MySQL存储引擎存储引擎3.1创建数据库创建数据库3.2查看数据库查看数据库3.3修改数据库修改数据库3.4删除数据库删除数据库3.5数据库的其他操作数据库的其他操作3.6实战训练实战训练3.73.1 MySQL3.1 MySQL存储引擎存储引擎 MySQL MySQL数据库是开发源代码的关系型数据库,数据库是开发源代码的关系型数据库,它可以提供对它可以提供对SQLSQL语言、子查询、存储过程、触发语言、子查询、存储过程、触发器、视图、索引、事务、锁、以及影像复制等功能器、视图、索引、事务、锁、以及影像复制等功能的支持。同
3、的支持。同OracleOracle和和SQL ServerSQL Server等大型数据库一样,等大型数据库一样,MySQLMySQL也是也是C/SC/S系统并且是单进程多线程架构的数系统并且是单进程多线程架构的数据库。据库。3.1.1 3.1.1 查看数据库存储引擎查看数据库存储引擎 简单来说,存储引擎就是如何存储数据、如何为简单来说,存储引擎就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术存储的数据建立索引和如何更新、查询数据等技术的实现方法。的实现方法。 可以查看当前可以查看当前MySQLMySQL数据库的存储引擎数据库的存储引擎。查询。查询方法非常简单,语法如下:方
4、法非常简单,语法如下: 上述语句可以使用分号上述语句可以使用分号“; ;”结束,也可以使用结束,也可以使用“gg”或者或者“GG”结束。其中,结束。其中,“gg”的作用与分号的作用与分号“; ;”作用作用相同,而相同,而“GG”可以让结果显示得更加美观。可以让结果显示得更加美观。SHOW ENGINES;3.1.1 3.1.1 查看数据库存储引擎查看数据库存储引擎 【示例【示例1 1】 登录登录MySQLMySQL控制台成功后执行控制台成功后执行SHOW ENGIENS GSHOW ENGIENS G语句并查看结果。输出结果如下:语句并查看结果。输出结果如下:mysql SHOW ENGINE
5、S G* 1. row * Engine: FEDERATED Support: NO Comment: Federated MySQL storage engine Transactions: NULL XA: NULL Savepoints: NULL* 2. row * Engine: MRG_MYISAM Support: YES Comment: Collection of identical MyISAM tables Transactions: NO XA: NO Savepoints: NO* 3. row * Engine: MyISAM Support: YES Comme
6、nt: MyISAM storage engine Transactions: NO XA: NO Savepoints: NO3.1.1 3.1.1 查看数据库存储引擎查看数据库存储引擎* 4. row * Engine: BLACKHOLE Support: YES Comment: /dev/null storage engine (anything you write to it disappears) Transactions: NO XA: NO Savepoints: NO* 5. row * Engine: CSV Support: YES Comment: CSV stora
7、ge engine Transactions: NO XA: NO Savepoints: NO* 6. row * Engine: MEMORY Support: YES Comment: Hash based, stored in memory, useful for temporary tables Transactions: NO XA: NO Savepoints: NO* 7. row * Engine: ARCHIVE Support: YES Comment: Archive storage engine Transactions: NO XA: NO Savepoints:
8、NO* 8. row *3.1.1 3.1.1 查看数据库存储引擎查看数据库存储引擎 Engine: InnoDB Support: DEFAULT Comment: Supports transactions, row-level locking, and foreign keys Transactions: YES XA: YES Savepoints: YES* 9. row * Engine: PERFORMANCE_SCHEMA Support: YES Comment: Performance Schema Transactions: NO XA: NO Savepoints: N
9、O9 rows in set (0.03 sec)3.1.1 3.1.1 查看数据库存储引擎查看数据库存储引擎3.1.1 3.1.1 查看数据库存储引擎查看数据库存储引擎InnoDBInnoDB是默认的数据库存储引擎是默认的数据库存储引擎。除此之外,当前版本的。除此之外,当前版本的MyMySQLSQL数据库还支持数据库还支持MRG_MYISAMMRG_MYISAM、MyISAMMyISAM、BLACKHOLEBLACKHOLE、CSVCSV、MEMORYMEMORY(HEAPHEAP)、)、ARCHIVEARCHIVE和和PERFORMANCE_PERFORMANCE_SCHEMASCHEMA
10、存储引擎。另外,当前查询出存储引擎。另外,当前查询出9 9条记录,每条记录主条记录,每条记录主要内容相同,如下对这些查询结果进行了说明。要内容相同,如下对这些查询结果进行了说明。l Engine Engine 数据库存储引擎名称。数据库存储引擎名称。l Support Support 表示表示MySQLMySQL是否支持该类引擎,是否支持该类引擎,YESYES表示支持,表示支持,NONO表示不支持。表示不支持。l Comment Comment 表示对该引擎的评论信息。表示对该引擎的评论信息。l Transactions Transactions 表示是否支持事务处理,表示是否支持事务处理,Y
11、ESYES表示支持,表示支持,NONO表示不支持。表示不支持。l XA XA 表示是否分布式交易处理的表示是否分布式交易处理的XAXA规范,规范,YESYES表示支持,表示支持,NONO表示不支持。表示不支持。l Savepoints Savepoints 表示是否支持保存点,以便事务回滚到保存点,表示是否支持保存点,以便事务回滚到保存点,YESYES表示支持,表示支持,NONO表示不支持。表示不支持。3.1.1 3.1.1 查看数据库存储引擎查看数据库存储引擎备注:备注:分布式事务处理分布式事务处理( Distributed Transaction ProcessingDistributed
12、 Transaction Processing , DTPDTP )是)是指一个事务可能涉及多个数据库操作,分布式事务处理的关键指一个事务可能涉及多个数据库操作,分布式事务处理的关键是必须有一种方法可以知道事务在任何地方所做的所有动作,是必须有一种方法可以知道事务在任何地方所做的所有动作,提交或回滚事务的决定必须产生统一的结果(全部提交或全部提交或回滚事务的决定必须产生统一的结果(全部提交或全部回滚)回滚) 。 事务事务 (TransactionTransaction):又称之为交易,指一个程序或程序段,):又称之为交易,指一个程序或程序段,在一个或多个资源如在一个或多个资源如 数据库数据库
13、或文件上为完成某些功能的执行过或文件上为完成某些功能的执行过程的集合,是用户定义的一个操作序列。这些操作要么都做,程的集合,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。要么都不做,是一个不可分割的工作单位。 XAXA 就是就是 X/Open X/Open 组织针对组织针对DTPDTP 定义的交易中间件与数据库之定义的交易中间件与数据库之间的接口规范(即接口函数),交易中间件用它来通知数据库间的接口规范(即接口函数),交易中间件用它来通知数据库事务的开始、结束以及提交、回滚等。事务的开始、结束以及提交、回滚等。 XAXA 接口函数由数据库接口函数由数据库厂商
14、提供。厂商提供。3.1.1 3.1.1 查看数据库存储引擎查看数据库存储引擎通常把一个数据库内部的事务处理,如对多个表的通常把一个数据库内部的事务处理,如对多个表的操作,作为本地事务看待。操作,作为本地事务看待。数据库的事务处理对象是本数据库的事务处理对象是本地事务,而分布式事务处理的对象是全局事务。地事务,而分布式事务处理的对象是全局事务。 所谓全局事务,是指分布式事务处理环境中,多个所谓全局事务,是指分布式事务处理环境中,多个数据库可能需要共同完成一个工作,这个工作即是一个数据库可能需要共同完成一个工作,这个工作即是一个全局事务,例如,全局事务,例如,一个事务中可能更新几个不同的数据一个事
15、务中可能更新几个不同的数据库库。对数据库的操作发生在系统的各处但必须全部被提对数据库的操作发生在系统的各处但必须全部被提交或回滚交或回滚。此时一个数据库对自己内部所做操作的提交。此时一个数据库对自己内部所做操作的提交不仅依赖本身操作是否成功,还要依赖与全局事务相关不仅依赖本身操作是否成功,还要依赖与全局事务相关的其它数据库的操作是否成功,如果任一数据库的任一的其它数据库的操作是否成功,如果任一数据库的任一操作失败,则参与此事务的所有数据库所做的所有操作操作失败,则参与此事务的所有数据库所做的所有操作都必须回滚。都必须回滚。3.1.1 3.1.1 查看数据库存储引擎查看数据库存储引擎 【示例【示
16、例2 2】 5.6.13 5.6.13版本的版本的MySQLMySQL数据库默认安装时使用数据库默认安装时使用InnoDBInnoDB存存储引擎,如果使用者不确定当前数据库的默认存储引擎,储引擎,如果使用者不确定当前数据库的默认存储引擎,可以通过输入语句进行查看。语句如下:可以通过输入语句进行查看。语句如下:SHOW VARIABLES LIKE storage_engine; 控制台执行上述语句输出的结果如下:mysql SHOW VARIABLES LIKE storage_engine;+-+-+| Variable_name | Value |+-+-+| storage_engine
17、 | InnoDB |+-+-+1 row in set (0.78 sec)3.1.4 3.1.4 存储引擎存储引擎InnoDBInnoDB InnoDB InnoDB是当前是当前MySQLMySQL数据库版本的默认存储引数据库版本的默认存储引擎,它与传统的擎,它与传统的ISAMISAM和和MyISAMMyISAM相比,其最大特色相比,其最大特色就是支持就是支持数据库事务正确执行的数据库事务正确执行的ACIDACID原则,即:原则,即:原子性原子性(Atomicity)(Atomicity)、一致性一致性(Consistency)(Consistency)、隔离性隔离性(Is(Isolati
18、on)olation)、持久性持久性( (Durability) Durability) 。目前,。目前,InnoDBInnoDB采用采用双轨制授权,双轨制授权,一个是一个是GPLGPL授权,另一个则是专有软授权,另一个则是专有软件授权。件授权。3.1.4 3.1.4 存储引擎存储引擎InnoDBInnoDBu原子性原子性整个事务中的所有操作,要么全部完成,要么全部整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。不完成,不可能停滞在中间某个环节。事务在执行事务在执行过程中发生错误,会被回滚过程中发生错误,会被回滚(Rollback)(Rollback)到事务开始前
19、到事务开始前的状态,就像这个事务从来没有执行过一样。的状态,就像这个事务从来没有执行过一样。u一致性一致性在事务开始之前和事务结束以后,数据库的完整性在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。约束没有被破坏。3.1.4 3.1.4 存储引擎存储引擎InnoDBInnoDBu隔离性隔离性隔离状态执行事务,使它们好像是系统在给定时间隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。内执行的唯一操作。如果有两个事务,运行在相同如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在
20、使用系统每一事务在系统中认为只有该事务在使用系统。这。这种属性有时称为串行化,为了防止事务操作间的混种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据。有一个请求用于同一数据。u持久性持久性在事务完成以后,该事务所对数据库所作的更改便在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚持久的保存在数据库之中,并不会被回滚。InnoDBInnoDB的主要特点:的主要特点:(1 1)InnoDBInnoDB是为处理巨大数据量时的最大性能设计;是为处理巨大数据量时的最大
21、性能设计;(2 2)InnoDB InnoDB 给给 MySQL MySQL 提供了具有事务、回滚和崩提供了具有事务、回滚和崩溃修复能力、多版本并发控制的事务安全型表;溃修复能力、多版本并发控制的事务安全型表;(3 3)InnoDB InnoDB 提供了行级锁,提供与提供了行级锁,提供与 Oracle Oracle 类似的不类似的不加锁读取;加锁读取;(4 4)在技术上,)在技术上,InnoDB InnoDB 是一套放在是一套放在 MySQLMySQL后台的后台的完整数据库系统,完整数据库系统,InnoDB InnoDB 在主内存中建立其专用在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。
22、的缓冲池用于高速缓冲数据和索引。3.1.4 3.1.4 存储引擎存储引擎InnoDBInnoDB3.1.4 3.1.4 存储引擎存储引擎InnoDBInnoDBInnoDBInnoDB体系结构如下:体系结构如下:后台线程:后台线程:1 1、后台线程的主要作用是负责刷新内存池中的数据,保证缓、后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据;冲池中的内存缓存的是最近的数据;2 2、另外,将以修改的数据文件刷新到磁盘文件;、另外,将以修改的数据文件刷新到磁盘文件;3 3、同时,保证在数据库发生异常的情况下,、同时,保证在数据库发生异常的情况下,InnoDBInnoD
23、B能恢复到能恢复到正常运行状态。正常运行状态。3.1.4 3.1.4 存储引擎存储引擎InnoDBInnoDB内存池:内存池:InnoDBInnoDB有多个内存块,这些内存块组成了一个大的有多个内存块,这些内存块组成了一个大的内存池。这些内存块包括有:缓冲池(内存池。这些内存块包括有:缓冲池(innodb_buffer_poolinnodb_buffer_pool)和)和日志缓冲日志缓冲(log_buffer)(log_buffer)以及额外内存池以及额外内存池(innodb_addtional_mem_pool_sizeinnodb_addtional_mem_pool_size)。)。3.
24、1.6 3.1.6 如何选择存储引擎如何选择存储引擎 下面分别介绍了下面分别介绍了MyISAMMyISAM、MEMORYMEMORY和和InnoDBInnoDB这这3 3种存储引擎的特性对比,根据其不同的特性,种存储引擎的特性对比,根据其不同的特性,给出了一些选择的建议。给出了一些选择的建议。lMyISAMMyISAM存储引擎存储引擎 这种存储引擎提供了高速的存储与检索和全文这种存储引擎提供了高速的存储与检索和全文搜索能力。该存储引擎插入数据快,但是空间和搜索能力。该存储引擎插入数据快,但是空间和内存的使用效率较低。内存的使用效率较低。如果表主要适用于插入新如果表主要适用于插入新纪录和读出记录
25、,那么选择纪录和读出记录,那么选择MyISAMMyISAM存储引擎可以存储引擎可以实现处理的高效率。实现处理的高效率。3.1.6 3.1.6 如何选择存储引擎如何选择存储引擎lMEMORYMEMORY存储引擎存储引擎 这种存储引擎提供这种存储引擎提供“内存中内存中”表,该存储引擎表,该存储引擎的所有数据都存储在内存中,数据的处理速度很快的所有数据都存储在内存中,数据的处理速度很快但是安全性不高。但是安全性不高。如果需要很快的读写速度,对数如果需要很快的读写速度,对数据的安全性要求较低,可以选择这种存储引擎。据的安全性要求较低,可以选择这种存储引擎。MMEMORYEMORY存储引擎对表的大小有要
26、求,不能建议太存储引擎对表的大小有要求,不能建议太大的表,因此,这类数据库只使用与相对较小的数大的表,因此,这类数据库只使用与相对较小的数据库表。据库表。3.1.6 3.1.6 如何选择存储引擎如何选择存储引擎lInnoDBInnoDB存储引擎存储引擎 它主要用于事务处理应用程序,支持外键,同它主要用于事务处理应用程序,支持外键,同时还支持崩溃修复能力和并发控制。时还支持崩溃修复能力和并发控制。如果对事务的如果对事务的完整性要求比较高,要求实现并发通知,那么选择完整性要求比较高,要求实现并发通知,那么选择InnoDBInnoDB存储引擎比较有优势。如果需要频繁的进行存储引擎比较有优势。如果需要
27、频繁的进行更新和删除操作,也可以选择该存储引擎更新和删除操作,也可以选择该存储引擎,因为该,因为该存储引擎可以实现事务的提交和回滚。存储引擎可以实现事务的提交和回滚。3.2 3.2 创建数据库创建数据库 简单的了解数据库存储引擎之后,下面将重点介绍数据简单的了解数据库存储引擎之后,下面将重点介绍数据库的基本操作。库的基本操作。MySQLMySQL中创建数据库有中创建数据库有3 3种方式:种方式:下面分别通过第一种方式和第三种方式介绍如何创建数据库。下面分别通过第一种方式和第三种方式介绍如何创建数据库。1通过可视化通过可视化的界面管理的界面管理工具工具MySQL MySQL WorkbenchW
28、orkbench创建创建2从从cmdcmd进入进入数据库连接数据库连接成功后执行成功后执行mysqlmysql语句语句创建创建3直接在控制直接在控制台中登录创台中登录创建建3.2.1 MySQL Workbench3.2.1 MySQL Workbench创建创建 【示例【示例3 3】 本次示例通过本次示例通过WorkbenchWorkbench工具创建数据库,完整的操作步工具创建数据库,完整的操作步骤如下所示。骤如下所示。 (1 1)首先创建一个数据库连接,然后选中左侧数据库列)首先创建一个数据库连接,然后选中左侧数据库列表中的某一项后单击右键,在显示的菜单中选择表中的某一项后单击右键,在显
29、示的菜单中选择Create ScheCreate Schemama选项,该选项就是用来创建数据库的。选择该项后弹出一选项,该选项就是用来创建数据库的。选择该项后弹出一个添加数据库的页面,如图个添加数据库的页面,如图3-23-2所示。所示。图3-2 创建数据库的页面效果3.2.1 MySQL Workbench3.2.1 MySQL Workbench创建创建(2 2)在图)在图3-23-2中输入创建名称后单击中输入创建名称后单击ApplyApply按钮,这时弹按钮,这时弹出图出图3-33-3所示的对话框,可以向该对话框中添加或修改脚所示的对话框,可以向该对话框中添加或修改脚本内容,如果审查本内
30、容,如果审查SQLSQL脚本无误,则会将脚本应用到数据脚本无误,则会将脚本应用到数据库中,单击库中,单击ApplyApply按钮。按钮。图3-3 执行创建数据库的过程3.2.1 MySQL Workbench3.2.1 MySQL Workbench创建创建 (3 3)如果确定图)如果确定图3-33-3所示的脚本没有错误,直接单击所示的脚本没有错误,直接单击A Applypply按钮进行添加,创建完成后自动在左侧列表中显示,按钮进行添加,创建完成后自动在左侧列表中显示,成功时的效果如图成功时的效果如图3-43-4所示。所示。图3-4 Workbench创建数据库成功3.2.2 3.2.2 数据
31、库字符集和校对规则数据库字符集和校对规则 在图在图3-23-2中创建数据库时需要选择其字符集和校对规则。中创建数据库时需要选择其字符集和校对规则。字符集是一套符号和编码,校对规则是在字符集内用于字符集是一套符号和编码,校对规则是在字符集内用于比较字符的一套规则。比较字符的一套规则。MySQLMySQL能够支持多种字符集,可能够支持多种字符集,可以通过执行以通过执行SHOW CHARACTER SET;SHOW CHARACTER SET;语句查看可用的字语句查看可用的字符集,部分截图如符集,部分截图如3-53-5所示。所示。图图3-5 当前可用的字符集当前可用的字符集3.2.2 3.2.2 数
32、据库字符集和校对规则数据库字符集和校对规则 在图在图3-53-5中,中,CharsetCharset表示字符集,表示字符集,DescriptionDescription表示描述表示描述内容,内容,Default collationDefault collation表示默认的校对规则。任何一个给表示默认的校对规则。任何一个给定的字符集至少有一个校对规则,它还可能有几个校对定的字符集至少有一个校对规则,它还可能有几个校对规则。可以使用以下语句查看校对规则,语句如下:规则。可以使用以下语句查看校对规则,语句如下: 直接使用上述语句直接使用上述语句SHOW COLLATIONSHOW COLLATIO
33、N时查看校对规时查看校对规则列表,如果想要查看则列表,如果想要查看latin1latin1(西欧(西欧ISO-8859-1ISO-8859-1)字符集的)字符集的校对规则,可以添加向校对规则,可以添加向SHOW COLLATIONSHOW COLLATION后添加后添加LIKELIKE查询。查询。SHOW COLLATION LIKE pattern;3.2.2 3.2.2 数据库字符集和校对规则数据库字符集和校对规则 例如,查找以例如,查找以latin1latin1开头的校对规则效果如图开头的校对规则效果如图3-63-6所示。所示。3.2.2 3.2.2 数据库字符集和校对规则数据库字符集和
34、校对规则图图3-63-6中所示的校对规则不同,它所代表的含义也中所示的校对规则不同,它所代表的含义也有所不同。例如,有所不同。例如,latin1_german1_cilatin1_german1_ci表示德国表示德国DIN-1DIN-1;latin1_swedish_cilatin1_swedish_ci表示瑞典表示瑞典/ /芬兰;芬兰;latin1_danish_cilatin1_danish_ci表示表示丹麦丹麦/ /挪威。挪威。所有的校对规则都有一些共同的特征,所有的校对规则都有一些共同的特征,如下所示。如下所示。l两个不同的字符集不能有相同的校对规则。两个不同的字符集不能有相同的校对规
35、则。l每个字符集有一个默认校对规则,例如,每个字符集有一个默认校对规则,例如,latin1latin1默认默认校对规则是校对规则是latin1_swedish_cilatin1_swedish_ci。l存在校对规则命名约定,它们以其相关的字符集名存在校对规则命名约定,它们以其相关的字符集名开始,通常包括一个语言名,并且以开始,通常包括一个语言名,并且以_ _ci ci(大小写不(大小写不敏感)、敏感)、_ _cs cs(大小写敏感)或(大小写敏感)或_bin_bin(二元)结束。(二元)结束。3.2.3 MySQL3.2.3 MySQL的控制台创建的控制台创建 每一个数据库都有一个数据库字符集
36、和一个数每一个数据库都有一个数据库字符集和一个数据库校对规则,它不能够为空。据库校对规则,它不能够为空。CREATE DATABCREATE DATABASEASE语句有一个可选的子句来指定数据库字符集语句有一个可选的子句来指定数据库字符集和校对规则。语句如下:和校对规则。语句如下:CREATE DATABASE db_name DEFAULT CHARACTER SET charset_name DEFAULT COLLATE collation_name3.2.3 MySQL3.2.3 MySQL的控制台创建的控制台创建 上述上述CREATE DATABASECREATE DATABASE
37、创建数据库的语法中,数据库字符创建数据库的语法中,数据库字符集和数据库校对规则如下所示。集和数据库校对规则如下所示。l 如果指定了如果指定了CHARACTER SET charset_nameCHARACTER SET charset_name和和COLLATE COLLATE collation_namecollation_name,那么采用字符集,那么采用字符集charset_namecharset_name和校对规则和校对规则collation_namecollation_name。l 如果指定了如果指定了CHARACTER SET charset_nameCHARACTER SET c
38、harset_name而没有指定而没有指定COLLATE collation_nameCOLLATE collation_name,那么采用,那么采用CHARACTER SET CHARACTER SET charset_namecharset_name和和CHARACTER SET collation_nameCHARACTER SET collation_name的默认校对规则。的默认校对规则。l 如果如果CHARACTER SET charset_nameCHARACTER SET charset_name和和COLLATE COLLATE collation_namecollation
39、_name都没有指定,则采用服务器字符集和服务器校对都没有指定,则采用服务器字符集和服务器校对规则。规则。3.2.3 MySQL3.2.3 MySQL的控制台创建的控制台创建 【示例【示例4 4】 例如,在本示例中首先直接通过执行例如,在本示例中首先直接通过执行CREATE DATABASCREATE DATABASE E语句创建名称是语句创建名称是bookmangebookmange的数据库。输出结果如下:的数据库。输出结果如下:mysql CREATE DATABASE IF NOT EXISTS bookmanage;Query OK, 1 row affected (0.02 sec)
40、 上述显示的代码中,第二行代码表示已经创建成功,上述显示的代码中,第二行代码表示已经创建成功,1 1行受到影响,处理时间为行受到影响,处理时间为0.020.02秒。另外,秒。另外,“Query OKQuery OK”表示创建、修改和删除成功。表示创建、修改和删除成功。接着创建一个使用接着创建一个使用big5big5字符集,并带校对规则的字符集,并带校对规则的mylovemylove数数据库。执行效果如下:据库。执行效果如下:mysql CREATE DATABASE mylove CHARACTER SET big5 COLLATE big5_chinese_ci;Query OK, 1 ro
41、w affected (0.08 sec)3.2.3 MySQL3.2.3 MySQL的控制台创建的控制台创建 数据库不能重复存在数据库不能重复存在,如果数据库,如果数据库bookmanagebookmanage已经存已经存在,那么再创建相同的数据库时会输出在,那么再创建相同的数据库时会输出10071007错误代码,该错误代码,该错误提示创建的数据库已经存在。代码如下:错误提示创建的数据库已经存在。代码如下:mysql CREATE DATABASE bookmanage;ERROR 1007 (HY000): Cant create database bookmanage; database
42、 exists一般情况下,在创建数据库之前需要判断该数据库是否一般情况下,在创建数据库之前需要判断该数据库是否存在,如果不存在再进行创建。执行语句如下:存在,如果不存在再进行创建。执行语句如下:mysql CREATE DATABASE IF NOT EXISTS bookmanage;Query OK, 1 row affected (0.02 sec)3.3 3.3 查看数据库查看数据库 创建数据库成功后,读者还可以通过执行相创建数据库成功后,读者还可以通过执行相关的语句查看数据库的信息。下面介绍两部分内关的语句查看数据库的信息。下面介绍两部分内容,执行与容,执行与SHOWSHOW有关的语
43、句不仅可以查看数据有关的语句不仅可以查看数据库系统中的数据库,还可以查看单个数据库的相库系统中的数据库,还可以查看单个数据库的相关信息。关信息。3.3.1 3.3.1 查看所有数据库查看所有数据库 创建数据库成功后会在控制台中输出结果,为了验证创建数据库成功后会在控制台中输出结果,为了验证数据库系统中是否已经存在创建的数据库,可以使用数据库系统中是否已经存在创建的数据库,可以使用SHSHOWOW语句进行查看。执行语句进行查看。执行SHOW DATABASES;SHOW DATABASES;语句时的输语句时的输出结果如下:出结果如下:mysql SHOW DATABASES;+-+| Datab
44、ase |+-+| information_schema | mysql | performance_schema | sakila | test | testmanage | world |+-+7 rows in set (0.22 sec)3.3.2 3.3.2 查看数据库详细信息查看数据库详细信息SHOW CREATE DATABASE 数据库名称数据库名称;通过通过SHOW DATABASESSHOW DATABASES语句可以查看数据库系统中的所语句可以查看数据库系统中的所有数据库,当然,通过执行该语句可以查看单独的数据有数据库,当然,通过执行该语句可以查看单独的数据库信息。如果要
45、查看某一个数据库的详细信息,基本语库信息。如果要查看某一个数据库的详细信息,基本语法如下法如下:为了使查询的信息显示更加直观,可以使用以下语法:为了使查询的信息显示更加直观,可以使用以下语法:SHOW CREATE DATABASE 数据库名称数据库名称 G3.3.2 3.3.2 查看数据库详细信息查看数据库详细信息mysql SHOW CREATE DATABASE bookmanage G* 1. row * Database: bookmanage Create Database: CREATE DATABASE bookmanage /*!40100 DEFAULT CHARACTER
46、 SET utf8 */1 row in set (0.00 sec)mysql SHOW CREATE DATABASE mylove G* 1. row * Database: mylove Create Database: CREATE DATABASE mylove /*!40100 DEFAULT CHARACTER SET big5 */1 row in set (0.00 sec) 【示例【示例5 5】 在示例在示例4 4中已经创建了两个新的数据库,下面通过执中已经创建了两个新的数据库,下面通过执行行SHOWSHOW语句查看数据库的详细信息。执行语句查看数据库的详细信息。执行SH
47、OW CREASHOW CREATE DATABASE bookmanage GTE DATABASE bookmanage G语句时输出结果如下:语句时输出结果如下:3.4 3.4 修改数据库修改数据库 数据库还存在着修改操作,修改数据库名称时有两种数据库还存在着修改操作,修改数据库名称时有两种方法:一种是通过方法:一种是通过MySQL WorkbenchMySQL Workbench工具修改,在弹出工具修改,在弹出的菜单项中选择的菜单项中选择Alter SchemaAlter Schema项,如图项,如图3-83-8所示;另一种是所示;另一种是通过在控制台中执行语句进行修改。通过在控制台中
48、执行语句进行修改。图3-8 通过Workbench修改数据库3.4 3.4 修改数据库修改数据库mysql ALTER DATABASE mylove CHARACTER SET gb2312;Query OK, 1 row affected (0.01 sec)mysql SHOW CREATE DATABASE mylove G* 1. row * Database: mylove Create Database: CREATE DATABASE mylove /*!40100 DEFAULT CHARACTER SET gb2312*/1 row in set (0.00 sec) 如果
49、如果MySQLMySQL数据库的存储引擎是数据库的存储引擎是MyISAMMyISAM,那么只要修,那么只要修改改DATADATA目录下的库名文件夹就可以了,目录下的库名文件夹就可以了,但是如果是但是如果是InnoDBInnoDB存储引擎,其实是无法修改数据库名称的存储引擎,其实是无法修改数据库名称的,如上图,如上图3-83-8所示,所示,在该图中在该图中只能修改字符集和校对规则只能修改字符集和校对规则。 虽然虽然InnoDBInnoDB存储引擎无法修改默认数据库名称,但是可存储引擎无法修改默认数据库名称,但是可以对字符集和校对规则进行设置。例如,查看以对字符集和校对规则进行设置。例如,查看my
50、lovemylove数据库,数据库,并把该数据库的字符集修改为并把该数据库的字符集修改为gb2312gb2312。执行语句如下:。执行语句如下:3.5 3.5 删除数据库删除数据库 删除数据库是指在数据库系统中删除已经存在的数据删除数据库是指在数据库系统中删除已经存在的数据库,删除数据库成功后,原来分配的空间将被收回。库,删除数据库成功后,原来分配的空间将被收回。MySMySQLQL中删除数据库时也可以通过两种方式:一种是直接通中删除数据库时也可以通过两种方式:一种是直接通过过MySQL WorkbenchMySQL Workbench工具删除;另一种是执行工具删除;另一种是执行DROP DA
51、DROP DATABASETABASE语句进行删除,在该命令后添加数据库名称的参语句进行删除,在该命令后添加数据库名称的参数。语法如下:数。语法如下:DROP DATABASE 数据库名称数据库名称; 【示例【示例6 6】 在本次示例中删除前面示例创建的在本次示例中删除前面示例创建的mylovemylove数据库,执数据库,执行行DROP DATABASE mylove;DROP DATABASE mylove;语句前和之后会分别执行语句前和之后会分别执行SHSHOW DATABASES;OW DATABASES;语句查看删除前后数据库系统中存在的语句查看删除前后数据库系统中存在的数据库。数据
52、库。3.5 3.5 删除数据库删除数据库 (1 1)首先执行)首先执行SHOW DATABASES;SHOW DATABASES;语句,输出结果如下:语句,输出结果如下:mysql SHOW DATABASES;+-+| Database |+-+| information_schema | bookmanage | mylove | mysql | performance_schema | sakila | test | world |+-+8 rows in set (0.00 sec) (2 2)继续执行)继续执行DROP DATABASE mylove;DROP DATABASE my
53、love;语句删除数据语句删除数据库,输出结果如下:库,输出结果如下:3.5 3.5 删除数据库删除数据库 (3 3)执行删除成功后再次执行)执行删除成功后再次执行SHOW DATABASES;SHOW DATABASES;语句语句查看数据库系统中的数据库。输出结果如下:查看数据库系统中的数据库。输出结果如下:mysql DROP DATABASE mylove;Query OK, 0 rows affected (0.05 sec)mysql SHOW DATABASES;+-+| Database |+-+| information_schema | bookmanage | mysql
54、| performance_schema | sakila | test | world |+-+7 rows in set (0.00 sec)3.5 3.5 删除数据库删除数据库 (4 4)通过执行)通过执行DROP DATABASEDROP DATABASE语句可以删除语句可以删除指定的数据库。与创建数据库之前判断数据库是指定的数据库。与创建数据库之前判断数据库是否存在一样,删除数据库之前也可以判断该数据否存在一样,删除数据库之前也可以判断该数据库是否存在,如果存在则删除。基本语法如下:库是否存在,如果存在则删除。基本语法如下:DROP DATABASE IF EXISTS 数据库名称数
55、据库名称;3.6 3.6 数据库的其他操作数据库的其他操作 创建数据库并不表示要选择并使用它,开发者需要明创建数据库并不表示要选择并使用它,开发者需要明确的进行操作。如果想要查看当前的数据库,可以执行确的进行操作。如果想要查看当前的数据库,可以执行S SELECT DATABASE()ELECT DATABASE()语句。效果如下:语句。效果如下: 从上述内容中可以看到当前从上述内容中可以看到当前MySQLMySQL中选择的是中选择的是informatinformation_schemaion_schema数据库,如果要选择数据库,如果要选择bookmanagebookmanage数据库,可以
56、数据库,可以执行执行USEUSE语句。语法如下:语句。语法如下:mysql SELECT DATABASE();+-+| DATABASE() |+-+| information_schema |+-+1 row in set (0.02 sec)3.6 3.6 数据库的其他操作数据库的其他操作 例如,执行例如,执行USE bookmanageUSE bookmanage语句查看输出的效果。代语句查看输出的效果。代码如下:码如下: 数据库只需要创建一次,但是必须在每次启动数据库只需要创建一次,但是必须在每次启动mysqlmysql会话时在使用前先选择它会话时在使用前先选择它,开发者可以根据,开发者可以根据上述的上述的USEUSE语句来实现,还可以在语句来实现,还可以在DOSDOS窗口通过窗口通过m mysqlysql命令选择数据库,这时只需要在提供连接参数命令选择数据库,这时只需要在提供连接参数之后指定数据库名称。代码如下:之后指定数据库名称
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 33526-2017转基因植物产品数字PCR检测方法》
- 深度解析(2026)《GBT 33436-2016四轮全地形车可靠性和耐久性试验方法》
- 任务2.3 配送设置
- 8 升国旗【从基到通】一年级上册语文统编版
- 脉络膜缺损课件
- 医疗数据安全应急演练中的技术栈集成方案
- 医疗数据安全培训的区块链技术应用全景图构建
- 医疗数据安全合规性风险应对方案
- 江苏省南通如皋市2026届高一上数学期末复习检测模拟试题含解析
- 医疗数据安全共享的区块链技术人才培养
- 四川省成都市2025届高三上学期第一次诊断性考试化学检测试卷(附答案)
- 钢轨探伤钢轨探伤试块课件
- 监理单位工程项目廉洁教育
- 文化创意公司组织架构及职责
- 大学生人身安全教育知到智慧树章节测试课后答案2024年秋齐鲁工业大学
- 新生儿溶血病-课件
- 临床药理学试题及答案
- 页岩砖订购合同
- 机电安装工程安全技术交底大全
- 中国历史地理智慧树知到期末考试答案章节答案2024年北京大学
- 2023年建筑涂料研发工程师年终总结及年后展望
评论
0/150
提交评论