mysql视图和sql语句

mysql视图和sql语句

  • 一.mysql视图
    • 1.数据的虚拟表示:
    • 2.简化复杂查询:
    • 3.安全性和权限控制:
    • 4.逻辑数据组织:
    • 5.更新限制:
    • 6.视图的创建:
  • 二.mysq语句使用案列

MySQL的视图(View)是一个虚拟表,它基于一个或多个实际表(或其他视图)的查询结果而创建。视图本身不包含实际的数据,而是根据定义视图的查询时动态生成的结果集。以下是有关MySQL视图的一些重要信息:

一.mysql视图

1.数据的虚拟表示:

视图提供了一个虚拟的数据表示方式,它并不存储实际数据,而是根据查询实时生成结果。这意味着视图是对底层表的动态引用。

2.简化复杂查询:

视图可以将复杂的查询、连接和计算封装成单个易于使用的虚拟表。通过创建视图,可以隐藏复杂性,并且可以让用户使用简单的SELECT语句访问数据。

3.安全性和权限控制:

视图可以用于控制用户对数据的访问权限。通过只向用户授予对视图的访问权限,可以隐藏底层表的细节和敏感信息,确保用户只能看到他们被授权查看的数据。

4.逻辑数据组织:

视图可以帮助组织数据逻辑,使其更容易理解和管理。它们可以根据特定的业务需求或查询模式对数据进行重组,使数据更具可读性和易用性。

5.更新限制:

某些视图是可更新的(可用于INSERT、UPDATE和DELETE操作),但并非所有视图都支持这些操作。更新视图可能受到复杂性、聚合函数或连接等因素的限制。

6.视图的创建:

在MySQL中,可以使用CREATE VIEW语句创建视图,定义视图的查询以及需要展示的列。

示例创建视图的语法:

CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

视图提供了一种灵活的数据访问方式,有助于简化复杂查询、增强安全性并改善数据组织。但需要注意,视图也可能增加系统开销,因为每次查询视图时,都会重新计算视图的结果集。

二.mysq语句使用案列

-- 学生表
insert into t_mysql_student values('01' , '赵雷' , '1990-01-01' , '男');
insert into t_mysql_student values('02' , '钱电' , '1990-12-21' , '男');
insert into t_mysql_student values('03' , '孙风' , '1990-12-20' , '男');
insert into t_mysql_student values('04' , '李云' , '1990-12-06' , '男');
insert into t_mysql_student values('05' , '周梅' , '1991-12-01' , '女');
insert into t_mysql_student values('06' , '吴兰' , '1992-01-01' , '女');
insert into t_mysql_student values('07' , '郑竹' , '1989-01-01' , '女');
insert into t_mysql_student values('09' , '张三' , '2017-12-20' , '女');
insert into t_mysql_student values('10' , '李四' , '2017-12-25' , '女');
insert into t_mysql_student values('11' , '李四' , '2012-06-06' , '女');
insert into t_mysql_student values('12' , '赵六' , '2013-06-13' , '女');
insert into t_mysql_student values('13' , '孙七' , '2014-06-01' , '女');-- 教师表
insert into t_mysql_teacher values('01' , '张三');
insert into t_mysql_teacher values('02' , '李四');
insert into t_mysql_teacher values('03' , '王五');-- 课程表
insert into t_mysql_course values('01' , '语文' , '02');
insert into t_mysql_course values('02' , '数学' , '01');
insert into t_mysql_course values('03' , '英语' , '03');-- 成绩表
insert into t_mysql_score values('01' , '01' , 80);
insert into t_mysql_score values('01' , '02' , 90);
insert into t_mysql_score values('01' , '03' , 99);
insert into t_mysql_score values('02' , '01' , 70);
insert into t_mysql_score values('02' , '02' , 60);
insert into t_mysql_score values('02' , '03' , 80);
insert into t_mysql_score values('03' , '01' , 80);
insert into t_mysql_score values('03' , '02' , 80);
insert into t_mysql_score values('03' , '03' , 80);
insert into t_mysql_score values('04' , '01' , 50);
insert into t_mysql_score values('04' , '02' , 30);
insert into t_mysql_score values('04' , '03' , 20);
insert into t_mysql_score values('05' , '01' , 76);
insert into t_mysql_score values('05' , '02' , 87);
insert into t_mysql_score values('06' , '01' , 31);
insert into t_mysql_score values('06' , '03' , 34);
insert into t_mysql_score values('07' , '02' , 89);
insert into t_mysql_score values('07' , '03' , 98);

01)查询" 01 “课程比” 02 "课程成绩高的学生的信息及课程分数
考核:内连接
涉及表:

t_mysql_course,t_mysql_score
SELECTs.*,( CASE WHEN t1.cid = '01' THEN t1.score END ) 语文,( CASE WHEN t2.cid = '02' THEN t2.score END ) 数学 
FROMt_mysql_student s,( SELECT * FROM t_mysql_score WHERE cid = '01' ) t1,( SELECT * FROM t_mysql_score WHERE cid = '02' ) t2 
WHEREs.sid = t1.sid AND t1.sid = t2.sid AND t1.score > t2.score

