关于SQL查询面试题,测试会这些基本够用了

news2024/10/7 4:32:19

Sutdent表的定义

Score表的定义

1、创建student和score表

CREATE  TABLE  student (

id  INT(10)  NOT NULL  UNIQUE  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  UNIQUE  PRIMARY KEY  AUTO_INCREMENT ,

stu_id  INT(10)  NOT NULL ,

c_name  VARCHAR(20) ,

grade  INT(10)

);

2、为student表和score表增加记录

向student表插入记录的INSERT语句如下:

INSERT INTO student VALUES( 901,'张老大', '男',1985,'计算机系', '北京市海淀区');

INSERT INTO student VALUES( 902,'张老二', '男',1986,'中文系', '北京市昌平区');

INSERT INTO student VALUES( 903,'张三', '女',1990,'中文系', '湖南省永州市');

INSERT INTO student VALUES( 904,'李四', '男',1990,'英语系', '辽宁省阜新市');

INSERT INTO student VALUES( 905,'王五', '女',1991,'英语系', '福建省厦门市');

INSERT INTO student VALUES( 906,'王六', '男',1988,'计算机系', '湖南省衡阳市');

向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);

3、查询student表的所有记录

mysql> SELECT * FROM student;

+-----+--------+------+-------+---------+-----------+

| id  | name   | sex  | birth | department | address  |

+-----+--------+------+-------+----------+----------+

| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |

| 902 | 张老二 | 男   |  1986 | 中文系     | 北京市昌平区 |

| 903 | 张三   | 女   |  1990 | 中文系     | 湖南省永州市 |

| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |

| 905 | 王五   | 女   |  1991 | 英语系     | 福建省厦门市 |

| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 |

+-----+--------+------+-------+--------+-----------+

4、查询student表的第2条到4条记录

mysql> SELECT * FROM student LIMIT 1,3;

+-----+--------+------+-------+----------+------------+

| id  | name  | sex  | birth | department | address |

+-----+--------+------+-------+----------+------------+

| 902 | 张老二 | 男   |  1986 | 中文系     | 北京市昌平区 |

| 903 | 张三   | 女   |  1990 | 中文系     | 湖南省永州市 |

| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |

+-----+--------+------+-------+---------+--------------+

5、从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息

mysql> SELECT id,name,department FROM student;

+-----+--------+------------+

| id  | name   | department |

+-----+--------+------------+

| 901 | 张老大 | 计算机系   |

| 902 | 张老二 | 中文系     |

| 903 | 张三   | 中文系     |

| 904 | 李四   | 英语系     |

| 905 | 王五   | 英语系     |

| 906 | 王六   | 计算机系   |

+-----+--------+------------+

6、从student表中查询计算机系和英语系的学生的信息

mysql> SELECT * FROM student WHERE department IN ('计算机系','英语系');

+-----+--------+------+-------+----------+------------+

| id  | name   | sex  | birth | department | address |

+-----+--------+------+-------+----------+------------+

| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |

| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |

| 905 | 王五   | 女   |  1991 | 英语系     | 福建省厦门市 |

| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 |

+-----+--------+------+-------+------------+--------------+

7、从student表中查询年龄18~22岁的学生信息

mysql> SELECT id,name,sex,2013-birth AS age,department,address

    -> FROM student

    -> WHERE 2013-birth BETWEEN  18 AND 22;

+-----+------+------+------+------------+--------------+

| id  | name | sex  | age  | department | address |

+-----+------+------+------+------------+--------------+

| 905 | 王五 | 女   |   22 | 英语系     | 福建省厦门市 |

+-----+------+------+------+------------+--------------+

mysql> SELECT id,name,sex,2013-birth AS age,department,address

    -> FROM student

    -> WHERE 2013-birth>=18 AND 2013-birth<=22;

+-----+------+------+------+------------+--------------+

| id  | name | sex  | age  | department | address|

+-----+------+------+------+------------+--------------+

| 905 | 王五 | 女   |   22 | 英语系     | 福建省厦门市 |

+-----+------+------+------+------------+--------------+

8、从student表中查询每个院系有多少人 

mysql> SELECT department, COUNT(id) FROM student GROUP BY department;

+------------+-----------+

| department | COUNT(id) |

+------------+-----------+

| 计算机系   |         2 |

| 英语系     |         2 |

| 中文系     |         2 |

+------------+-----------+

9、从score表中查询每个科目的最高分

mysql> SELECT c_name,MAX(grade) FROM score GROUP BY c_name;

+--------+------------+

| c_name | MAX(grade) |

+--------+------------+

| 计算机 |         98 |

| 英语   |         94 |

| 中文   |         95 |

+--------+------------+

10、查询李四的考试科目(c_name)和考试成绩(grade)

mysql> SELECT c_name, grade

    ->      FROM score WHERE stu_id=

    ->  (SELECT id FROM student

    ->    WHERE name= '李四' );

