【数据库】MySQL 从安装到命令
一, MySQL 的安装于配置
我是通过百度云盘的方式下载的。建议登录百度云终端,然后点击下面的链接,选择要安装的版本,解压安装。
http://www.h2ero.cn/pan/share/17cde6_aWlxjeu.html
(1)安装前准备
解压过后把mysql文件夹放到指定的文件目录下。我因为在虚拟机中只配置了一个盘符,所以直接放置在了C盘下。建议放置到其他盘符。
另外如果选择的是免安装版本的话,压缩过后文件夹的名称就叫做mysql.如果不是免安装版本那么后面会带有不同的版本号以及服务器版本号。
(2)配置环境变量
在mysql-5.6.24-winx64的bin目录下有很多.exe文件。我们是通过mysqld.exe文件对mysql数据库进行安装的。如下图。
安装方法,我们这里通过命令行的方式安装,后续更新方法。(注意:不要直接双击mysql.exe直接安装)
另外,为了方便通过命令行不用每次先进入bin目录然后在对其进行调用,建议先配置环境变量。这样每次在调用mysql时可以直接指向该目录。环境变量的配置如下图。
(3)配置my.ini配置文件
在mysql-5.6.24-winx64解压过后目录下应该有个default.ini文件如下图。这个是mysql的配置文件,我们需要手动对其进行一些设定后才可以安装mysql,不然直接安装mysql服务会不能正常启动。
如果没有这个文件,建议手动创建my.ini文件。
上面显示的是系统自动给我们配置的default.ini文件。这里建议直接选用这个文件在其基础上来编辑我们的my.ini配置文件。如果怕编辑时出错,建议事先先备份一下这个defalut.ini文件。
下面是my.ini文件的具体内容如图。
注释:
skip-grant-tables 这条语句是代表当mysql数据库登录的时候对root帐号设置空密码直接跳过使用的意思。当然也可以事前设定root以及其他登录帐号的密码。这里因为图方便直接配置空密码登录。
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 选择sql模式,这里建议配置成NO_AUTO_CREATE_USER以及NO_ENGINE_SUBSTITUTION。不然在接下来学习mysql语句的时候
会发现当我们用到insert语句对其进行插入table条目时,会出现报错。这个报错信息以及报错原因此处不具体解释。
(4)命令行安装
mysqld install
注意: 我们是通过bin目录下的mysqld.exe进行的安装而不是mysql.exe。所以在敲命令行的时候一定别敲成 mysql install。
下图因为我已经安装好了mysql数据库,因此命令行提示为已存在。如果是第一次安装显示的应该是 install successfuly。
安装过后我们再通过命令行输入 services.msc打开我们windows 的服务窗口会发现多了一个mysql 服务。下图为Automatic Started状态。
刚安装好mysql 的服务为Automatic状态并非started。如果想要启动该服务。继续输入 net start mysql 命令即可。
补充:如果net start mysql 出现 error:1067 或者是 error: 2 的报错,肯定是my.ini配置的时候出错。
建议重新配置my.ini。也可以参考下列链接来进行排错处理。我安装的时候出现过这2种报错,最终解决方法是
先通过sc delete mysql 删除了mysql服务。然后重新拿default.ini在其基础上编辑了my.ini文件然后重新安装mysql 服务最后重新启动服务后成为started状态。
https://jingyan.baidu.com/article/d5c4b52bee6e69da560dc5ec.html
二, MySQL 的基本操作
(1)登录mysql 数据库
我们是通过以下语法对mysql数据库进行登录的。具体操作如下也可以参照图片中的内容。
当然 -h localhost 或者 -h 127.0.0.1都是指针对本机进行登录。如果mysql装在其他服务器上需要指定对象服务器路径
语法: mysql -h 服务器名 -u 登录账户名 -p 密码
(2)创建我的第一个mysql数据库
对于mysql数据库的创建我们是通过mysql 命令行中的create命令进行创建的。具体语法如下。
当我们创建完数据库后,可以通过show databases;的命令来进行查看。
语法: create database 数据库名;
(3) 选择数据库
当我们在使用show databases;命令后会发现系统把当前所有的mysql database全部列举出来了。也包含了系统自动创建的默认数据库。如test。
但是当我们需要对某一个数据库进行指定的时候需要通过命令选中要选择的该数据库。这个命令为use具体语法如下。
语法: use 数据库名;
(4)创建数据表
在一个database中可以有很多数据表,我们平时也是通过数据表来对数据进行存储的。那么数据表中分为存储不同类型的数据类型。
对于不同类型的数据,在存储时要对其指定数据类型以及格式。具体操作如下。
语法:creat table 数据表名([参数,类型,comment等]); //参数中只能设定一个主键(primary key)
注释:(1) primary key 主键 (2) default 默认值 (3) unique key 允许为空
注意事项: 因为表中输入有中文,所以在输入代码之前需要先设定以下编码格式 utf-8
create database my_Home character set utf8 collate utf8_general_ci;
创建完数据表后,可以通过show tables;语句进行查看。但是事先必须先use database名。
(5)数据表的查看
对于数据表以及数据表中数据的查看分为2种不同的方法。下面我们一一来展现。
方法一:show columns from 数据库名.数据表名;
方法二:describe 数据库名.数据表名;
无论选择那一种方法都可以。但是这里要说的是describe语句除了可以把table列举出来。还可以指定table中的values来进行列举。如下图所示。
当values过多,想要过滤语句的时候desciribe更加的方便。
(6)数据表结构修改以及数据表条目的修改
数据表结构的修改
语法: alter table 数据表名 rename 更改后的数据表名
注意事项:
在修改数据表结构时,一定先使用use语句先选择一个数据库。
数据表字段信息的修改
语法: alter table 数据表名 change 字段名 更改后字段名 [参数];
数据表字段类型信息的修改
语法: alter table 数据表名 change 字段名 字段名 [参数(更改要更改的参数)]
注释:对比上图上下语句会发现对于字段name中的Type信息。varchar(10)已经换成了char(15)了。类型也从varchar变成了char。
数据表修改字段默认值 (用法同上)
语法:alter table 数据表名 change 字段名 字段名 [参数 default '新指定的信息名'];
例子: alter table moher change major major varchar(50) default 'Electronic Engineering' comment 'subject';
(6)添加数据表中字段信息
语法: alter table 数据表名 add 字段名 [参数]
例子: alter table mother add address varchar(50) not null comment 'home_address';
三, MySQL 数据表字段的删除及数据表结构的删除
有添加就有删除,当我们对数据表中某字段进行删除或者对其本身进行删除时需要用到drop命令。
那么具体的操作请参考下列图片中的内容。要注意的是我们针对的是对数据库中数据的删除,所以在使用drop命令进行删除的时候一定要再三确认,命令无误的情况下在执行。
(1)数据表字段的删除
语法: alter table 数据表名 drop 字段名;
例子: alter table student drop tel;
(2)数据表结构的删除
语法: drop table 数据结构名
例子: drop table mother;//一旦删除.数据无法恢复.
另外在drop语句使用时,还可一结合参数一起使用。例如 if exists,show warnings等。
如果加上了if exists相当于加了一条判断条件看是否存在。如果不存在的话会出现报错信息。而结合show warnings;用法。可以把具体的报错信息显示出来。
drop table if exists student1111; //删除一个不存在的数据结构时,建议加上if exists.
show warnings; //用了if exists之后再使用show warnings可以捕获error具体信息.不加if exists则error自动被抛出.
四, MySQL 数据库的备份及还原
1. 备份
对于mysql数据库的备份方法有很多种,可以通过命令也可以通过第三方工具进行备份(例如:mysqlyog),今天介绍的是通过命令行的方式进行mysql数据库的备份。
语法: mysqldump --opt 数据库名 -u 用户名 -p -r 数据库地址路径
2.还原
对于还原也非常的简单,要注意的是还原的时候使用的不是mysqldump指令而是mysql。
语法:mysql -h 数据库安装对象服务器 -u 登录帐号名 -p 数据库名< 备份文件地址
五, MySQL Insert语句
1. 拿下面的列表来做例子。假如说我们的需求是,在该表中添加李四的个人信息,包括name,major,brithday,tel和sid.
那么我们就需要用到insert语句来进行添加。具体语法如下。
语法: insert into 数据库名(参数名,参数名(可多个))
---> values('对应选项的值’,‘对应选项的值’);
另外虽然我们还没说到过select语句。但是这里其实已经在图片中列举出来了。可以通过select语句对列表中的内容进行条件筛选。从而获取出我们想要得到的内容。
另外insert 语句的用法除了上述的用法之外还有下面的用法。
方法二;
语法:
insert into 数据表名
-->set 字段名= '字段值‘
-->字段名 = ’字段值‘;
六, Select语句
1.简单查找方法
语法:
select 字段名,字段名,字段名 form 数据表名
-->where 条件判断语句;
如果想筛选多个条件,条件跟条件之间用and关键字连接。
注释:如果筛选的结果没有符合,那么则返回"Empty set (0.00 sec)",如果匹配到了条件那么会列举出匹配到的条目以及列表。
2. 带结果排序的select语句
语法:
select 字段名,字段名,字段名 form 数据表名
--> where 字段名 条件语句
-->order by 字段名[字段名][ASC(升序)][DESC(降序)]
(2) 带结果排序的select语句
语法:
select 字段名 from 表名
where 字段名 条件语句
order by 字段名[字段名][ASC(升序)][DESC(降序)]
例子1【desc】:
例子2【asc】:
(3) 限定查询结果条目的select语句
语法:
select 字段名 from 表名
where 字段名 条件语句
limit [offset], row_count
七, update语句
语法:
mysql> update 数据表名
---->set 字段名 = '字段值'
---->where 字段名 条件语句
---->order by 字段名 limit 条目数