网站首页 > 技术文章 正文
导读
软件测试人员在工作使用SQL语言中的查询是使用得最多的,而查询也是SQL语言中最复杂的,很多测试人员只使用到其中最简单的查询
SQL语言
软件测试人员在执行测试时使用最多的语句就是查询(SELECT)语句,而SELECT语句也是SQL语言中相当复杂的语句,它包含单表查询,连接查询,嵌套查询,集合查询等各种复杂不同的数据库查询。
单表查询
单表查询是SELECT语句中最简单的查询语句。
select语句格式:
SELECT [ALL|DISTINCT] {*|table1.*|{table1.field1} [as alias1]|{table2.field2} [as alias2],....}
FROM table1 AS [别名],table2 AS [别名]
讲解:
*---表示表中所有字段
table.*---表示某个表的所有字段
table.field---表示某个表的某个字段
AS alias---给字段取别名,as可以省略
select语句执行顺序:
SELECT 子句-----再执行SELECT 2
FROM 子句-----先执行FROM 1
SELECT 语句的意义是根据不同的条件查询出数据,最终显示查询出来的结果集;select子句控制结果集的显示。
现在有三张表,表结构如下:
班级(class)表(学号(xuehao),姓名(name),班级(class),年龄(age))
课程(course)表(课程名(c_name),课程号(cno))
分数(score)表(学号(xuehao),课程号scno,分数(score))
1.不加条件的查询语句
1.查询class表中所有的数据
mysql> SELECT * FROM class;
2.查询class表中name字段的数据
mysql> SELECT name FROM class;
3.查询class表上name和age字段,并取别名
mysql> SELECT name as 姓名,age 年龄
-> FROM class;
4.在第三题的基础上,给class表取别名
mysql>SELECT c.name as 姓名,c.age 年龄
-> FROM class c;
5.查询class表中city字段,并去重
mysql> SELECT DISTINCT city
-> FROM class;
6.查询class表中前面三条数据(LIMIT ---返回指定的数据)
mysql> SELECT * FROM class LIMIT 3;
7.查询class表中第五条数据后面的三条数据
mysql> SELECT * FROM class LIMIT 5,3;
2.加上条件语句
格式:SELECT [ALL|DISTINCT] {*|table1.*|{table1.field1} [as alias1]|{table2.field2} [as alias2],....}
FROM table1 [别名],table2别名,....
[WHERE (条件s)]
1.查询class表中姓名为张季柯的数据
mysql> SELECT *
-> FROM class
-> WHERE name = 'tester';
语句执行顺序:
SELECT * ---------------------------------3 ---最终显示的结果集
FROM class ------------------------------1
WHERE name = 'tester'; ----------------2
2.查询class表中姓名为张三丰的年龄的数据
mysql> SELECT age 年龄
-> FROM class
-> WHERE name = '张三丰';
3.查询class表中city为成都的学员的姓名和班级的数据
mysql> SELECT name,class
-> FROM class
-> WHERE city = "成都”;
4.在3的基础给name和class分别取别名
mysql> SELECT name 姓名,class 班级
-> FROM class
-> WHERE city = '成都’;
在条件语句中加上运算符和IN,BETWEEN,LIKE等关键字,可查询某个范围的数据
运算符:>,<,=,<>,<=,>=
IN、BETWEEN….AND、LIKE
5.查询class表中age大于等于23的学员
mysql> SELECT *
-> FROM class
-> WHERE age >= 23;
6.查询class有中age小于等于23的学员的姓名和班级
mysql> SELECT name 姓名,class 班级 from class where age <= 23;
7.查询class表中班级不为C1704的所有学员信息
mysql> SELECT *
-> FROM class
-> WHERE class <> 'C1704';
注意:<>在某SQL版本中可以与 != 互换
8.查询class表中年龄为23,25,27的学员姓名和班级----IN 包含
格式:IN (值1,值2,值3,....)
mysql> SELECT name 姓名,class as 班级
-> FROM class
-> WHERE age IN (23,25,27);
9.查询score表中成绩为(80,90,78)的学员姓名和学号
mysql> SELECT name 姓名,xuehao 学号
-> FROM score
-> WHERE score IN (80,90,78);
10.查询score表中成绩为70-90之间的学员信息
mysql> SELECT * FROM score
-> WHERE score <= 90 AND score >= 70;
=== SELECT * FROM score
WHERE score BETWEEN 70 AND 90; ----推荐
注意:BETWEEN ....AND....在某某之间的数据,可以是数值,也可以是文本,也可以是日期
11.查询class表中class为A1354到C1805之间的学员
mysql> SELECT * FROM class
-> WHERE class BETWEEN 'A1354' AND 'C1805';
注意:以字母顺序取值 取A--C之间的数据
12.查询出class表姓名以王开头的学员信息---like
mysql> SELECT * FROM class
-> WHERE name LIKE '王%';
注意:LIKE----好像
一般与通配符搭配使用:
%---一个或多个字符串
_---一个字符
13.查询出class表中姓名为王开头,且姓名只有二个字的学员信息
mysql> SELECT * FROM class
-> WHERE name LIKE '王_';
14.查询class表中姓名以王和张开头的数据
mysql> SELECT * FROM class
-> WHERE name like '王%' OR name like '张%';
注意:OR---或,一般跟WHERE语句里,表示二个条件只要满足一个就行,并集
15.查询class表中姓名以王开头,且年龄为23的学生信息
mysql> SELECT * FROM class
-> WHERE name LIKE '王%' AND age = 23;
注意:and---和,表示二个条件同时满足,取条件的交集
16.查询class表中年龄不为null
mysql> SELECT * FROM class
-> WHERE age not is null;
注意:NOT---不满足后面的条件
3.针对结果集进行升降顺序排序
ORDER BY 对指定的结果集进行排序
格式:
SELECT [ALL|DISTINCT] {*|table1.*|{table1.field1} [as alias1]|{table2.field2} [as alias2],....}
FROM table1 [别名],table2,....
[WHERE 某列名称 = 某值]
[ORDER BY ...]
1.查询score表中的分数,并以递增的顺序进行排序(升序)
mysql> SELECT score FROM score ORDER BY score;
2.查询score表中的分数,并以递减的顺序进行排序(降序)
mysql> SELECT score FROM score ORDER BY score desc;
注意:ASC ----升序排列, 一般默认就是升序,可以省略
DESC----降序排列,只有加上DESC,才是降序
3.查询class表中学员的姓名,以年龄降序排列,名字升序排列
mysql> SELECT name
-> FROM class
-> ORDER BY age desc,name asc;
ORDER BY 是根据后面加上列名称来进行升序或降序排列
4.查询class表中学生年龄在20到30之间的学号和员姓名,同时对学号降序排列
mysql> SELECT xuehao,name
-> FROM class
-> WHERE age between 20 and 30
-> ORDER BY age desc;
接下来会再讲解SELECT语句的多表查询,连接查询,嵌套查询等复杂的查询语句,请多关注。
猜你喜欢
- 2024-10-20 常用SQL系列之(八):列值累计、占比、平均值以及日期运算等
- 2024-10-20 选读SQL经典实例笔记02_多表查询(sql语句多表查询案例)
- 2024-10-20 不知道怎么分析MySQL查询瓶颈,这款自带工具太香了,强烈推荐
- 2024-10-20 怎么找出连续5天登录的用户,大数据面试题sql
- 2024-10-20 Pandas与SQL的数据操作语句对照(pandas和sql哪个速度快)
- 2024-10-20 「Excel」筛选不重复的数据—Part1
- 2024-10-20 Excel零基础学SQL22:中式排名,美式排名,分组排名
- 2024-10-20 MySql基础使用「增删改查」20211221
- 2024-10-20 Pandas&SQL语法归纳总结,真的太全了
- 2024-10-20 Excel多条件不重复计数,4种方法,总有一种适合你
- 04-29kali2021ping 外网不通
- 04-29我是如何用这3个小工具,助力小姐姐提升100%开发效率的
- 04-29注册下载啊
- 04-29Spring 中三种 BeanName 生成器!
- 04-29mysql学习9:创建数据库
- 04-29Linux之yum源详解
- 04-29夏日终曲/请以你的名字呼唤我/Call me by your name(无剧透)
- 04-29注释竟然还有特殊用途?一文解惑 //go:linkname 指令
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- sqlset (59)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)