+--------+-------+

| c_name | grade |

+--------+-------+

| 计算机 |    70 |

| 英语   |    92 |

+--------+-------+

11、用连接的方式查询所有学生的信息和考试信息

mysql> SELECT student.id,name,sex,birth,department,address,c_name,grade

    -> FROM student,score

    ->  WHERE student.id=score.stu_id;

+-----+-----+------+-------+--------+---------+--------+-------+

| id| name | sex  | birth | department | address | c_name | grade |

+-----+--------+------+-------+------+--------+--------+-------+

| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 | 计算机 |  98 |

| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 | 英语   |  80 |

| 902 | 张老二 | 男   |  1986 | 中文系     | 北京市昌平区 | 计算机 |   65 |

| 902 | 张老二 | 男   |  1986 | 中文系     | 北京市昌平区 | 中文   |   88 |

| 903 | 张三   | 女   |  1990 | 中文系     | 湖南省永州市 | 中文   |   95 |

| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 | 计算机 |  70 |

| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 | 英语   |    92 |

| 905 | 王五   | 女   |  1991 | 英语系     | 福建省厦门市 | 英语   |    94 |

| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 | 计算机 |   90 |

| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 | 英语   |    85 |

+-----+------+------+-----+---------+---------+--------+-------+

12、计算每个学生的总成绩

mysql> SELECT student.id,name,SUM(grade) FROM student,score

    -> WHERE student.id=score.stu_id

    -> GROUP BY id;

+-----+--------+------------+

| id  | name| SUM(grade) |

+-----+--------+------------+

| 901 | 张老大 |        178 |

| 902 | 张老二 |        153 |

| 903 | 张三   |         95 |

| 904 | 李四   |        162 |

| 905 | 王五   |         94 |

| 906 | 王六   |        175 |

+-----+--------+------------+

13、计算每个考试科目的平均成绩

mysql> SELECT c_name,AVG(grade) FROM score GROUP BY c_name;

+--------+------------+

| c_name | AVG(grade) |

+--------+------------+

| 计算机 |    80.7500 |

| 英语   |    87.7500 |

| 中文   |    91.5000 |

+--------+------------+

14、查询计算机成绩低于95的学生信息

mysql> SELECT * FROM student

    -> WHERE id IN

    -> (SELECT stu_id FROM score

    -> WHERE c_name="计算机" and grade<95);

+-----+--------+------+-------+---------+------------+

| id  | name| sex  | birth | department | address |

+-----+--------+------+-------+---------+------------+

| 902 | 张老二 | 男   |  1986 | 中文系     | 北京市昌平区 |

| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |

| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 |

+-----+--------+------+-------+----------+-----------+

15、查询同时参加计算机和英语考试的学生的信息

mysql> SELECT *  FROM student

    ->  WHERE id =ANY

    ->  ( SELECT stu_id FROM score

    ->  WHERE stu_id IN (

    ->          SELECT stu_id FROM

    ->          score WHERE c_name=  '计算机')

    ->  AND c_name= '英语' );

+-----+--------+------+-------+----------+--------------+

| id  | name | sex  | birth | department | address |

+-----+--------+------+-------+----------+--------------+

| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |

| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |

| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 |

+-----+--------+------+-------+----------+--------------+

mysql> SELECT a.* FROM student a ,score b ,score c

    -> WHERE a.id=b.stu_id

    -> AND b.c_name='计算机'

    -> AND a.id=c.stu_id

    -> AND c.c_name='英语';

+-----+--------+------+-------+------------+-----------+

| id  | name| sex  | birth | department | address |

+-----+--------+------+-------+-----------+-----------+

| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 |

| 904 | 李四   | 男   |  1990 | 英语系     | 辽宁省阜新市 |

| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 |

+-----+--------+------+-------+---------+-----------+

16、将计算机考试成绩按从高到低进行排序

mysql> SELECT stu_id, grade

    ->  FROM score WHERE c_name= '计算机'

    ->  ORDER BY grade DESC;

+--------+-------+

| stu_id | grade |

+--------+-------+

|    901 |    98 |

|    906 |    90 |

|    904 |    70 |

|    902 |    65 |

+--------+-------+

17、从student表和score表中查询出学生的学号,然后合并查询结果

mysql> SELECT id  FROM student

    -> UNION

    -> SELECT stu_id  FROM score;

+-----+

| id  |

+-----+

| 901 |

| 902 |

| 903 |

| 904 |

| 905 |

| 906 |

+-----+

18、查询姓张或者姓王的同学的姓名、院系和考试科目及成绩

mysql> SELECT student.id, name,sex,birth,department, address, c_name,grade

    -> FROM student, score

    -> WHERE

    ->  (name LIKE  '张%'  OR name LIKE  '王%')

    ->  AND

    ->  student.id=score.stu_id ;

