时间:2021/7/5
版本:1.0
作者:正正得郑
描述:第一个版本的测试使用数据库查询文档,包括主要的增删改查。以及查询的主要语句使用方法。尚有不足,后期使用再额外增加。

一 1、数据准备:

创建student和score表
CREATE  TABLE  student (id  INT(10)  NOT NULL  PRIMARY KEY  ,name  VARCHAR(20)  NOT NULL ,sex  VARCHAR(4)  ,birth  YEAR,department  VARCHAR(20) ,address  VARCHAR(50) );创建score表,SQL代码如下:
CREATE  TABLE  score (id  INT(10)  NOT NULL  PRIMARY KEY AUTO_INCREMENT ,
stu_id  INT(10)  NOT NULL ,c_name  VARCHAR(20) ,grade  INT(10));为student表和score表增加记录向student表插入记录的INSERT语句如下:
INSERT INTO student VALUES( 901,'张老大', '男',1984,'计算机系', '北京市海淀区');
INSERT INTO student VALUES( 902,'张老二', '男',1987,'中文系', '北京市昌平区');
INSERT INTO student VALUES( 903,'张三', '女',1991,'中文系', '湖南省永州市');
INSERT INTO student VALUES( 904,'李四', '男',1993,'英语系', '辽宁省阜新市');
INSERT INTO student VALUES( 905,'王五', '女',1990,'英语系', '福建省厦门市');
INSERT INTO student VALUES( 906,'王六', '男',1989,'计算机系', '湖南省衡阳市');
INSERT INTO student VALUES( 907,'老七', '男',1991,'计算机系', '广东省深圳市');
INSERT INTO student VALUES( 908,'老八', '女',1990,'英语系', '山东省青岛市');向score表插入记录的INSERT语句如下:
INSERT INTO score VALUES(NULL,901, '计算机',98);
INSERT INTO score VALUES(NULL,901, '英语', 80);
INSERT INTO score VALUES(NULL,902, '计算机',65);
INSERT INTO score VALUES(NULL,902, '中文',88);
INSERT INTO score VALUES(NULL,903, '中文',95);
INSERT INTO score VALUES(NULL,904, '计算机',70);
INSERT INTO score VALUES(NULL,904, '英语',92);
INSERT INTO score VALUES(NULL,905, '英语',94);
INSERT INTO score VALUES(NULL,906, '计算机',90);
INSERT INTO score VALUES(NULL,906, '英语',85);
INSERT INTO score VALUES(NULL,907, '计算机',98);

二、数据库的创建

查询所有数据库:show databases;
创建数据库:create database  <数据库名>;
删除数据库:drop database  <数据库名>;
进入数据库:use  <数据库名>;

三、数据表的操作

1)查询数据库下表:show tables;
2)创建表:create table student(id int(4) primary key,name char(20));
注释: id为表的第一列;
int数字类型;
primary key主键的意思,列不能重复。Name为表的第二列名字。
char:类型;
创建表:create table score(id int(4) not null,class int(2));
注释: not null字段不能为空。创建表:create table student1(id int(4) not null,name char(20));
Field (列名),Type(字段类型),null(是否为空),key(主键)3)查看表结构:describe  student;    或      desc  student;
4)修改表名:alter table <表名> rename <表名>;
5)删除表:drop table <表名>;
6)修改表字段信息:alter table student change id id int(20);
7)增加表字段信息:alter table student1 add class int(4) not null after id;
8)删除一个表字段:alter table student1 drop number;

四、表数据的增删查改

4.1、查询语句–基本

select 属性名 from 表名 where 条件
mysql> select * from score where class=1 or class=2;
查询1班与2班的成绩信息
mysql>  select * from score limit 3,4;  显示4到7行的数据

4.2、增加语句

INSERT INTO 表名(字段名) VALUES(数据)  where 条件
mysql> insert into score(class,number,maths,chinese,english) values(4,20,98,88,68);
插入数据,属性名对应后面的数据
mysql> INSERT INTO score VALUES(NULL,907, '计算机',98);
插入数据,后面的数据一一对应数据表属性名的排序;

4.3、修改语句

update 表名 set  where 条件
mysql> update student set birth=1988,department='中文系' where id=901 and name='张老大';
把张老大的出生日期修改为1988,院系修改成中文系
mysql> update student set birth=birth-5;
把所有学生的年纪增加5岁;

4.4、删除语句

mysql> delete from student where id=901;
删除901同学的,学生信息
mysql> delete from student where address like "湖南%";
删除湖南籍学生的信息
mysql> delete from student;
清空学生表信息

五、查询进阶

(1)where 与or 、 和and

