文章目录
1.前言
本篇文章是结合了本学期所学的MySQL数据库的一些基础知识点以及这几天整理MySQL数据库结合实际开发上手之后的一些感悟和建议(虽然篇幅有点长, 但是都会是比较有用的).
由于目前技术能力有限, 本文先仅提出两点建议, 以防留到以后忘记 (一是: 关于编写SQL语句使用命令行或图形化界面的选择; 二是: 关于MySQL中字符编码的修改), 后面如若再有重要的知识点会及时补充, 敬请期待.
2.关于编写SQL语句使用命令行或图形化界面的选择
对于使用命令行来编写SQL语句还是使用Navicat之类的图形化界面来编写这个问题, 因为两者我都是经过深入地理解以及使用过, 所以, 这里我想说说我自己的理解.
前段时间在学校学MySQL数据库的时候, 学校老师是比较推荐我们使用图形化界面来编写SQL语句的, 确实如此, 图形化界面为初学者带来了非常多的便利, 就譬如: 想要建立一个表, 无需自己敲代码, Navicat里面使用鼠标进行操作就可以很快地建立出一张表出来; 又或者在查看表结构的时候, 直接双击即可直观地看到整张表长得是啥样; 在稍微修改过后, 也不需要重新再编写SQL语句, 在查看表结构的时候先刷新一下即可看到改变后的效果… 总体来说, 这种图形化界面对初学者是非常友好的.
但是在我这几天的学习过程中, 我越发感受到图形化界面操作弊端的扩大, 反而使用命令行能够更加符合以后选择计算机相关工作的需要.
第一, 使用图形化界面进行编写的时候,经常会有代码的提示, 这样的话经常就会不经意地按回车键让整个SQL语句都写好; 第二, 在使用图形化界面的时候, 经常需要使用鼠标来点击从而使SQL语句运行起来, 而使用命令行进行输入的时候, 只需按回车键即可运行, 在这个方面上, 使用图形化界面的效率并不一定比使用命令行高多少.
有时候, 有可能在公司的服务器上需要在网站上来进行编写SQL语句(甚至有时候需要在暗网上来进行编写), 在这种情况下, 编写代码的页面就无异于在黑框框了, 根本就链接不上类似Navicat之类的图形化界面来进行操作(其实大部分互联网公司在执行数据库操作的时候使用的都是命令行). 另一方面, 在面试的过程中, 面试官很有可能会直接要求写出一段SQL语句(不包含任何提示)等等. 还有最重要的一个原因, 就是 — 当数据库服务器卡死(无响应)的时候, 当此时使用的是图形化界面的话, 并不能够及时地对其进行处理; 但是如果这时候使用的是命令行的话, 直接按 Ctrl + C 就可以马上结束本行SQL语句的执行, 及时减少不必要的损失.
但是在命令行中编写SQL语句的时候, 不分行还好, 有时候为了代码整体的美观, 都会在必要的时候选择分行, 可能会导致不必要的错误, 就比如下面的这段代码: 但写完age这一行的时候, 以为下面还有语句需要继续编写, 但是当换行了之后, 发现其实到这里就已经结束了, 这时候再按回车键就会直接报错了. 针对这一类的问题,解决方法已放在下一个标题当中.
3.解决使用命令行的换行问题
解决方法有很多种, 这里介绍一种比较受众的方法: 使用其他文本编辑器编写SQL语句, 在将这些语句复制到命令行控制台当中. 本人使用的是VSCode来编写: 先建立一个文本文档, 后缀改成.sql, 形如:
然后选择打开方式, 就可以使用VSCode打开了(前提是之前有下载过VSCode), 打开之后就可以直接编写语句了:
虽然我在这里介绍了可以使用其他文本编辑器来辅助编写SQL语句, 但是我们写SQL语句的时候, 大多数情况下都是直接在命令行的黑框中直接编写的, 对一些较长的代码才会考虑使用其他工具进行辅助.
除此之外, 使用命令行的黑框还有一个优势, 就是可以使用键盘中的上下建来选择之前已经写过的语句, 然后直接就可以执行, 效果使用起来丝毫不逊于使用图形化界面操作.
4.关于MySQL中字符编码的修改
对于MySQL中字符编码的修改也就是我整篇文章想要介绍的重点内容了, 在这里, 我强烈建议各位观看我博客的小伙伴修改默认的字符编码(此操作算也是属于一劳永逸的了).
首先来谈谈具体有哪些字符编码, MySQL数据库支持的字符编码类型是非常多的, 有UTF-8、GB2312、GBK、BIG5 等等…
4.1 修改默认字符编码的原因
由于MySQL中默认的字符编码是拉丁文的, 是不支持在sql语句中输入中文字符的, 而我们在实际编写sql语句的时候是会大量地使用到中文的, 所以, 我们就需要将MySQL默认的字符编码修改为能够支持中文的字符编码格式.
其中, 我们最常使用的就是gbk和utf-8这两种支持中文的字符编码格式了. 那么它们两者之间又有什么区别呢? 选择哪一种会更好一些呢?
(1) gbk: 是使用两个字节来表示一个汉字, 同时Windows简体中文版默认的也是这个字符编码.
(2) utf8: 相比于gbk来说, utf8会更加灵活, utf8是一个变长的字符编码, 至于它是使用几个字节来表示是不知道的, 是可变的. 当然, 对于中文的话, 一般都是一个中文字使用三个字节来表示的. utf8也是"世界通用的字符编码", 是当今最流行, 使用的最多的字符编码. 所以, 既然utf8如此好用, 那么接下来我们修改默认的字符编码就修改成utf8.
4.2 查看当前MySQL版本的字符编码
在进行字符编码修改之前, 可以先查看自己MySQL当前的字符编码是什么, 万一之前自己已经修改过了~~
打开MySQL命令框, 输入如下这段命令: show variables like 'character%';
看看你的显示框是否是像下图这样:
如若不是, 则进行接下来的修改字符编码操作.
4.3 修改字符编码的两种方法
修改字符编码主要的两种做法分别是: 使用everything查找, 直接找属性里的地址. 这里推荐使用法二, 因为法一有一定的限制, 请继续往下看.
4.3.1 使用everything查找
限制条件一: 需要电脑上有安装下面这个软件 — everything.
限制条件二: 电脑上要尽量没有其他版本MySQL的历史残留, 因为接下来的操作是需要在电脑上查找my.ini这个文件, 如若之前有安装过其他版本, 则会像我下面一样显示两个my.ini文件.
4.3.2 直接找属性里的地址
步骤一: 找到电脑上的MySQL, 右键 -> 更多 -> 打开文件位置.
步骤二: 右键 -> 属性 -> 复制这段目标(复制到5.7部分即可, 后面的my.ini等内容不要复制).
步骤三: 使用文件搜索来快速找到my.ini所在的位置.
4.4 修改my.ini里的内容
操作前提醒: 在进行一些重要文件修改的时候, 最好需要先将这个文件进行备份, 避免在修改错误之后, 无法回到原来的内容. 进行字符编码的操作也不例外.
第一步: 在client位置下添加上这段代码: default-character-set=utf8
第二步: 在mysqld的位置下添加上这段代码: character-set-server=utf8
4.5 重启MySQL服务器
下一步就是搜索系统自带的服务应用并打开.
找到MySQL的位置, 选择点击重新启动即可.
4.6 查看修改之后的编码
再次输入这段命令: show variables like 'character%';
, 就会发现默认的字符编码格式都变为utf8了.
注意: 对于之前数据库已经存在的表结构, 还是原来的默认编码格式(不要以为自己没有修改成功哈~~), 这里就需要删除旧的表,重新建库建表…
5.后记
(1) 使用图形化界面编写虽能够满足一时的需求, 但是对于远期的提升, 用处并不是很大的. 在这里, 我还是比较推荐想要进入互联网行业的小伙伴使用命令行方式进行编写SQL语句. 但是, 因人而异, 如若已选定使用图形化界面进行编写, 那就继续好好使用即可.
(2) 作为未来的程序猿, 这里也建议修改字符编码为utf-8, 达到一劳永逸.