02)查询同时存在" 01 “课程和” 02 "课程的情况

SELECTs.*,( CASE WHEN t1.cid = '01' THEN t1.score END ) 语文,( CASE WHEN t2.cid = '02' THEN t2.score END ) 数学 
FROMt_mysql_student s,( SELECT * FROM t_mysql_score WHERE cid = '01' ) t1,( SELECT * FROM t_mysql_score WHERE cid = '02' ) t2 
WHEREs.sid = t1.sid AND t1.sid = t2.sid

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

SELECTs.*,( CASE WHEN t1.cid = '01' THEN t1.score END ) 语文,( CASE WHEN t2.cid = '02' THEN t2.score END ) 数学 
FROMt_mysql_student sINNER JOIN ( SELECT * FROM t_mysql_score WHERE cid = '01' ) t1 ON s.sid = t1.sidLEFT JOIN ( SELECT * FROM t_mysql_score WHERE cid = '02' ) t2 ON t1.sid = t2.sid

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

SELECTs.*,( CASE WHEN sc.cid = '01' THEN sc.score END ) 语文,( CASE WHEN sc.cid = '02' THEN sc.score END ) 数学 
FROMt_mysql_student s,t_mysql_score sc 
WHEREs.sid = sc.sid AND s.sid NOT IN ( SELECT sid FROM t_mysql_score WHERE cid = '01' ) AND sc.cid = '02'

05)查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩

SELECTs.sid,s.sname,round( avg( sc.score ), 2 ) 平均数 
FROMt_mysql_student sLEFT JOIN t_mysql_score sc ON s.sid = sc.sid 
GROUP BYs.sid,s.sname 
HAVING平均数 >= 60

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

SELECTs.sid,s.sname 
FROMt_mysql_student sLEFT JOIN t_mysql_score sc ON s.sid = sc.sid 
GROUP BYs.sid,s.sname

07)查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩(没成绩的显示为 null )
考核:聚合函数,外连接

SELECTs.sid,s.sname,count( sc.score ) 选课总数,sum( sc.score ) 总成绩 
FROMt_mysql_student sLEFT JOIN t_mysql_score sc ON s.sid = sc.sid 
GROUP BYs.sid,s.sname

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

select count(*) from t_mysql_teacher where tname like '李%'

在这里插入图片描述

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

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

相关文章

Docker安装WebRTC下TURN服务

详细实现方式以及代码下载请前往 https://www.passerma.com/article/90 实现效果 一、手动构建镜像 1.新建Dockerfile文件 文件用于编译镜像 以alpine为基础镜像 添加coturn需要的依赖库 获取coturn并进行编译 通过start.sh启动turnserver服务 Dockerfile FROM alpineRUN ap…

HarmonyOS 开发基础(六)Slider