1.1、查询901与903学生的成绩信息:
mysql> select * from score2 where stu_id=901 or stu_id =903;
1.2、查询学号为901并且计算机科目的成绩信息:
mysql> select * from score2 where stu_id=901 and c_name='计算机';
注释:只要不是数字,有汉字数字字母多种组成的形式都要加单引号,表示字符串。

(2)where 字段名A存在(in)B中、字段名A不存在(not in)B中

2.1、查询901,902,903的成绩信息:
mysql> select * from score2 where stu_id in (901,902,903);
2.2、查询901除外其他学生的成绩信息:
mysql>select * from score2 where stu_id not in (901,903);

(3)where 字段名A=xx、字段名A!=xx

3.1、查询出学生姓名李四的学生信息:
mysql> select * from student2 where name='李四';
3.2、查询901除外其他学生的成绩信息:
mysql> select * from score2 where stu_id!=901;
注释:  !在数据库里面为否定的意思:

(4)where 字段名A>=xx、字段名A<=xx

4.1、查询成绩大于等于80小于等于90的成绩信息:
mysql>select * from score2 where grade>=71 and grade <=90;

(5)where 在…之间 between

5.1、查询901到903的学生成绩信息:
mysql> select * from score2 where stu_id between 901 and 903;
注释: between:在```之间,中间的意思

(6)去除重复 distinct

6.1、按照科目名称去重,显示全部科目名称:
mysql> select distinct c_name from score2;
注释: distinct 去除重复的意思;

(7)从第a行开始,返回b条信息 limit a,b

7.1、显示4到7行的数据:
mysql> select * from score2 limit 3,4;
注释:数据库数据排列:0,1,2,3;  3显示第4行; 4,5,6,7共有4行;   3,4 ;
3表示第4行,4表示从第3行开始到第7行,共有4行;

(8)分组查询 group by 属性名

 8.1、分组查询每个系的人数:
mysql> select department,count(*) from student2 group by department;

温馨提示:分组之后查询其他函数结果是不正确的;

分组函数:group by
8.2、按科目分组,查询出每个科目最高分:
mysql> select c_name,max(grade) from score2 group by c_name;
8.3不分科目查询最高分:
mysql> select max(grade) from score2;
注释: max:最大值;参考:
按班级分组,查询出每班数学最低分:
select class,min(maths) from score group by class;
注释:最小值min; 按班级分组,查询出每班数学总分:
select class,sum(maths) from score group by class;
注释:sum:总分;按班级分组,查询出每班数学平均分:
select class,avg(maths) from score group by class;
注释:avg:平均值:按班级分组,查询出每班学生总数:
select class,count(*) from score group by class;
注释:count:有价值的;语句执行顺序:  from先执行,后执行where, 再接着执行having,limit等。
例句:
select class,max(maths) from score where group by(分组) class having(所有) order by(排序) limit from后面可以加兹查询,语句先执行后面再执行前面

(9)函数查询:(*重点)

1、排序数据,order by 字段名 ASC(不加后缀默认,升序方式),order by 字段名 DESC(降序)

9.1、按grade(分数列小到大)排序数据:
mysql> select * from score2 order by grade;

部分可参考(8)分组查询
函数查询表:

函数名 属性
最大值 max(xx)
最小值 min(xx)
总分 sum(xx)
平均值 avg(xx)
有值的 count(xx)

(10)数学运算符:(*重点)

查询的结构直接加
select 字段a+5,字段a+字段b from 表名

1、查询,字段grade+5:
mysql>  select id,stu_id,c_name,grade+5 from score2;
2、查询,两个字段想加的值id+stu_id:
mysql>select id+stu_id,c_name,grade from score2;
3、查询全部信息和id+stu_id,且id+stu_id字段命名为xxx:
mysql> select *,id+stu_id as xxx from score2;
4、查询全部信息,且id+stu_id字段命名为xxx,并以xxx降序排列:
mysql> select *,id+stu_id as xxx from score2 order by xxx desc;
5、查询全部信息,且stu_id*2字段命名为xxx,并以xxx降序排列:
mysql> select *,stu_id*2 as xxx from score2 order by xxx desc;

(11)连接查询:(两个表之间的)

就是查A表有B表也有或者A表有B表有的要去掉这类的。
1、左连接查询:left join
查A表全部和B表也有的数据

左连接查询:
mysql> select stu.*, sc.* from student2 stu left join score2 sc on stu.id= sc.stu_id;
注释:stu:为别名。student2 stu left join score:student:为主表,score2为副表显示。 left join:为左连接。 两表关联:其ID必须一一对应(stu.id=sc.stu_id);


2、右连接查询: right join
与左连接查询刚好相反
查B表全部和A表也有的数据

右连接查询:
mysql> select stu.*, sc.* from student2 stu right join score2 sc on stu.id= sc.stu_id;

3、内连接查询: join
查A表和B表都有的数据,交叉的

右连接查询:
mysql> select stu.*, sc.* from student2 stu join score2 sc on stu.id= sc.stu_id;

(12)多表查询:(几个表之间的数据)(*重点)

1、查询学号为901的学生信息和成绩信息
select * from student2 stu,score2 sc where stu.id=sc.stu_id and stu.id=901;
2、显示班级总数大于等于20的班级:
select class,count(*) as total from student group by class having total>=20;
3、显示人总数大于等于20的班级的成绩信息:
mysql> select sc.class,sc.number,sc.maths from score sc,(select class,count(*) as total from student group by class having total>=20) s where sc.class=s.class;注释:commit:保存提交的意思,一般文件删除修改都要做保存;Rollback:撤回的意思,命令执行后;可以撤回为修改删除前的数据;truncate table score:永久删除的意思,尽量少用,删除则无记录找回;select now():查询现在的时间;

(13)字符查询 like

使用通配符_模糊匹配数据内容
下划线通配符_与百分号通配符%类似,也用于模糊匹配。但是区别在于下划线通配符_只能模糊匹配1个字符。如果你执意想用下划线通配符_匹配多个字符,那只能多用几个_咯!
LIKE关键字和通配符_检索出所有商品名称以r结尾,且前边有9个字母的商品信息

1、查询地址为北京的学生信息:
mysql> select * from student where address like '北京%';
2、查询地址为北京市昌平区的学生信息:
mysql> select * from student where address like '%北京%平%';
3、查询湖南籍学生的成绩信息:
mysql> select * from score where stu_id in (select id from student where address like '湖南%');

练习:

1.查询student表的第2条到4条记录
select * from student limit 1,3;2.从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息
mysql> select id,name,department from student;3.从student表中查询计算机系和英语系的学生的信息
select * from student where department in ('计算机系' ,'英语系');4.从student表中查询年龄23~26岁的学生信息
select * from student  where birth between 1990 and 1993;    2016-23=1993  2016-26=1990
select id,name,sex,2016-birth as age,department,address from student where 2016-birth;5.从student表中查询每个院系有多少人
select department,count(id)  from student group by department;6.从score表中查询每个科目的最高分。
select c_name,max(grade) from score group by c_name;7.查询李四的考试科目(c_name)和考试成绩(grade)
select c_name,grade from score,student  where score. stu_id=student.id and name='李四';
select c_name,grade from score where stu_id=(select id from student where name='李四');8.用连接的方式查询所有学生的信息和考试信息
select stu.*,sc.*  from student stu left join score sc on stu.id=sc.id;9.计算每个学生的总成绩
select stu_id,sum(grade) from score group by stu_id;10.计算每个考试科目的平均成绩
select c_name,avg(grade) from score group by c_name;11.查询计算机成绩低于95分的学生信息
select student.*, grade from score,student where   student.id=score.stu_id and c_name like '计算机' and grade<95;12.查询同时参加计算机和英语考试的学生的信息
select student.*,c_name  from student,score where student.id=score.stu_id and student.
id =any( select stu_id from score where stu_id in (select stu_id from score where c_name= '计算机') and c_name= '英语' );select * from student where id in(select stu_id from score where stu_id in (select stu_id from
score where c_name='计算机' )and c_name='英语');select student.* from student,(select stu_id from score where stu_id in (select stu_id from score where c_name='计算机' )and c_name='英语') t1 where student.id=t1.stu_id;select * from student where id in (select stu_id from score sc where sc.c_name='计算机') and id in (select stu_id from score sc where sc.c_name='英语');13.将计算机考试成绩按从高到低进行排序
select c_name,grade from score where c_name='计算机' order by grade; 14.从student表和score表中查询出学生的学号,然后合并查询结果
select id  from student union select id  from score;15.查询姓张或者姓王的同学的姓名、院系和考试科目及成绩
select name,department,c_name,grade from score sc,student st where st.id=sc.stu_id and (name like'张%'or name like '王%');16.查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩中文系
select name,2016-birth age,department,address,c_name,grade from student,score where student.id=score.stu_id and address like'湖南%';17.查询每个科目的最高分的学生信息.
分解: score=t1,    t2=select c_name,max(grade) as grade from score group by c_name,    t1.stu_id注解
分解: select * from student where id in (select t1.stu_id from score t1,t2 t2 where t1.c_name=t2.c_name and t1.grade=t2.grade);select * from student where id in (select t1.stu_id from score t1,(select c_name,max(grade) as grade from score group by c_name) t2 where t1.c_name=t2.c_name and t1.grade=t2.grade);select student.* from student,(select score.* from score,(select max(grade) grade,c_name from score group by c_name) t1 where score.c_name=t1.c_name and score.grade=t1.grade) t2 where student.id=t2.stu_id;

14 、软件测试-MySQL的基本使用方法-增删改查相关推荐

  1. Node连接MySQL数据库进行基本的增删改查操作(一看就会)

    Node连接MySQL数据库进行基本的增删改查操作(一看就会) ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ...

  2. MYSQL - database 以及 table 的增删改查

    MYSQL - database 以及 table 的增删改查 MySQL的相关概念介绍 MySQL 为关系型数据库(Relational Database Management System), 这 ...

  3. mysql创建数据表列子,MySQL 创建数据库及简单增删改查

    MySQL 创建数据库及简单增删改查 我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下: CREATE DATABASE 数据库名; 登入: Enter passwor ...

  4. 1-1 MySQL数据库的基本操作 【增删改查】

    1-1 MySQL数据库的基本操作 [增删改查] 一.基础操作 创建数据库 查看数据库 选择数据库 删除数据库 二.建立一个基础数据库 三.基本操作 外键约束与字段自增 数据的增删改 数据查询 数据排 ...

  5. Mysql —— C语言链接mysql数据库,实现可以增删改查的角色权限登录系统

    /******************************************************************** * 标题:C语言链接mysql数据库,实现可以增删改查的角色 ...

  6. MySQL 使用SQL语句实现 增删改查

    MySQL 使用SQL语句实现 增删改查 环境准备:MySQL,navicat 一.增加数据 语法: INSERT INTO 表名(字段1,字段2,字段3...) VALUES(值1,值2,值3... ...

  7. SpringBoot+Mysql+MDUI实现数据的增删改查和列表操作及单,多文件上传实例

    SpringBoot+Mysql+MDUI实现数据的增删改查和列表操作及单,多文件上传实例 开源地址:https://gitee.com/jfkjrym/demo.git evan原创内容!evan原 ...

  8. 用Python+Mysql+MDUI实现的数据库增删改查列表操作及单,多文件上传实例

    用Python+Mysql+MDUI实现的数据库增删改查列表操作及单,多文件上传实例.web服务用flask框架,数据库操作用的pymysql框架.教程在我B站有的. 开源地址:https://git ...

  9. MySQL攻略 -DAO和增删改查通用方法-BasicDAO的认知与实现、案例练习

    文章目录 DAO和增删改查通用方法-BasicDao 分析问题 图形介绍 基本说明 应用实例 utils包 domain包 DAO包 test包 案例练习 DAO包 domain包 test包 DAO ...

  10. mysql 中caption_Django-Model操作数据库(增删改查、连表结构)(示例代码)

    Django-Model操作数据库(增删改查.连表结构) 一.数据库操作 1.创建model表 基本结构 from django.db importmodelsclassuserinfo(models ...

最新文章

  1. 前端监控和前端埋点方案设计--摘抄
  2. 【python】-- pymsql 外键
  3. Git常用的基本命令
  4. 怎样进入服务器修改东西,进入服务器修改数据库
  5. [转]JS日期选择控件
  6. 1333:【例2-2】Blah数集
  7. 阿里云、小米、华为手机竞争对比初评
  8. 【Flink】flink并行度与kafka分区(partition)设置
  9. 在fedora20下面手动为自己的安装程序创建桌面图标
  10. 【Linux】 CentOS 7 安装 RabbitMQ
  11. [51单片机] SPI nRF24L01无线 [可以放在2个单片机里实现通信]
  12. FR复选框批量删除(填报)
  13. UnityShader[3]屏幕后处理学习笔记
  14. 五大常用算法:贪心算法
  15. 如何用echarts创建市区地图
  16. SPSS 实现KMO和Bartlett的球形度检验
  17. Tedddby Activator V5.1,免费绕过iOS 14.7Beta,支持iCloud登录
  18. android 实现点击水波纹,Android 水波纹点击效果(Ripple Effect)
  19. 铁是这样炼成的——IT项目经理的职业生涯
  20. 文献小镇--国内外文献免费下载!

热门文章

  1. 电脑主板报警声音的故障现象对照表
  2. Android简易聊天室软件(HTTP实现)
  3. Linux桌面没有minidwep,ubuntu 12.04完整安装minidwep-gtk教程
  4. Sprintf函数用法
  5. laravel框架使用phpQuery库来实现网页抓取
  6. [浅析]UE4关卡流
  7. 银行管理系统(一看就懂)
  8. 人人视频android app,人人视频安卓版
  9. 微PE制作U盘启动盘教程
  10. php存省市,PHP格式化全国省市区列表