Loading... <img class=" ls-is-cached lazyloaded" title="1480776820928760.jpg" src="https://www.zsythink.net/wp-content/uploads/ueditor/php/upload/image/20161203/1480776820928760.jpg" alt="mysql.jpg" data-src="https://www.zsythink.net/wp-content/uploads/ueditor/php/upload/image/20161203/1480776820928760.jpg" style=""> 这篇文章总结了mysql中常用的库管理语句。 在本博客中,”mysql”是一个系列文章,这些文章主要对mysql/mariadb的常用知识点进行了总结,每一篇博客总结的知识点有所不同,具体内容可参考mysql文章列表。 mysql文章列表直达链接:<a href="https://www.zsythink.net/archives/tag/mysql/" target="_blank" rel="noopener">mysql知识点总结</a> <h1 id="wznav_0">创建数据库</h1> 创建数据库的基础语法如下图,我们对比这下图中的编号一一进行描述: <img class=" lazyloaded" src="https://www.zsythink.net/wp-content/uploads/2017/01/010517_0306_1.png" alt="" data-src="https://www.zsythink.net/wp-content/uploads/2017/01/010517_0306_1.png" style=""> 1、在其他关系型数据库中,database与schema是有区别的,但是在mysql 5.0.2以后,我们在创建数据库时可以不加区分的使用database和schema,我们可以将create schema理解为 create dataabse的代名词。 2、if not exists表示在对应的数据库不存在的时候才会创建,if not exists被中括号括起来,表示此项为可选,建议在sql脚本中使用create命令创建数据库时加入此项,以免对应名称的数据库已经存在导致sql脚本终止。 3、create_specification表示我们可以在创建数据库时指定对应的数据库规范,规范具体内容见4和5。 4、我们可以在创建数据库时指定数据库的字符集,使用character set对应字符集名称即可指定使用什么字符集,如果使用了default关键字,那么这个数据库中创建的所有表默认都会继承这个数据库的字符集,default为可选选项,如果你不知道存在哪些字符集,可以使用”show character set;”命令查看所有可用字符集,针对数据库有数据库级别的字符集,针对表有表级别的字符集,针对客户端与服务端一次会话,又有会话级别的连接字符集,当我们使用status命令时,可以看到当前连接、客户端、数据库、以及服务器级别的字符集的值,如果我们在创建数据库的时候没有指定数据库的字符集,那么数据库默认继承服务器级别的字符集。 5、我们可以在创建数据库时指定数据库的排序规则,比如有多个汉字,我们是以笔画多少排序呢?还是以汉字对应的拼音首字母的顺序排序呢?还是以笔画的顺序排序呢?这种就可以理解为排序规则,同一种字符集下可能有多种排序规则,但是一种排序规则只能对应于一种字符集,也就是说,当你指定了一种排序规则,则不用再指定对应的字符集,因为这种排序规则肯定是针对某个字符集制定的排序规则,所以,如果给定了排序规则,则不要同时指明字符集,每一个字符集都有默认的排序规则,你可以只指定字符集,不指定排序规则,代表使用字符集默认的排序规则,使用”show collation;”命令可以查看所有可用的排序方式,以及排序方式对应的字符集,default为可选指令,作用与4中的default的作用相同。 语句示例: 创建名为testdb的数据库 <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-text">create database testdb;</span></div> </div> </div> </div> 如果名为testdb的数据库不存在,则创建之。 <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-text">create database </span><span class="enlighter-k1">if</span><span class="enlighter-text"> not exists testdb;</span></div> </div> </div> </div> 如果名为testdb的数据库不存在,则创建之,并且设置其字符集为utf16. <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-text">create database </span><span class="enlighter-k1">if</span><span class="enlighter-text"> not exists testdb default character set utf16;</span></div> </div> </div> </div> <h1 id="wznav_1">查看数据库</h1> 列出所有已经存在的数据库,查看所有数据库: <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-text">show databases;</span></div> </div> </div> </div> 列出创建对应数据库的sql语句: <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-text">show create database testdb;</span></div> </div> </div> </div> 查看可用的字符集的命令: <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-text">show character set;</span></div> </div> </div> </div> 查看排序方式的命令: <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-text">show collation;</span></div> </div> </div> </div> 查看当前数据库与当前连接的概要信息: <img class=" lazyloaded" src="https://www.zsythink.net/wp-content/uploads/2017/01/010517_0306_3.png" alt="" data-src="https://www.zsythink.net/wp-content/uploads/2017/01/010517_0306_3.png" style=""> 1 当前链接的id号 2 当前选择的使用的数据库 3 当前链接的登录用户 4 是否使用了ssl 7 当前会话的行终结符是分号 8 当前mysql版本为mariadb分支 9 当前mysql服务器的版本号 10协议版本 11使用的链接类型,通过本机的套接字文件进行连接 12服务器使用的字符类型 13当前数据库使用的字符类型 14当前mysql客户端使用的字符类型 15当前链接使用的字符类型 16套接字文件路径 17mysql数据库的启动时长 <h1 id="wznav_2">修改数据库</h1> 修改数据库的基本语法如下: ALTER {DATABASE | SCHEMA} [db_name] alter_specification … alter_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name 修改数据库无非就是修改数据库的字符集,或者修改字符集的排序规则,字符集与排序规则的概念已经在创建数据库的命令中描述过,此处不再赘述,但是需要注意的是,修改字符集与修改排序规则是”二选一”的,原因在创建数据库的命令中同样描述过,所以直接给出示例语句如下。 修改数据库的字符集。 使用如下语句查看字符集。 <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-text">show variables like </span><span class="enlighter-s0">'character%'</span><span class="enlighter-text">;</span></div> </div> </div> </div> 如果字符集与我们期望的字符集不相符,则使用如下语句修改数据库字符集。 <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-text">alter database testdb character set utf8;</span></div> </div> </div> </div> 修改数据库的字符集,并设置为默认字符集,数据库中的表都会继承此字符集。 <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-text">alter database testdb default character set utf8;</span></div> </div> </div> </div> <h1 id="wznav_3">删除数据库</h1> 删除数据库的基本语法如下,注意,删除操作无法恢复: DROP {DATABASE | SCHEMA} [IF EXISTS] db_name 示例语句: <div class="enlighter-default enlighter-v-standard enlighter-t-enlighter enlighter-hover enlighter-overflow-scroll"> <div class="enlighter-toolbar"> <div class="enlighter-btn enlighter-btn-raw"></div> <div class="enlighter-btn enlighter-btn-copy"></div> <div class="enlighter-btn enlighter-btn-window"></div> </div> <div class="enlighter"> <div class=""> <div><span class="enlighter-text">drop database </span><span class="enlighter-k1">if</span><span class="enlighter-text"> exists testdb;</span></div> <div>转载自朱双印日志https://www.zsythink.net/archives/806</div> </div> </div> </div> Last modification:May 29, 2024 © Allow specification reprint Like 如果觉得我的文章对你有用,请随意赞赏