MySQL视图以及常见面试题

文章目录

  • 一.视图
    • 1.介绍什么是视图
      • 含义
    • 2.视图的用法
      • 语法
      • 操作
  • 二.MySQL面试题
    • 面试题
  • 三.思维导图

一.视图

1.介绍什么是视图

随着数字化时代的飞速发展,数据库技术,特别是MySQL,已经成为IT领域中不可或缺的一环。从简单的数据存储到复杂的数据分析,从个人博客到大型企业的核心系统,MySQL都在背后默默地发挥着作用。而在这不断演变的过程中,我们对于MySQL的了解和掌握也需要与时俱进。

含义

虚拟表,和普通表一样使用

2.视图的用法

语法

创建:
create view 视图名 as 查询语句 ;

CREATE VIEW aa as SELECT s.*,sc.cid,sc.score FROM t_mysql_student s, t_mysql_score sc WHERE s.sid = sc.sid;

MySQL视图以及常见面试题_第1张图片

查看:

show create view 视图名;

修改:

create or replace view 视图名
as 查询语句

删除:
drop view 视图名
MySQL视图以及常见面试题_第2张图片

操作

二.MySQL面试题

面试题

1.查询" 01 “课程比” 02 "课程成绩高的学生的信息及课程分数

SELECT
s.*,
( CASE WHEN t1.cid = ‘01’ THEN t1.score END ) 语文,
( CASE WHEN t2.cid = ‘02’ THEN t2.score END ) 数学
FROM
t_mysql_student s,
( SELECT * FROM t_mysql_score WHERE cid = ‘01’ ) t1,
( SELECT * FROM t_mysql_score WHERE cid = ‘02’ ) t2
WHERE
s.sid = t1.sid
AND t1.sid = t2.sid
AND t1.score > t2.score
MySQL视图以及常见面试题_第3张图片
02)查询同时存在" 01 “课程和” 02 "课程的情况

SELECT
s.*,
( CASE WHEN t1.cid = ‘01’ THEN t1.score END ) 语文,
( CASE WHEN t2.cid = ‘02’ THEN t2.score END ) 数学
FROM
t_mysql_student s,
( SELECT * FROM t_mysql_score WHERE cid = ‘01’ ) t1,
( SELECT * FROM t_mysql_score WHERE cid = ‘02’ ) t2
WHERE
s.sid = t1.sid
AND t1.sid = t2.sid

MySQL视图以及常见面试题_第4张图片

03)查询存在" 01 “课程但可能不存在” 02 "课程的情况(不存在时显示为 null )

SELECT * from
( SELECT * FROM t_mysql_score WHERE cid = ‘01’ ) t1
LEFT JOIN
( SELECT * FROM t_mysql_score WHERE cid = ‘02’ ) t2
on t1.sid=t2.sid

MySQL视图以及常见面试题_第5张图片

04)查询不存在" 01 “课程但存在” 02 "课程的情况

SELECT
* 

FROM
t_mysql_student s,
t_mysql_score sc
WHERE
s.sid = sc.sid
AND s.sid NOT IN ( SELECT sid FROM t_mysql_score WHERE cid = ‘01’ )
AND sc.cid = ‘02’

MySQL视图以及常见面试题_第6张图片

05)查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩
SELECT
s.sid,
s.sname,
ROUND( AVG( sc.score ) ) 分数
FROM
t_mysql_student s
LEFT JOIN t_mysql_score sc ON s.1sid = sc.sid
GROUP BY
s.sid,
s.sname
HAVING
分数 >= 60

MySQL视图以及常见面试题_第7张图片

06)查询在t_mysql_score表存在成绩的学生信息

SELECT
s.sid,
s.sname
FROM
t_mysql_student s
INNER JOIN t_mysql_score sc ON s.sid = sc.sid
GROUP BY
s.sid,
s.sname

MySQL视图以及常见面试题_第8张图片

07)查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩(没成绩的显示为 null )

SELECT
s.sid,
s.sname,
COUNT( sc.cid ),
SUM( sc.score )
FROM
t_mysql_score sc,
t_mysql_student s
WHERE
sc.sid = s.sid
GROUP BY
s.sid,
s.sname

MySQL视图以及常见面试题_第9张图片

08)查询「李」姓老师的数量

select count(*) from t_mysql_teacher where tname like ‘李%’
MySQL视图以及常见面试题_第10张图片

三.思维导图

在这里插入图片描述

你可能感兴趣的:(mysql,android,数据库)