做测试必备MySQL常见命令,超详细SQL语法教程来啦!

【写在前面】

哈喽,这里是「夏末初临」。

作为一名测试工程师,我的日常工作就是点点点,偶尔也要跟数据库打交道。

如果你想要从事测试行业,熟练掌握SQL语句是必备技能

很多企业HR坚定立场“不会SQL,我们不要”,可以这么说,SQL直接关系到你是否能够通过面试!

好了,接下来夏末初临给胖友们整理一篇SQL语法教程。

在这里插入图片描述


01 连接数据库

01.通过命令行连接数据库
[root@localhost ~]# mysql -u root -p
Enter password;

02.退出MySQL
mysql > exit
Bye

02 创建数据库

01.语法:先连接MySQL服务后,再使用 SQL 语句。可以通过命令连接也可以通过客户端工具例如 navicat 连接。
CREATE DATABASE <数据库名>;

02.例子:创建一个库名为 school 的数据库。
mysql > create DATABASE school;

03 显示数据库

01.语法
show databases;

02.例子:查看MySQL服务所有数据库
mysql> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| future |
| lemon |
| mysql |
| test |
| test_mysql |
±-------------------+

04 删除数据库

01.语法:drop 删除数据库命令谨慎使用,一旦删除,所有数据都没有了。
drop database <数据库名>;

02.例子:删除一个库名为 test 的数据库。
mysql> drop DATABASE test;

05 选择数据库

01.语法
use <数据库名>;

02.例子:选取数据库 test 进行操作。
mysql > use test;
Database changed

06 创建表

01.语法

create table <表名> ( <字段名1> <类型1>,<字段名2> <类型2>, …,<字段名n> <类型n>);

02.例子:创建一个学员信息表,用于存储学号、姓名、性别、班级、年龄。

create table student(
sno int(8) not null primary key auto_increment comment ‘学号’;
sname varchar(20) NOT NULL comment ‘姓名’;
ssex varchar(4) NOT NULL comment ‘性别’;
sclass int (8) NOT NULL comment ‘班级’;
age int(4) NOT NULL comment ‘年龄’;
)DEFAULT CHARSET =utf8;

在这里呢,先给大家讲解各个字段的含义。

int 为整型,这里学号 sno、班级编号 sclass 设定为整型;

varchar 字符型,这里姓名 sname、性别 ssex、年龄 sage 设定为字符型;

字段属性设定为 not null,表示字段值不允许空;

primary key 关键字用于定义列为主键。主键唯一、不重复,一般以编号为主键;

auto_increment 定义列属性为自增,一般用于主键,插入数据时数值会自动加 1;

comment 相当于给列添加备注;

DEFAULT CHARSET 设置编码,utf8 对传值中文防止乱码。

07 显示数据表

01.语法

mysql> show databases;
±-------------------+
| Tables_in_test |
±-------------------+
| student |
| student1 |
±-------------------+

08 查看表结构

01.语法

mysql> desc student;
±-------±------------±-----±----±--------±---------------+
| Field | Type | Null | Key | Default | Extra |
±-------±------------±-----±----±--------±---------------+
| sno | int(8) | NO | PRI | NULL | auto_increment |
| sname | varchar(20) | NO | | NULL | |
| ssex | varchar(5) | NO | | NULL | |
| sclass | int(8) | NO | | NULL | |
| sage | int(4) | NO | | NULL | |
±-------±------------±-----±----±--------±---------------+

09 删除表

01.语法:drop 删除表请谨慎操作,因为执行删除命令后该表及包含的数据都会消失。

drop table <表名>;

02.例子:删除一个表名为 student 的数据表。

mysql> drop table student;

10 插入表数据

01.语法:drop 删除表请谨慎操作,因为执行删除命令后该表及包含的数据都会消失。

insert into <表名> (字段名1,字段名2,……字段名N)
values
(值1,值2,……值N);

02.例子:往学员信息表中插入一条学员信息

insert into student (sno,sname,ssex,sclass,sage) values (6301,‘夏末初临’,‘女’,2000163,18);

在这里呢,我们要注意如果数据值为字符型,必须用单引号或者双引号括起来哦。

02.例子2:批量插入,插入多条学员信息

insert into student (sname,ssex,sclass,sage)
values
(‘夏末初临’,‘女’,20000163,18),(‘阿绪’,‘女’,20000163,20);

11 修改表数据

01.语法

update 表名 set 字段名1= 新值1,字段名2=新值2, … where 条件表达式1 and(or) 条件表达式2 …;

02.例子:修改学员姓名为阿绪的性别为男

update student set ssex = ‘男’ where sname = ‘阿绪’;

12 查询单表数据

01.语法

select 字段名1,字段名2,… from <表名> where 条件表达式1 and(or) 条件表达式2 … ;

02.查询所有字段列信息

查询 student 表中,性别女且年龄在 18 岁以上的学员信息

select * from student where ssex = ‘女’ and sage > 18;

03.查询指定字段列信息

查询 student 表中,性别女或年龄在 18 岁以上的学员信息

select sname from student where ssex = ‘女’ or sage > 18;

04.查询前几行信息

查询 student 表中,性别女且年龄在 20 岁以上的前 2 行学员信息

select sname from student where ssex = ‘女’ and sage > 18 limit 0,2;

13 查询多表关联数据

01.语法

  1. 关联查询:select 字段名1,… from 表名1,表名2,…where 关联条件表达式 and 过滤条件表达式 …;

  2. 等值连接:select 字段名1,… from 表名1 inner join 表名2 on 关联条件表达式 and 过滤条件表达式… ;

  3. 左连接:select 字段名1,… from 表名1 left join 表名2 on 关联条件表达式 and 过滤条件表达式… ;

  4. 右连接:select 字段名1,… from 表名1 right join 表名2 on 关联条件表达式 and 过滤条件表达式… ;

02.例子:查询两表中存在对象关系的信息

用户信息表user

id u_name age
1 杨紫 1992
2 王源 2000
3 肖站 1991
4 胡歌 1982

用户对象信息表user_lover

id u_id lover_name
1 1 赵丽颖
2 4 杨颖
3 5 孙俪
4 9 王一博

SELECT * FROM user, user_lover WHERE user.id = user_lover.u_id;

SELECT * FROM userINNER JOIN user_lover on user.id = user_lover.u_id;

例子:读取左表全部数据,即使右表没有关联数据

SELECT * FROM userLEFT JOIN user_lover on user.id = user_lover.u_id;

14 查询表数据

01.语法

delete from 表名 where 条件1 and(or) 条件2……;

02.例子:删除 student 表中年龄小于 18 岁的用户信息

delete from student where sage < 18;

“日常督促自己”

软件测试不是点点点页面这样简单,也不是没有技术含量,测试工程师有自己的价值。如果你一直停留在手工测试,那么薪资就不会往上涨了,随着35岁的推进,甚至会面临失业危机。

MySQL是软件测试工程师必备技能,除了需要掌握基础的“增删改查”操作,还要掌握各种条件的使用方法。

我是夏末初临(欢迎关注我的公众号~),再难走的路,也会有尽头,我们下次见。

(本文完)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_35229857/article/details/119411879