+-----+------+------+-------+--------+--------+--------+-------+

| id  | name | sex | birth | department |address | c_name | grade |

+-----+--------+------+-----+------+----------+--------+-------+

| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 | 计算机 |  98 |

| 901 | 张老大 | 男   |  1985 | 计算机系   | 北京市海淀区 | 英语   |  80 |

| 902 | 张老二 | 男   |  1986 | 中文系    | 北京市昌平区 | 计算机 |   65 |

| 902 | 张老二 | 男   |  1986 | 中文系    | 北京市昌平区 | 中文   |    88 |

| 903 | 张三   | 女   |  1990 | 中文系     | 湖南省永州市 | 中文   |    95 |

| 905 | 王五   | 女   |  1991 | 英语系     | 福建省厦门市 | 英语   |    94 |

| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 | 计算机 |  90 |

| 906 | 王六   | 男   |  1988 | 计算机系   | 湖南省衡阳市 | 英语   |   85 |

+-----+-------+------+-------+--------+--------+-------+-------+

19、查询都是湖南的学生的姓名、年龄、院系和考试科目及成绩

mysql> SELECT student.id, name,sex,birth,department, address, c_name,grade

    -> FROM student, score

    -> WHERE address LIKE '湖南%'   AND

    ->  student.id=score.stu_id;

+-----+------+------+-------+------+------+--------+-----------+

| id  | name|sex  | birth | department |address  | c_name | grade |

+-----+------+------+-------+---------+-------+--------+-------+

| 903 | 张三 | 女   |  1990 | 中文系     | 湖南省永州市 | 中文   |   95 |

| 906 | 王六 | 男   |  1988 | 计算机系   | 湖南省衡阳市 | 计算机 |   90 |

| 906 | 王六 | 男   |  1988 | 计算机系   | 湖南省衡阳市 | 英语   |    85 |

+-----+------+------+-------+---------+-------+--------+-------+

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/848633.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据-玩转数据-Flink-Transform

一、Transform 转换算子可以把一个或多个DataStream转成一个新的DataStream.程序可以把多个复杂的转换组合成复杂的数据流拓扑. 二、基本转换算子 2.1、map&#xff08;映射&#xff09; 将数据流中的数据进行转换, 形成新的数据流&#xff0c;消费一个元素并产出一个元素…

研究人员发现特斯拉汽车能被越狱,可免费解锁付费功能

Bleeping Computer 网站披露&#xff0c;柏林工业大学&#xff08;Technical University of Berlin&#xff09;的研究人员开发出一种新技术&#xff0c;可以破解特斯拉近期推出所有车型上使用的基于 AMD 的信息娱乐系统&#xff0c;并使其运行包括付费项目在内的任何软件。 实…

22、springboot的Profile(通过yml配置文件配置 profile,快速切换项目的开发环境)

springboot的Profile ★ 何谓Profile 应用所在的运行环境发生切换时&#xff0c;配置文件常常就需要随之修改。Profile&#xff1a;——就是一组配置文件及组件的集合。可以整个应用在不同的profile之间切换&#xff08;设置活动profile&#xff09;&#xff0c;整个应用都将使…

QGIS二次开发三:显示Shapefile

Shapefile 为 OGR 所支持的最重要的数据格式之一&#xff0c;自然可以被 QGIS 加载。那么该如何显示Shapefile呢&#xff1f; 一、先上代码 #include <qgsapplication.h> #include <qgsproviderregistry.h> #include <qgsmapcanvas.h> #include <qgsvec…

HDFS中snapshot快照机制

HDFS中snapshot快照机制 介绍作用功能实现相关命令和操作相关命令 介绍 snapshot是数据存储的某一时刻的状态记录&#xff0c;备份&#xff08;backup&#xff09;则是数据存储的某一个时刻的副本HDFS snapshot快照是整个文件系统或某个目录在某个时刻的镜像&#xff0c;该镜像…

黑马机器学习day1

1.sklearn数据集 sklearn.datasets datasets.load_*() 获取小规模的数据集 datasets.fetch_*(data_homeNone) 获取大规模数据集 函数的第一个参数是data_home,标识数据集下载目录&#xff0c;默认/scikit_learn_data/ 1.1sklearn小数据集 sklearn.da…

无涯教程-Perl - fcntl函数

描述 该函数是系统fcntl()函数的Perl版本。使用FILEHANDLE上的SCALAR执行FUNCTION指定的功能。 SCALAR包含函数要使用的值,或者是任何返回信息的位置。 语法 以下是此函数的简单语法- fcntl FILEHANDLE, FUNCTION, SCALAR返回值 该函数返回0,但如果fcntl()的返回值为0,则返…

Vue2:组件高级(下)