HarmonyOS 开发基础(六)Slider Entry Component struct Index {build() {Row() {Column() {// Slider:ArkUI 的基础组件 滑动条组件// options 参数:Slider 基础设置Slider({// 最小值min: 20,// 最大值max: 200,// 当前值value: …

深入剖析pcap中的网络异常:TTL过期攻击、ARP中毒、TCP重传与重叠碎片等

网络流量数据包捕获是网络安全领域的重要部分,而pcap文件则是这一过程的常见载体。为了深入解析pcap文件中潜在的可疑网络流量,我们需要运用强大的网络安全威胁评估与审计工具。这些工具能够帮助我们捕捉、记录、检测和诊断网络中的数据传输问题&#xf…

鸟类分类、鸟类声音相关深度学习数据集大合集

最近收集了一大波和鸟类相关的图片、声音数据集,包含:鸟类分类、鸟类声音识别、鸟类和无人机分类、鸟类状态、鸟类行为等相关数据集。现在分享给大家!! 1、英国20大园林鸟类的图像数据集 20英国花园鸟类数据集提供了20个类别的3…

开源网络安全工具

开源工具代表了技术领域的一股动态力量,体现了创新、协作和可访问性。这些工具以透明度和社区驱动的原则开发,允许用户根据自己的独特需求仔细检查、修改和调整解决方案。 在网络安全领域,开源工具是无价的资产,使组织能够增强防…

探索 2024 年:未来可能带来的新奇事物

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

MATLAB插值函数

一、MATLAB插值函数概览 1)本节重点介绍的插值函数 MATLAB插值函数适用情况基础句式interp1 函数interp1 主要用于一维数据的插值interp1(x, y, x_interp, ‘linear’); 其中 x 和 y 是已知数据点,x_interp 是要插值的目标点。interp2 函数interp2 用于…

C++可变参数模板(展开参数包)

C版本 C11 - C14 例子&#xff1a; #include "X:\Work\Share\CCode\CPlatform\Base\global_c_all.h" using namespace lf; using namespace std;//递归终止函数 void Print() {_cout << _t("\n"); }template <typename T, typename ...Args>…

【LMM 015】LAMM:多模态指令微调数据集,框架和基准

论文标题&#xff1a;LAMM: Language-Assisted Multi-Modal Instruction-Tuning Dataset, Framework, and Benchmark 论文作者&#xff1a;Zhenfei Yin, Jiong Wang, Jianjian Cao, Zhelun Shi, Dingning Liu, Mukai Li, Lu Sheng, Lei Bai, Xiaoshui Huang, Zhiyong Wang, Jin…

Linux第12步_磁盘重新分区

解决“挂载后的U盘出现中文乱码”后&#xff0c;我们接着学习“磁盘重新分区”&#xff0c;熟悉fdisk命令。 1、删除磁盘的分区 输入“cd /回车”&#xff0c;进入根目录 输入“ls /dev/sd*回车”&#xff0c;显示dev以sd所有文件。 输入“sudo fdisk /dev/sdb1回车” 输入…

IPv6有状态地址自动配置(DHCPv6)

IPv6有状态地址自动配置 IPv6实现了对无状态地址自动配置的支持。这种不需要特殊服务器的地址自动配置方式有着极大的好处。使用起来也很方便,而在IPv4时代曾经是地址自动分配的首选方式的DHCP好像显得有些没落了。但是,DHCP作为有状态地址自动配置的方式之一,依旧有着无状…

BMS电池管理系统带充放电控制过流过压保护

2.4G无线采集BMS开发板&#xff08;主从一体&#xff09; 全新升级 &#xff08;赠送上位机源码TTL 上位机&#xff0c;可以改成自己想要的界面&#xff09; 12串电池TTL上位机 CAN通信上位机源码有偿开源&#xff0c;供项目二次开发。 增加STM32平台 USB转TTL通信 CAN通信 增加…

互联网分布式应用之SpringSecurity

SpringSecurity Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机&#xff0c;Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. SpringSecurity基本应用…

【算法每日一练]-图论(保姆级教程篇14 )#会议(模板题) #医院设置 #虫洞 #无序字母对 #旅行计划 #最优贸易

目录 今日知识点&#xff1a; 求数的重心先dfs出d[1]和cnt[i]&#xff0c;然后从1进行dp求解所有d[i] 两两点配对的建图方式&#xff0c;检查是否有环 无向图欧拉路径路径输出 topodp求以i为终点的游览城市数 建立分层图转化盈利问题成求最长路 会议&#xff08;模板题&a…

MidJourney笔记(10)-faq-fast-help-imagine-info-public-stealth

/faq 在官方 Midjourney Discord 服务器中使用可快速生成流行提示工艺频道常见问题解答的链接。 不过这个命令,我也是没有找到入口,之前还能在MidJourney的频道里使用,然后最近发现没有权限,有点奇怪。不知道系统又做了什么升级。 /fast 切换到快速模式。

Cannot resolve property ‘driverClassName‘

已解决 Cannot resolve property 错误 最近在学习spring时遇到了下面的问题&#xff1a; spring读取不到property的name属性&#xff0c;报红&#xff0c;编译不通过&#xff0c;上网查到了两种解决方案&#xff0c;如下&#xff1a; 1、重新加载spring文件就可以解决问题了&a…

TypeScript 从入门到进阶之基础篇(三) 元组类型篇

系列文章目录 TypeScript 从入门到进阶系列 TypeScript 从入门到进阶之基础篇(一) ts基础类型篇TypeScript 从入门到进阶之基础篇(二) ts进阶类型篇TypeScript 从入门到进阶之基础篇(三) 元组类型篇TypeScript 从入门到进阶之基础篇(四) symbol类型篇 持续更新中… 文章目录 …

VMware Workstation——修改虚拟机配置和设置网络

目录 一、修改配置 1、点击需要修改配置的虚拟机&#xff0c;然后点击编辑虚拟机配置 2、修改内存、CPU、硬盘配置 二、设置网络 1、从虚拟机配置中进入到网络适配器设置 2、选择网络连接模式 一、修改配置 1、点击需要修改配置的虚拟机&#xff0c;然后点击编辑虚拟机配…

Linux系统操作——tcping安装与使用

目录 .一、安装 1、安装依赖 tcptraceroute和bc 2、安装tcping 3、赋予tcping执行权限 4、测试 5、tcping返回结果说明 二、使用说明&#xff08;参数&#xff09; 一、安装 1、安装依赖 tcptraceroute和bc 【 CentOS 或 RHEL】 sudo yum install -y tcptraceroute bc…

听GPT 讲Rust源代码--compiler(25)

File: rust/compiler/rustc_target/src/spec/mod.rs 在Rust的源代码中&#xff0c;rust/compiler/rustc_target/src/spec/mod.rs文件的作用是定义和实现有关目标平台的规范。 SanitizerSet是一个结构体&#xff0c;用于表示目标平台上存在的sanitizer集合。 TargetWarnings是一…