MYSQL55从零开始学第3章数据库的基本操作剖析.docx

上传人:b****9 文档编号:25710937 上传时间:2023-06-11 格式:DOCX 页数:15 大小:70.25KB
下载 相关 举报
MYSQL55从零开始学第3章数据库的基本操作剖析.docx_第1页
第1页 / 共15页
MYSQL55从零开始学第3章数据库的基本操作剖析.docx_第2页
第2页 / 共15页
MYSQL55从零开始学第3章数据库的基本操作剖析.docx_第3页
第3页 / 共15页
MYSQL55从零开始学第3章数据库的基本操作剖析.docx_第4页
第4页 / 共15页
MYSQL55从零开始学第3章数据库的基本操作剖析.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

MYSQL55从零开始学第3章数据库的基本操作剖析.docx

《MYSQL55从零开始学第3章数据库的基本操作剖析.docx》由会员分享,可在线阅读,更多相关《MYSQL55从零开始学第3章数据库的基本操作剖析.docx(15页珍藏版)》请在冰豆网上搜索。

MYSQL55从零开始学第3章数据库的基本操作剖析.docx

MYSQL55从零开始学第3章数据库的基本操作剖析

第3章

数据库的基本操作

 

MySQL安装好以后,首先需要创建数据库,这是使用MySQL各种功能的前提。

本章将详细介绍数据库的基本操作,主要内容包括:

创建数据库、删除数据库、不同类型的数据存储引擎和存储引擎的选择。

 

◆掌握如何创建数据库

◆熟悉数据库的删除操作

◆了解数据存储引擎的简介

◆熟悉常见的存储引擎工作原理

◆熟悉如何选择符合需求的存储引擎

◆掌握综合案例中数据库的创建和删除方法

 

3.1创建数据库

本节视频教学录像:

分钟

MySQL安装完成之后,将会在其data目录下自动创建几个必须的数据库,可以使用SHOWDATABASES;语句来查看当前所有存在的数据库,登录MySQL并输入语句如下。

mysql>SHOWDATABASES;

+--------------------+

|Database|

+--------------------+

|information_schema|

|mysql|

|performance_schema|

|test|

+--------------------+

5rowsinset(0.03sec)

可以看到,数据库列表中包含了4个数据库,mysql是必需的,它描述用户访问权限,test数据库为测试数据库,用户可以使用该数据库学习MySQL,其他的数据库的作用将在后面的章节介绍。

创建数据库是在系统磁盘上划分一块区域用于数据的存储和管理,如果管理员在设置权限的时候为用户创建了数据库,则可以直接使用,否则,需要自己创建数据库,MySQL中创建数据库的基本SQL语法格式为:

CREATEDATABASEdatabase_name;

“database_name”为要创建的数据库的名称,该名称不能与已经存在的数据库重名。

【例3.1】创建测试数据库test_db,输入语句如下。

CREATEDATABASEtest_db;

数据库创建好之后,可以使用SHOWCREATEDATABASE声明查看数据库的定义。

【例3.2】查看创建好的数据库test_db的定义,输入语句如下。

mysql>SHOWCREATEDATABASEtest_db\G;

***************************1.row***************************

Database:

test_db

CreateDatabase:

CREATEDATABASE`test_db`/*!

40100DEFAULTCHARACTERSETutf8*/

1rowinset(0.00sec)

可以看到,如果数据库创建成功,将显示数据库的创建信息。

再次使用SHOWDATABASES;语句来查看当前所有存在的数据库,输入语句如下。

mysql>SHOWdatabases;

+--------------------+

|Database|

+--------------------+

|information_schema|

|mysql|

|performance_schema|

|test|

|test_db|

+--------------------+

5rowsinset(0.03sec)

可以看到,数据库列表中包含了刚刚创建的数据库test_db和其他已经存在的数据库的名称。

3.2删除数据库

本节视频教学录像:

分钟

删除数据库是将已经存在数据库从磁盘上空间上清除,清除之后,数据库中的所有数据也将一同被删除,删除数据库语句和创建数据库的语句相似,MySQL中删除数据库的基本语法格式为:

DROPDATABASEdatabase_name;

“database_name”为要删除的数据库的名称,如果指定的数据库不存在,则删除出错。

【例3.3】删除测试数据库test_db,输入语句如下。

DROPDATABASEtest_db;

