前言
为什么会想到学数据库呢?因为要做后端开发,除了要会PHP或者Java这些语言,也要掌握一定的数据库知识。因此我选择最热门的关系型数据库管理系统——MySQL,也把它当作兴趣来拓展学习。
备注
本文的所有指令都是通过在命令行中输入指令的方式来实现(即DOS界面下输入指令)。
关于MySQL的安装与配置这部分就不作介绍,小伙伴们可以查找这部分的资料,自行安装与配置。另外其他一些例如修改MySQL提示符等拓展操作,有兴趣的小伙伴也可以自己试试。
有关MySQL的操作
要使用MySQL进行数据库的操作,首先就是要启动MySQL服务。在命令行中输入:net start mysql57
(至于这里为什么是mysql57之后将会介绍),然后回车:
这样我们的MySQL就启动成功了。当然,如果MySQL已经启动了,再输入刚才的启动指令肯定是会报错的:
再报错PS:这里告诉大家一个小技巧:使用键盘的Up键和Down键可以重复之前已经输入过的指令,这样就能帮我们节约不少时间。
如果想关闭MySQl服务,也是输入类似的指令: net stop mysql57
,MySQL服务就能正常关闭了:
回到刚才的问题,为什么是start mysql57
,正常来说不应该是start mysql
吗?理由可能会有些简单粗暴:因为我装的是5.7版本的MySQL。当然这并不是重点 ,这里告诉大家,除了上述的启动方式之外,我们还可以直接通过计算机的服务来启动MySQL:右键“计算机”(或者“我的电脑”),点击“管理”,再点击“服务和应用程序”中的“服务”,就会显示电脑中已安装的所有服务。我们会发现这里并没有MySQL服务,只有一个MySQL57服务,这是因为MySQL新版本中服务名字更改了,因此在用命令行启动服务的时候要输入新的名字。
右键想要启动的服务然后点击“启动”,就能正常启动服务了(同样还有停止、重新启动等操作,也是可以执行的)。
这里也启发我们:那可不可以用命令行的方式来启动列表中所示的其他服务呢?答案是可以的,小伙伴们可以自己试试哦。
启动了MySQL之后,接下来要做的就是登录MySQL。登陆的话就要用到用户名和密码了,在我们配置MySQL的时候,曾经设置了一个超级用户,用户名是root,密码需要自己设定。由于小编很懒,密码也设置成了root,因此登陆的操作为:mysql -uroot -proot
这样就登陆成功了。细心的小伙伴会发现第二行出现了一个警告(Warning),大致意思为直接把密码输入到界面上是不安全,即你的密码有可能会被别人看到。因此,我们最好采用这种方法登录:mysql -uroot -p
这时候输入的密码会以*的形式出现在屏幕上,就能安全地登录MySQL,也不会出现警告了:
登录MySQL(2)这里用到的是mysql参数(因此小伙伴们就不能类比上面启动与关闭MySQL的操作,把mysql换成mysql57,这样是错误的),类似于-u、-p这样的参数还有一些,大家可以自己尝试输入,看看会出现什么效果:
mysql参数登录后如果要退出MySQL,有三种方式可供选择:
exit;
quit;
\q;
再介绍一些MySQL常用命令(都需要已登录MySQL):
SELECT VERSION();
SELECT NOW();
SELECT USER();
这里要注意的是,输入SELECT USER();
命令之前,要打开MySQL里的数据库,否则就会报错,有关数据库的操作将在下文介绍:
另外,和所有的编程语言一样,MySQL也有自己的语法规范:
- 关键字与函数名称全部大写
- 数据库、数据表和字段名称全部小写
- SQL语句必须以分号结尾
这些语法规范都会在下文得以体现。
有关数据库的操作
首先我们可以查看当前已创建的数据库:SHOW DATABASES;
可以看到,在没有对数据库进行任何操作的情况下,只有MySQL自带的6个数据库(自带数据库可能会因MySQL版本的不同而不同,大家不必在意)。
上面查看数据库的指令中,SHOW
和DATABASES
都是关键字,因此要大写,列表中的数据库名称则为小写,而且语句要以分号结尾。如果没有在语句末尾加上分号会出现什么情况呢?我们来试一下:
可以看到如果语句末尾没有分号,就算我们多次按回车,MySQL依旧接收不到指令,直到我们加上一个分号。
我们可以创建数据库:CREATE DATABASE [IF NOT EXISTS] 数据库名称 [DEFAULT] CHARACTER SET [=] 编码方式
。例如我们创建一个名为't1'的数据库,并检验是否创建成功:
指令中中括号内的IF NOT EXISTS
是什么意思呢?如果我们不加上它们,再重复创建一个名为't1'的数据库的话,就会报错:
如果加上IF NOT EXISTS
关键字,重复创建一个名为't1'的数据库,虽然也是不允许的,但不会发送错误信息,意思是在创建指令中加上'IF NOT EXISTS'并创建一个已经存在的数据库时,MySQL会忽略错误:
上面指令后面那部分则是设定数据库中数据的编码方式。先输入SHOW CREATE DATABASE 数据库名称
指令查看数据库't1'创建时的信息:
这里可以看到,数据库默认的编码方式为'utf-8'。因此如果我们想再创建一个编码方式为'GBK'的数据库't2',就要用到指令的后半部分了(指令中的DEFALUT
和=
均可以省略):
这样,数据库的编码方式就成了'GBK'。
当我们觉得数据库的编码方式不恰当时,我们可以进行修改:ALTER DATABASE 数据库名称 [DEFAULT] CHARACTER SET [=] 编码方式
当然,能创建能修改,自然我们也可以删除数据库:DROP DATABASE [IF EXISTS] 数据库名称
这里IF EXISTS
的作用与创建指令中的IF NOT EXISTS
类似:如果要删除的数据库不存在,同样不会发送错误信息。
PS:建议大家每进行一次对数据库的操作后就使用查看数据库或者查看创建信息的指令,对刚才的操作进行检查(出现错误别忘了之前说过的键盘回滚功能哦,真心好用呢)。
如果想要使用已创建的数据库,就要用到USE 数据库名称;
的指令。使用的操作是否成功呢?我们可以用SELECT DATABASE();
的指令来查看当前正在使用的数据库:
当然我们肯定不能使用不存在(即未创建或者已删除)的数据库(上面的演示中已经删除了数据库't1'):
使用数据库(2)
网友评论