软件测试面试必考的SQL语句
之前找工作参加了几个面试,发现软件测试的笔试都有一道关于SQL的简答题,今天就把必考的题型及参考答案汇总一下。
基础SQL例子
1、创建表,如创建学生表Student,要求有学生姓名name,年龄age,班级class
大致写法是:
字段名 类型 是否为空 主键
CREATE TABLE Student (name VARCHAR ( 255 ) not null primary key,age INT NOT NULL,class VARCHAR ( 255 ) NOT NULL
)
创建后表如下
2、修改字段名,基本语法是:
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
如把上表的name改为name1
ALTER TABLE Student CHANGE name name1 VARCHAR (255);
3、向Student表插入一条数据“小红,11,3年(2)班”
INSERT INTO student VALUES( '小红',12, '3年(2)班');
4、删除Student表中name为“小红”的记录
delete from Student where name="小红";
5、将Student表中name为小红,改为小小丽
UPDATE Student1 SET `name` = '小小丽' WHERE `name` = '小红'
6、求出每个年龄层的人数
SELECT age,COUNT(*) FROM `Student` GROUP BY age
如果将上面的要求改成求出11岁的学生人数有几个,那么SQL语句就是
SELECT age,COUNT(*) FROM `Student` GROUP BY age having age=11
如果说求出班级的学生人数,也就是求学生表的总数
SELECT COUNT(*) FROM `Student`
7、简单去重,求出去除重复名字后的名字列
SELECT DISTINCT `NAME` FROM Student1
创建有默认值且限定字段值的表
例子:创建一个员工表,要求有sex字段,且sex仅限男女两种值,默认是男
(1)如果是以下创建方式,sex字段插入非男或者非女值,是不会报错的,原因未知
CREATE TABLE employee (id INT ( 255 ) NOT NULL PRIMARY KEY,NAME VARCHAR ( 10 ) NOT NULL,sex CHAR ( 1 ) DEFAULT '男' CHECK (sex IN ( '男', '女' )),
phone INT ( 13 ) NOT NULL
)
(2)如果是以下这种创建方式,sex字段插入非男或者非女值,是会报错的
CREATE TABLE employee (id INT ( 255 ) NOT NULL PRIMARY KEY,NAME VARCHAR ( 10 ) NOT NULL,`sex` enum('男','女') default '男',phone INT ( 13 ) NOT NULL
)
求出最大id的男女两条数据
employee表如下:
select * from `employee` a where a.id in
(SELECT MAX(id) FROM `employee`
GROUP BY employee.sex)
上述的SQL虽然实现了效果,但是呢,执行速度是比较慢的,经过一番调整,所以就有了另外一种呈现方式
SELECT b.* FROM (SELECT a.* FROM `employee` a ORDER BY a.id DESC LIMIT 10000) b
GROUP BY
b.sex
多表联合查询
这是学生表student,其中sex字段的1代表男生,0代表女生
这是班级表class
这是学生班级表student_class
1、求出“1年1班”的学生名字和对应分数
SELECT a.s_name,a.score FROM student a
WHERE a.s_id IN (SELECT s_id FROM student_class
WHERE c_id IN (SELECT c_id FROM
class WHERE c_name="1年1班"))
查询结果如下
如果是上述的结果,感觉和题干不是很贴切,没有把班级名称c_name给返回,所以严谨点,sql语句查询如下
SELECT s.s_id,s.s_name,s.score,sc.c_id,c.c_name
from student s JOIN student_class sc on
s.s_id = sc.s_id JOIN
class c on sc.c_id=c.c_id and
c.c_name='1年1班';
返回的结果是
2、求出c_id为201的平均分
SELECT AVG(a.score) FROM student a JOIN
student_class b on a.s_id=b.s_id AND
b.c_id=201
再来一个比较相对复杂的,也是最近从同事那里学习到的。
class表结构如下
class_id | class_name |
---|---|
101 | 1年1班 |
201 | 2年1班 |
301 | 3年1班 |
401 | 4年1班 |
teacher表结构如下 | |
teacher_id | teacher name |
– | – |
1 | 王老师 |
2 | 张老师 |
通过上面两个表,求出张老师分别教哪些班级 |
SELECT teacher.teacder_name,class.class_id,class.class_name FROM teacher,`class` WHERE FIND_IN_SET (class_id,( SELECT class_id FROM teacher WHERE teacher.teacder_name="张老师")) AND teacher.teacder_name="张老师"
软件测试面试必考的SQL语句相关推荐
- sql面试题:面试常考的sql语句题汇总(面试SQL必考必看)
我自己编辑总结的sql面试题目大全,也是每条都验证过的 第一类:sql面试题(学生表_课程表_成绩表_教师表) 表结构,节选自:http://www.cnblogs.com/qixuejia/p/36 ...
- 软件测试面试中会碰到sql语句的笔试题
在面试大公司的时候,很多情况下都有笔试题,笔试题经常包含软件测试的基础知识点.逻辑题.等等,有时候也会碰到关于sql语句的题目,今天来列举一些简单的sql语句,希望对大家有所帮助. 创建表语句 SET ...
- 面试必考的网络协议相关题目应该如何回答
转载自 面试必考的网络协议相关题目应该如何回答 最近,正处于校招季.很多小伙伴已经拿到了如愿以偿的Offer,有些小伙伴还在努力着. 平常,也会有一些粉丝会在公众号留言,或者在微信上问我一些面试题. ...
- 最强Java面试题全部合集,涵盖BAT大厂面试必考的9大技术!-强烈建议收藏
过去2年我持续分享了BAT TMD为代表的大厂最新面试题目,特别是蚂蚁金服.天猫.淘宝.头条.拼多多等Java面试题目. 过去2年,我已经成功的帮助了部分同学进入了大厂. 2020开始,我依然会为大家 ...
- mysql语句engin_MySQL必会的SQL语句
本文谈谈MySQL的开发必会的sql语句 创建数据库 create database db1; 删除数据库 drop database db1; 创建数据表 create table tb1用户表( ...
- php面试专题---MySQL常用SQL语句优化
php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行 ...
- 环形链表【手绘漫画】面试必考之双指针(LeetCode 141)
文章目录 图解算法与数据结构 1.前言 2.实例 3.正文 4.代码 图解算法与数据结构 1.前言 今天开始的是双指针! 下面一起来看看吧!!! 让我们从一个经典问题开始: 环形链表进阶版[手绘漫画] ...
- 10 道大厂面试必考的计算机网络问题-陶辉 极客时间
大厂中更多会考察你的长板. 在大厂中要学会求助 1.TCP的三次握手机制,为什么要三次? 为什么需要握手? 需要同步序列号,当然也有MSS(最大报文段长度),滑动窗口. 为什么是3次? 正常想法应该是 ...
- ❤️40条软件测试面试常考题目总结(附答案解析)【建议收藏】❤️
40条软件测试面试常考题目总结,话不多说上干货~ (附答案解析) 1 开发犯低级错误怎么办? 开发首先要规范好编码,出低级错时不要指责,内心指出错误.让他们自己进行测试,反思找出错误. 2 你进行过哪 ...
- 软件测试面试必看,资深测试工程师面试题集锦 全网首发
全网首发,最牛的全套软件测试 ,自动化测试面试题,这些面试题都在文章末尾,有需要的可以自取 废话少说直接开始咱们今天的整体内容, 1.自我介绍? 我是谁.工作几年.你上家公司做什么.负责什么.你的优 ...
最新文章
- PostgreSQL从继承到分区(三)
- Let's Encrypt 免费通配符 SSL 证书申请教程——但是也需要email,域名所有权等,如果是黑产用的话会这样用吗?会不会暴露自己身份???...
- Linux文件索引节点相关概念
- python——面向对象进阶之新增属性和方法
- javascript装饰者模式
- 基于栈和基于寄存器的Java虚拟机
- 领域驱动设计,让程序员心中有码(八)
- vue js 反编译_学会了Vue,前端面试却没找到工作?
- 操作系统—基本知识(细致版)
- Android开发人员得让短信应用程序准备好迎接巧克力棒
- 使用MATLAB进行二次规划求解最优值
- 数字逻辑练习题(七) 用74LS138译码器和门电路实现逻辑函数
- 小波去噪 语音去噪 信号小波去噪 小波基去噪 小波收缩去噪-matlab
- 帕累托法则(Pareto Principle)、二八定律、帕累托定律、最省力法则、不平衡原则、犹太法则、马特莱法则
- 三星手机android版本怎么升级,如何在三星Galaxy手机上更新软件
- 程序之外:由电影《少年的你》揭露的bug
- 一起Talk Android吧(第三百一十七回:Android中的虚拟按键)
- 一刀工具箱 - 成语查询工具
- 【转载】【收藏】汽车电子expert成长之路公众号系列文章列表
- 云之讯融合通讯开放平台_提供融合语音,短信,VoIP,视频和IM等通讯API及SDK。...