语句执行完毕之后,数据库test_db将被删除,再次使用SHOWCREATEDATABASE声明查看数据库的定义,结果如下。

mysql>SHOWCREATEDATABASEtest_db\G;

ERROR1049(42000):

Unknowndatabase'test_db'

ERROR:

Noqueryspecified

执行结果给出一条错误信息:

“ERROR1049<42000>:

Unknowndatabase'test_db'”,即数据库test_db已不存在,删除成功。

提示

使用DROPDATABASE命令时候要非常谨慎,在执行该命令时,MySQL不会给出任何提醒确认信息,DROPDATABASE声明删除数据库后,数据库中存储的所有数据表和数据也将一同被删除,如果没有对数据库进行备份,这些数据将不能恢复。

3.3数据库存储引擎

本节视频教学录像:

分钟

数据库存数引擎是数据库底层软件组件,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据操作。

不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。

现在许多不同的数据库管理系统都支持多种不同的数据引擎。

MySQL的核心就是存储引擎。

3.3.1MySQL存储引擎简介

MySQL提供了多个不同的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。

在MySQL中,不需要在整个服务器使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。

MySQl5.5支持的存储引擎有:

InnoDB,MyISAM,Memory,Merge,Archive,Federated,CSV,BLACKHOLE等。

可以使用SHOWENGINES语句查看系统所支持的引擎类型,结果如下。

mysql>SHOWENGINES\G;

***************************1.row***************************

Engine:

FEDERATED

Support:

NO

Comment:

FederatedMySQLstorageengine

Transactions:

NULL

XA:

NULL

Savepoints:

NULL

***************************2.row***************************

Engine:

MRG_MYISAM

Support:

YES

Comment:

CollectionofidenticalMyISAMtables

Transactions:

NO

XA:

NO

Savepoints:

NO

***************************3.row***************************

Engine:

MyISAM

Support:

YES

Comment:

MyISAMstorageengine

Transactions:

NO

XA:

NO

Savepoints:

NO

***************************4.row***************************

Engine:

BLACKHOLE

Support:

YES

Comment:

/dev/nullstorageengine(anythingyouwritetoitdisappears)

Transactions:

NO

XA:

NO

Savepoints:

NO

***************************5.row***************************

Engine:

CSV

Support:

YES

Comment:

CSVstorageengine

Transactions:

NO

XA:

NO

Savepoints:

NO

***************************6.row***************************

Engine:

MEMORY

Support:

YES

Comment:

Hashbased,storedinmemory,usefulfortemporarytables

Transactions:

NO

XA:

NO

Savepoints:

NO

***************************7.row***************************

Engine:

ARCHIVE

Support:

YES

Comment:

Archivestorageengine

Transactions:

NO

XA:

NO

Savepoints:

NO

***************************8.row***************************

Engine:

InnoDB

Support:

DEFAULT

Comment:

Supportstransactions,row-levellocking,andforeignkeys

Transactions:

YES

XA:

YES

Savepoints:

YES

***************************9.row***************************

Engine:

PERFORMANCE_SCHEMA

Support:

YES

Comment:

PerformanceSchema

Transactions:

NO

XA:

NO

Savepoints:

NO

9rowsinset(0.00sec)

Support列的值表示某种引擎是否能使用:

YES表示可以使用,NO表示不能使用,DEFAULT表示该引擎为当前默认存储引擎。

3.3.2InnoDB存储引擎

InnoDB事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键。

MySQL5.5.5之后,InnoDB作为默认存储引擎,InnoDB主要特性有:

⑴InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。

InnoDB锁定在行级并且也在SELECT语句提供一个类似Oracle的非锁定读。

这些功能增加了多用户部署和性能。

在SQL查询中,可以自由地将InnoDB类型的表与其它MySQL的表的类型混合起来,甚至在同一个查询中也可以混合。

⑵InnoDB是为处理巨大数据量时的最大性能设计。

它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的。

⑶InnoDB存储引擎被完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。

InnoDB的表和索引在一个逻辑表空间中,表空间可以包含数个文件(或原始磁盘分区)。

这与MyISAM表不同,比如在MyISAM表中每个表被存在分离的文件中。

InnoDB表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上。

⑷InnoDB支持外键完整性约束(FOREIGNKEY)。

