趣文网 > 作文大全

MySQL数据库操作语法详解

2020-12-01 21:45:01
相关推荐

1 数据库创建

建库语句如下:

CREATE DATABASE|SCHEMA会创建一个给定名称的数据库,只有拥有CREATE权限才能使用该语法。不加IF NOT EXISTS时,如果需要创建数据库已经同名存在则会报错。

create_specification中指定了创建数据库特性。数据库特性存放在数据库目录下的db.opt文件中,一般在数据库安装目录的data/db_name/子目录下。CHARACTER SET子句指定了数据库默认的字符集,COLLATE子句指定了数据库默认校对。

MySQL的数据库以数据库名为目录下包含与表对应的文件的方式实现的,例如我的数据库安装目录是/usr/local/mysql,并且创建了一个test数据库,里面有个test表。那么在/usr/local/mysql/data目录下的test子目录就是test数据库对应的目录,该子目录下的db.opt就指定了test数据库的特性。其中test.frm就是test表的数据文件。在数据的初创时是没有表存在的,它只会在data目录下生成数据库目录并在其中生成db.opt文件。

如果在data目录下使用mkdir命令直接创建一个目录,服务器也会把它当作一个数据库,并且在SHOW DATABASES中也可以输出。

MySQL对于数据库的个数并没做限制,但是需要考虑部署服务的文件系统可能对子目录的个数有限制。

2 数据库删除

DROP DATABASE会删除所有的数据表并删除数据库,使用该命令应该拥有DROP权限。DROP SCHEMA是同等命令。注意:当一个数据库被删除时,该数据库对应的用户权限不会自动删除,需要手工删除。

IF EXISTS就是为了防止所要删除的数据库不存在而报错。

如果当前默认的数据库被删除了,那么默认数据库不会被设置,也就是在执行DATABASE()函数会返回NULL。如下图所示:

如果数据库上存在链接使用该命令,那么链接库和原始库都会被删除。

DROP DATABASE命令会返回删除的表的个数,即.frm文件的个数。该命令会删除数据库目录以及目录下的所有文件,包括:.BAK、.DAT、.HSH、.MRG、.MYD、.MYI、.TRG、 .TRN、.cfg、.db、.frm、.ibd、.ndb、 .par以及.opt等。

如果目录下还存在其他不能删除的文件,那么该数据库目录是不会被删除的,这是需要手动去删除数据库目录下的文件,然后在重新执行DROP DATABASE命令。

删除数据库时,不会删除数据库中的临时表,临时表在创建它的会话结束后会自动删除。

3 数据库修改

ALTER DATABASE或ALTER SCHEMA可以用来改变数据库的所有属性,也就是数据库目录下的db.opt文件,该命令需要ALTER权限才能执行。如果命令中省略了db_name,则对默认数据库进行操作。

1> 国家语言选择

CHARACTER SET子句会修改数据库默认的字符集,COLLATE子句会修改数据库校验。第10章字符集、校验、解码中讨论了这些东西。

可以通过使用SHOW CHARACTER SET和SHOW COLLATION语句查看哪些字符集和校验码可以使用。如果修改了数据库默认编码与校验,之前存储过程和函数必须被删除并重新创建。

2> 5.1后的升级

UPGRADE DATA DIRECTORY子句用与对5.1版本之前的数据库数据文件目录进行重命名。该子句使用有以下条件:

1) 从5.1之前的版本升级到5.1;

2) 如果数据目录名中存在特殊的字符,该命令可以将命名升级数据库当前的编码。

3) 通过mysqlcheck命令使用;

例如,如果MySQL5.0中有数据库名为a-b-c,数据目录名也被定义为a-b-c,对于某些文件系统来说这是不安全的。在MySQL5.1及之后,这样的数据目录名会被编码为a@002db@002dc。

当系统升级为5.1或之后版本后,a-b-c的名称会显示为#mysql50#a-b-c,此时需要使用#mysql50前缀来使用该名称。UPGRADE DDAT DIRECTORY NAME就能是服务器重新对该目录名称进行编码,如下代码:

然后就可以使用数据库名a-b-c,不用添加#mysql50#前缀了。

注意:5.7.6版本已经启用了该子句并且在之后版本会删除该子句。如果需要使用该方式,可以现将数据库升级到5.1,然后再升级到5.7.6之后。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

好人好事作文600字 关于分歧的作文 开门见山的作文开头 作文可爱的熊猫 猫和狗的童话作文 描写自然美景的作文 我最喜爱的运动英语作文 作文动画片 写艺术的作文500字 课余生活作文300字 合川钓鱼城作文 传统文化作文800字 美丽的花园作文500字 这一刻作文600字 在党的阳光下成长作文 持之以恒作文400字 立夏作文 描写黄瓜的作文 绵山一日游作文 2018全国一卷英语作文 探索作文800字 垃圾分类从我做起作文 我多想当一名老师作文 我的爸爸作文300字五年级 读书笔记作文 创造一个节日作文 观赏荷花的作文 堆雪人的作文100字 介绍妈妈的作文300字 家风家训的作文300字