【技术干货】作为测试,你必须知道的MySQL知识(一)

一、安装

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:废除数据库中某用户的权限





【爱测试·爱分享】


更多内容可关注公众号:测试专享

专注于性能、自动化、接口测试、中间件等技术,与您分享测试技术点滴,内容涵盖:Jmeter、PTS、Python、Selenium、小程序自动化、Linux等热门测试技术,让您在实战中提升自我。在手机上阅读所有文章,随时随地都能学习。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,284评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,115评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,614评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,671评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,699评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,562评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,309评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,223评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,668评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,859评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,981评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,705评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,310评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,904评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,023评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,146评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,933评论 2 355