存储表中的数据时,每张表的存储都按主键顺序存放,如果没有显式的在表定义时指定主键,InnoDB会为每一行生成一个6字节的ROWID,并以此作为主键。

⑸InnoDB被用来在众多需要高性能的大型数据库站点上。

InnoDB不创建目录,使用InnoDB时,MySQL将在MySQL数据目录下创建一个名为ibdata1的10MB大小的自动扩展数据文件,以及两个名为ib_logfile0和ib_logfile1的5MB大小的日志文件。

3.3.3MyISAM存储引擎

MyISAM基于ISAM存储引擎,并对其进行扩展。

它是在Web、数据仓储和其它应用环境下最常使用的存储引擎之一。

MyISAM拥有较高的插入、查询速度,但不支持事务。

在MySQL5.5.5之前的版本中,MyISAM是默认存储引擎。

MyISAM主要特性有:

⑴大文件(达63位文件长度)在支持大文件的文件系统和操作系统上被支持。

⑵当把删除和更新及插入混合的时候,动态尺寸的行更少碎片。

这要通过合并相邻被删除的块,以及若下一个块被删除,就扩展到下一块来自动完成。

⑶每个MyISAM表最大索引数是64。

这可以通过重新编译来改变。

每个索引最大的列数是16个。

⑷最大的键长度是1000字节。

这也可以通过编译来改变。

对于键长度超过250字节的情况,使用一个超过1024字节的的键块。

⑸BLOB和TEXT列可以被索引。

⑹NULL值被允许在索引的列中。

这个占每个键的0-1个字节。

⑺所有数字键值以高字节位先被存储以允许一个更高地索引压缩。

⑻每表一个AUTO_INCREMEN列的内部处理。

MyISAM为INSERT和UPDATE操作自动更新这一列。

这使得AUTO_INCREMENT列更快(至少10%)。

在序列顶的值被删除之后就不能再利用。

⑼可以把数据文件和索引文件放在不同目录。

⑽每个字符列可以有不同的字符集。

⑾有VARCHAR的表可以有固定或动态记录长度。

⑿VARCHAR和CHAR列可以多达64KB。

使用MyISAM引擎创建数据库,将生产3个文件。

文件的名字以表的名字开始,扩展名指出文件类型:

frm文件存储表定义,数据文件的扩展名为.MYD(MYData),索引文件的扩展名是.MYI(MYIndex)。

3.3.4MEMORY存储引擎

MEMORY存储引擎将表中的数据存储在内存中,为查询和引用其它表数据提供快速访问。

MEMORY主要特性有:

⑴MEMORY表可以有多达每个表32个索引,每个索引16列,以及500字节的最大键长度。

⑵MEMORY存储引擎执行HASH和BTREE索引。

⑶可以在一个MEMORY表中有非唯一键。

⑷MEMORY表使用一个固定的记录长度格式。

⑸MEMORY不支持BLOB或TEXT列。

⑹MEMORY支持AUTO_INCREMENT列和对可包含NULL值的列的索引。

⑺MEMORY表在所有客户端之间共享(就像其它任何非TEMPORARY表)。

⑻MEMORY表内容被存在内存中,内存是MEMORY表和服务器在查询处理之时的空闲中创建的内部表共享。

⑼当不再需要MEMORY表的内容之时,要释放被MEMORY表使用的内存,应该执行DELETEFROM或TRUNCATETABLE,或者整个地删除表(使用DROPTABLE)。

3.3.5存储引擎的选择

不同存储引擎都有各自的特点,适应于不同的需求,为了做出选择,首先需要考虑每一个存储引擎提供了那些不同的功能。

表3.1存储引擎比较

功能

MyISAM

Memory

InnoDB

Archive

存储限制

256TB

RAM

64TB

None

支持事务

No

No

Yes

No

支持全文索引

Yes

No

No

No

支持数索引

Yes

Yes

Yes

No

支持哈希索引

No

Yes

No

No

支持数据缓存

No

N/A

Yes

No

支持外键

No

No

Yes

No

如果要提供提交,回滚和崩溃恢复能力的事务安全(ACID兼容)能力,并要求实现并发控制,InnoDB是个很好的选择。

如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率;如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中Memory引擎,MySQL中使用该引擎作为临时表存放查询的中间结果。

如果只有INSERT和SELECT操作,可以选择Archive引擎,Archive存储引擎支持高并发的插入操作,但是本身并不是事务安全的。

