ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

软件测试面试必考的SQL语句

2021-11-30 14:58:00  阅读:202  来源: 互联网

标签:name 必考 sex Student SQL NULL id SELECT 软件测试


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

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)

多表联合查询
这是学生表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班"))

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

标签:name,必考,sex,Student,SQL,NULL,id,SELECT,软件测试
来源: https://blog.csdn.net/lala_yanzi/article/details/121350859

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有