一、安装
1、Windows上安装
① 下载链接:https://downloads.mysql.com/archives/installer/
② 安装:下载后直接双击即可安装(按照步骤,操作简单,此处不细讲)。
2、Linux上安装
以Centos7为例,可以使用yum进行安装,相关命令如下:
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server
3、默认端口与用户名
① 默认端口3306;
② 默认用户root。
二、客户端连接MySQL的方式
1、命令行
以Windows下MySQL为例,安装后可在安装目录下找到bin目录,需要在该目录下使用命令行工具执行mysql.exe。
①【连接命令】:
mysql [OPTIONS]
【常见OPTIONS】:
-h:指定连接的服务器名或IP。当连接为本地服务器时可以不写;
-P:指定连接的MySQL端口。默认是3306,当默认时可不写;
-u:指定用户,默认是root;
-p:指定密码。如只加-p,不指定密码,则按Enter键后会提示输入密码,建议使用这种方式;
-D:指定连接的数据库。如不指定,连接后,需要使用use命令选择;
->【举个栗子】:以用户名为root,连接的服务器为本地IP,端口为默认的3306,此时端口与IP都不需要指定,只需要指定用户名root,-p后按Enter键后输入password,即可完成连接:
【备注】:如果服务器IP为192.168.233.2,端口为8888,那么命令行应该输入:mysql -u root -h 192.168.233.2 -P 8888 -p
②【退出命令】: exit
2、常用的GUI工具
SQLyog、Navicat等;
3、编程语言的SDK
① Java:使用JDBC;
② Python:使用PyMySQL模块。
三、快速使用
1、创建/删除/查看数据库
①【创建数据库(create)】
create database <数据库名称>;
②【查看已有的数据库(show)】
show databases;
③【删除数据库(drop)】
drop database <数据库名称>;
2、创建/查看数据表
在创建表之前,需要先了解【常用的数据类型】:
① int :整形
② bigint:长整形
③ float:单精度浮点型
④ double:双精度浮点型
⑤ char:定长字符串
⑥ varchar:变长字符串(相当于oracle的 varchar2)
⑦ timestamp:混合日期和时间值,时间戳
⑧ datetime:混合日期和时间类型(YYYY-MM-DD HH:MM:SS)
⑨ date:日期类型(YYYY-MM-DD)
⑩ time:时间类型(HH:MM:SS)
在数据库操作时,需要用use命令选择要操作的数据库,使用后,后续操作都是基于这个库进行的,后续如果想操作其他数据库,则再使用use进行切换,如use online_shop。
① 创建数据表(create):
create table <数据表名称> (column_name column_type);
② 查询已存在的表(show):
show tables;
->【举个栗子】:创建一张t_user的表,需要包含用户id、姓名、体重、用户生日,则创建表的SQL如下:
create table if not exists t_user(id int primary key auto_increment comment '用户id',name varchar(30) not null comment '姓名',weight double comment'体重',birthday datetime comment '用户生日')ENGINE=InnoDB DEFAULT CHARSET=utf8;
【实例关键字解析】:primary key:用于定义列为主键。auto_increment:自增的属性,一般用于主键,数值会自动加1。not null:不允许为空,在操作数据库时如果输入该字段的数据为NULL,就会报错。comment:备注。可以给每个字段备注说明。ENGINE:设置存储引擎,CHARSET 设置编码。if not exists:如果要创建的表不存在,则会创建,反之,则不会创建。
3、查看表结构/删除数据表
① 查看表结构(desc):
desc <数据表名称>;
② 删除数据表:
drop table <数据表名称> ;
->【举个栗子】:先创建一张t_goods表,再查看该表的结构,最后将该表删除,如下:
--------创建t_goods表---------
create table if not exists t_goods(
id int primary key auto_increment comment '商品id',
name varchar(100) not null comment '商品名称',
price double not null comment '商品价格',
create_time datetime not null comment '订单创建时间'
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
-------查看表结构------------
desc t_goods;
-------删除表----------------
drop table t_goods;
4、修改表(alter)
① 修改表名:
alter table <旧表名> rename <新表名>;
②表中修改列名:
alter table <表名> change column <旧列名> <新列明> <类型>;
③ 表中修改列类型:
alter table <表名> modify <列名> <新类型>;
④ 表中添加列:
alter table <表名> add column <新列名> <类型>;
⑤ 表中删除列:
alter table <表名> drop column <列名>;
【注意】:实际工作中,生产环境创建库都是由DBA/运维执行的。千万不要执行drop相关操作(不过一般情况下,DBA不会授予其他人该操作的权限,但是也不要去尝试,万一没有做限制呢~)。
四、数据库CRUD语句
1、插入数据(INSERT)
----【格式1】:指定所要插入数据的列
insert into <数据表名称> ( field1, field2,...fieldN ) values( value1, value2,...valueN );
->【举个栗子】:
insert into t_user (name,weight,birthday) values('xcc',100.5,now());
insert into t_user (name,weight,birthday) values('aa',110.6,'2020-10-12');
insert into t_user (name,weight,birthday) values('bb',120.7,'2020-11-11 11:11:11');
----【格式2】:不指定列名的方式,该种格式需要按照表中列名的顺序写value值
insert into <数据表名称> values( value1, value2,...valueN );
->【举个栗子】:
insert into t_user values(10,'zz',150,'2022-12-03')
2、修改数据(UPDATE)
update table_name SET field1=new-value1, field2=new-value2[WHERE Clause]
->【举个栗子】:
update t_user set weight = 90 where name = 'zz';
3、删除数据(DELETE)
deletefrom<数据表名称> [WHEREClause]
->【举个栗子】:
delete from t_user where name = 'zz';
4.查询数据(select)
SELECT column_name,column_nameFROM <数据表名称>
[WHERE Clause]
[LIMIT N]
->【举个栗子】:
①查询用户表的所有数据:
select * from t_user;
② 查询用户表中的id、name:
select id,name from t_user;
以上的select只是最基本的演示,实际工作中,测试人员使用最多的是select语句,也是最重要的。但是笔者在面试中发现,很多有多年工作经验的工程师其实这块都是比较弱的,所以我会在下一篇文章与大家分享更多关于select语句的使用。另外,关于MySQL的知识,比如索引、备份、慢日志、查看执行计划等知识,大家如果有兴趣也可以留言给我,我会在后期的文章中分享,在实操过程中,如遇到问题也欢迎在公众号留言,我收到后会尽快回复。
五、小贴士
1、DDL
Data Definition Language 数据定义语言:用于操作对象及对象本身,这种对象包括数据库、表对象及视图对象。包含操作语句:
create:创建数据库和数据库的一些对象;drop:删除数据表、索引、触发程序、条件约束以及数据表的权限等;
alter:修改数据表定义及数据属性;
2、DML
Data Manipulation Language 数据操控语言:用于操作数据库对象对象中包含的数据。包含操作语句:
insert:向数据库插入一条数据;
delete:删除表中的一条或多条记录;
update:用于修改表中的数据;
3、DQL
Data Query Language 数据查询语言:用于查询数据。包含操作语句:select
4、DCL
Data Control Language 数据控制语句:用于操作数据库对象的权限。包含操作语句:
greate:分配权限给用户
revoke:废除数据库中某用户的权限