Vue2&#xff1a;组件高级&#xff08;下&#xff09; Date: May 25, 2023 Sum: 自定义指令、插槽、商品列表、动态组件 目标&#xff1a; 自定义指令 基础概念&#xff1a; 概念&#xff1a; 内置指令&#xff1a;vue 官方提供了 v-for、v-model、v-if 等常用的内置指令。…

整数规划——第七章 分支定界算法

整数规划——第七章 分支定界算法 目前大部分整数规划商业软件如CPLEX&#xff0c;Gurobi和BARON等都是基于分枝定界算法框架的。 7.1 最优性条件和界 考虑下列一般线性整数规划问题&#xff1a; (IP) min ⁡ c T x , s . t . A x ≤ b , x ∈ Z n (7.1) \text{(IP)}\quad…

部署-打包并提交代码到Git服务器

前期准备工作 vue.config.js const { defineConfig } require(vue/cli-service) module.exports defineConfig({// 项目出Bug,点击错误可以跳到对应的位置&#xff0c;实际生成环境是不需要的 默认为trueproductionSourceMap: false,lintOnSave: false,publicPath: process.…

720度全视角!VR直播遇上法院庭审,你体验过吗?

在元宇宙发展背景之下&#xff0c;VR直播技术同样驶入了发展的快车道&#xff0c;以沉浸式、交互式体验为特点的VR技术&#xff0c;将原本就受欢迎的直播变得更加立体、真实、可靠&#xff0c;观众只需要一部手机就可以实现全方位、无死角地观看直播现场&#xff0c;体验宛如身…

小白带你学习linux的Redis基础(三十二)

目录 前言 一、概述 1、NoSQL 2、Redis 二、安装 1、基础配置 2、编译安装 3、RPM安装网络源安装 三、目录结构 1、rpm -ql redis 2、/etc/redis.conf 四、命令解析 1、redis-server 2、redis-cli 2、redis-check-rdb 3、redis-check-aof 五、redis登录更改 …

ES面试题

前言 1、面试突击正确的学习姿势 老师在给你讲面试突击的时候&#xff0c;是有课件的&#xff0c;而且是有准备的。你在面试的时候&#xff0c;是没有笔记课件的&#xff0c;而且问题是由面试官提问的&#xff0c;具有一定的随机性面试突击课程的目标不是听懂&#xff0c;而是…

文件上传漏洞(webshell)

一、防护 1、防护 1、判断文件后缀&#xff0c;为图片的话才让上传成功。 2、解析文件内容&#xff08;文件幻数&#xff09;判断文件头和文件尾部是否一致 幻数 常见的 3、隐藏按钮&#xff08;带上code唯一值&#xff09; 4、二次渲染&#xff08;类似拿着你的图片&#xff…

cannot import name ‘container_abcs‘ from ‘torch._six‘

进行模型训练的时候&#xff0c;报错&#xff1a; 原因是&#xff1a;torch1.8版本之后container_abcs被移除了&#xff0c;所以我们需要修改timm库中调用container_abcs的调用方式&#xff1a; timm库中调用container_abcs的文件是“~\Conda\envs\pytorch\Lib\site-packages\…

Java后台生成ECharts图片,并以Base64字符串返回

前言 通过echarts的jar包&#xff0c;Java后台生成一张图片&#xff0c;并把图片插入到word中。关于word插图片的代码在下一章。 需要用到的工具PhantomJS,Echarts-convert.js,jquery.js,echarts.js。 1.PhantomJS 介绍 PhantomJS是一个不需要浏览器的富客户端。 官方介绍&…

十年后的web渗透(网络安全)前景如何?你想知道的都在这里

前言 web渗透是网络安全大行业里入门板块&#xff0c;就像十年前的软件&#xff0c;前景非常被看好&#xff0c;薪资也很诱人。与软件测试和前端开发只需掌握一定的编程能力不同的是&#xff0c;渗透需要掌握的知识内容较多&#xff0c;花费的时间较长&#xff0c;渗透测试掌握…

值得苦练的100道Python经典练手题,(附详细答案)

嗨喽大家好卷子又来了&#xff0c;100道Python经典练手题奉上 花了一周的时间&#xff0c;整理了100道Python的练习题&#xff0c;如果你是一位初学者&#xff0c;那么这一份练习题将会给你带来极大的帮助&#xff0c;如果你能够完全独立的完成这份练习题&#xff0c;你已经入…

C/C++学习笔记 Vantage Point Trees的C++实现

下面代码是VP 树的 C 实现&#xff0c;递归search()函数决定是搜索左孩子、右孩子还是两个孩子。为了有效地维护结果列表&#xff0c;我们使用优先级队列。 // A VP-Tree implementation, by Steve Hanov. (steve.hanovgmail.com) // Released to the Public Domain // Based o…

【C++】开源:tinyxml2解析库配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍tinyxml2解析库配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;…