之前找工作参加了几个面试,发现软件测试的笔试都有一道关于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语句相关推荐

  1. sql面试题:面试常考的sql语句题汇总(面试SQL必考必看)

    我自己编辑总结的sql面试题目大全,也是每条都验证过的 第一类:sql面试题(学生表_课程表_成绩表_教师表) 表结构,节选自:http://www.cnblogs.com/qixuejia/p/36 ...

  2. 软件测试面试中会碰到sql语句的笔试题

    在面试大公司的时候,很多情况下都有笔试题,笔试题经常包含软件测试的基础知识点.逻辑题.等等,有时候也会碰到关于sql语句的题目,今天来列举一些简单的sql语句,希望对大家有所帮助. 创建表语句 SET ...

  3. 面试必考的网络协议相关题目应该如何回答

    转载自  面试必考的网络协议相关题目应该如何回答 最近,正处于校招季.很多小伙伴已经拿到了如愿以偿的Offer,有些小伙伴还在努力着. 平常,也会有一些粉丝会在公众号留言,或者在微信上问我一些面试题. ...

  4. 最强Java面试题全部合集,涵盖BAT大厂面试必考的9大技术!-强烈建议收藏

    过去2年我持续分享了BAT TMD为代表的大厂最新面试题目,特别是蚂蚁金服.天猫.淘宝.头条.拼多多等Java面试题目. 过去2年,我已经成功的帮助了部分同学进入了大厂. 2020开始,我依然会为大家 ...

  5. mysql语句engin_MySQL必会的SQL语句

    本文谈谈MySQL的开发必会的sql语句 创建数据库 create database db1; 删除数据库 drop database db1; 创建数据表 create table tb1用户表( ...

  6. php面试专题---MySQL常用SQL语句优化

    php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行 ...

  7. 环形链表【手绘漫画】面试必考之双指针(LeetCode 141)

    文章目录 图解算法与数据结构 1.前言 2.实例 3.正文 4.代码 图解算法与数据结构 1.前言 今天开始的是双指针! 下面一起来看看吧!!! 让我们从一个经典问题开始: 环形链表进阶版[手绘漫画] ...

  8. 10 道大厂面试必考的计算机网络问题-陶辉 极客时间

    大厂中更多会考察你的长板. 在大厂中要学会求助 1.TCP的三次握手机制,为什么要三次? 为什么需要握手? 需要同步序列号,当然也有MSS(最大报文段长度),滑动窗口. 为什么是3次? 正常想法应该是 ...

  9. ❤️40条软件测试面试常考题目总结(附答案解析)【建议收藏】❤️

    40条软件测试面试常考题目总结,话不多说上干货~ (附答案解析) 1 开发犯低级错误怎么办? 开发首先要规范好编码,出低级错时不要指责,内心指出错误.让他们自己进行测试,反思找出错误. 2 你进行过哪 ...

  10. 软件测试面试必看,资深测试工程师面试题集锦 全网首发

    全网首发,最牛的全套软件测试  ,自动化测试面试题,这些面试题都在文章末尾,有需要的可以自取 废话少说直接开始咱们今天的整体内容, 1.自我介绍? 我是谁.工作几年.你上家公司做什么.负责什么.你的优 ...

最新文章

  1. PostgreSQL从继承到分区(三)
  2. Let's Encrypt 免费通配符 SSL 证书申请教程——但是也需要email,域名所有权等,如果是黑产用的话会这样用吗?会不会暴露自己身份???...
  3. Linux文件索引节点相关概念
  4. python——面向对象进阶之新增属性和方法
  5. javascript装饰者模式
  6. 基于栈和基于寄存器的Java虚拟机
  7. 领域驱动设计,让程序员心中有码(八)
  8. vue js 反编译_学会了Vue,前端面试却没找到工作?
  9. 操作系统—基本知识(细致版)
  10. Android开发人员得让短信应用程序准备好迎接巧克力棒
  11. 使用MATLAB进行二次规划求解最优值
  12. 数字逻辑练习题(七) 用74LS138译码器和门电路实现逻辑函数
  13. 小波去噪 语音去噪 信号小波去噪 小波基去噪 小波收缩去噪-matlab
  14. 帕累托法则(Pareto Principle)、二八定律、帕累托定律、最省力法则、不平衡原则、犹太法则、马特莱法则
  15. 三星手机android版本怎么升级,如何在三星Galaxy手机上更新软件
  16. 程序之外:由电影《少年的你》揭露的bug
  17. 一起Talk Android吧(第三百一十七回:Android中的虚拟按键)
  18. 一刀工具箱 - 成语查询工具
  19. 【转载】【收藏】汽车电子expert成长之路公众号系列文章列表
  20. 云之讯融合通讯开放平台_提供融合语音,短信,VoIP,视频和IM等通讯API及SDK。...

热门文章

  1. 【2020年CSDN技术人内推活动开始啦】多家名企员工在线内推,快人一步拿Offer
  2. 【离散数学】集合论 第三章 集合与关系(1) 集合的概念与表示
  3. 计算机软件著作权模板及个人申请全套攻略-软著
  4. 【第八周】程序设计方法学
  5. matlab7.0的序列号
  6. html关机命令,自动关机命令 定时关机命令
  7. 史上最强图标下载,3124个图标专辑,超过60万免费图标提供下载
  8. 6款字体转换工具网站,一键生成想要字体!
  9. Flightgear 编译
  10. 运放专题:电压比较器