Archive存储引擎非常适合存储归档数据,如记录日志信息可以使用Archive引擎。

使用那一种引擎要根据需要灵活使用,一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求,使用合适的存储引擎,将会对提供整个数据库的性能。

3.4综合案例——数据库的创建和删除

本节视频教学录像:

分钟

本章分别介绍了数据库的基本操作,包括数据库的创建、查看当前数据库和删除数据库。

最后介绍了MySQL中各种存储引擎。

在这里,通过一个案例,让读者全面回顾数据库的基本操作。

案例目的

登陆MySQL,使用数据库操作语句创建、查看和删除数据库,步骤如下:

步骤1:

登陆数据库。

步骤2:

创建数据库zoo。

步骤3:

选择当前数据库为zoo,并查看zoo数据库的信息。

步骤4:

删除数据库zoo。

案例操作过程如下

步骤1:

登陆数据库。

打开windows命令行,输入登陆用户名和密码。

C:

\>mysql–hlocalhost-uroot-p

Enterpassword:

**

或者打开MySQL5.5CommandLineClient,只用输入用户密码也可以登陆。

登陆成功后显示如下信息。

WelcometotheMySQLmonitor.Commandsendwith;or\g.

YourMySQLconnectionidis2

Serverversion:

5.5.13MySQLCommunityServer(GPL)

Copyright(c)2000,2010,Oracleand/oritsaffiliates.Allrightsreserved.

OracleisaregisteredtrademarkofOracleCorporationand/orits

affiliates.Othernamesmaybetrademarksoftheirrespective

owners.

Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.

mysql>

出现mysql命令输入提示符时表示登陆成功,可以输入SQL语句进行操作。

步骤2:

创建数据库zoo,执行过程如下。

mysql>CREATEDATABASEzoo;

QueryOK,1rowaffected(0.00sec)

提示信息表明语句成功执行。

查看当前系统中所有的数据库,执行过程如下。

mysql>SHOWDATABASES;

+--------------------+

|Database|

+--------------------+

|information_schema|

|mysql|

|performance_schema|

|test|

|zoo|

+--------------------+

可以看到,数据库列表中已经有了名称为zoo数据库,数据库创建成功。

步骤3:

选择当前数据库为zoo,查看数据库zoo的信息,执行过程如下。

mysql>USEzoo;

Databasechanged

提示信息Databasechanged表明选择成功。

查看数据库信息,

mysql>SHOWCREATEDATABASEzoo\G;

***************************1.row***************************

Database:

zoo

CreateDatabase:

CREATEDATABASE`zoo`/*!

40100DEFAULTCHARACTERSETutf8*/

Database值表明当前数据库名称;CreateDatabase值表示创建数据库zoo的语句,后面的注释信息。

步骤4:

删除数据库zoo,执行过程如下。

mysql>DROPDATABASEzoo;

QueryOK,0rowsaffected(0.00sec)

语句执行完毕,将数据库zoo从系统中删除。

mysql>SHOWDATABASES;

+--------------------+

|Database|

+--------------------+

|information_schema|

|mysql|

|performance_schema|

|test|

+--------------------+

可以看到,数据库列表中已经没有名称为zoo的数据库。

3.5专家点拨

点拨:

如何查看默认存储引擎?

在前面介绍了SHOWENGINES语句查看系统中所有的存储引擎,其中包括默认的存储引擎,还可以使用一种直接的方法查看默认存储引擎,输入语句如下。

mysql>SHOWVARIABLESLIKE'storage_engine';

+----------------+--------+

|Variable_name|Value|

+----------------+--------+

|storage_engine|InnoDB|

+----------------+--------+

由执行结果直接显示了当前默认的存储引擎。

MySQL不同版本中的默认存储引擎不同,MySQL允许修改默认存储引擎,方法是修改配置文件。

在Windows平台下,设置数据库默认存储引擎需要修改配置文件my.ini。

例如,将MySQL5.5的默认存储引擎修改为MyISAM。

首先打开my.ini,将[mysqld]字段下面的default-storage-engine参数后面的值,由“InnoDB”改为“MyISAM”,保存文件,重新启动MySQL即可。

经典习题

⑴.查看当前系统中的数据库。

⑵.创建数据库Book,使用SHOWCREATEDATABASE语句查看数据库定义信息。

⑶.删除数据库Book

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1