MySQL视图

news2024/11/17 8:38:23

MySQL视图

VIEW(视图)

概念

可以被当作是虚拟表或存储查询

视图跟表格的不同是,表格中有实际储存资料,而视图是建立在表格之上的一个架构,它本身并不实际储存资料。

临时表在用户退出或同数据库的连接断开后就自动消失了,而视图不会消失。

视图不含有数据,只存储它的定义,它的用途一般可以简化复杂的查询。比如你要对几个表进行连接查询,而且还要进行统计排序等操作,写SQL语句会很麻烦的,用视图将几个表联结起来,然后对这个视图进行查询操作,就和对一个表查询一样,很方便。

创建、查看和删除视图

REATE VIEW "视图表名" AS "SELECT 语句";                      #创建视图表
SELECT * FROM `V_NAME_VALUE`;                       #查看视图表
DROP VIEW V_NAME_VALUE;                         #删除视图表

在这里插入图片描述
在这里插入图片描述

修改update

修改原表数据

update info set score='30' where name='liuyi';
# 将info表里的liuyi 分数修改为30

在这里插入图片描述

同时可以通过视图修改原表

update v_info_2 set score='120' where name='tianqi';

在这里插入图片描述

联集

将两个SQL语句的结果合并起来,两个SQL语句所产生的字段需要是同样的

UNION

生成结果值将没有重复,且按照字段的顺序进行排序

语法:[SELECT 语句 1] UNION [SELECT 语句 2];

select name from info union select name from lk2; # 去重

在这里插入图片描述

UNION ALL

将生成结果的值都列出来,无论有无重复

语法:[SELECT 语句 1] UNION ALL [SELECT 语句 2];

select name from info union all select name from lk2;

在这里插入图片描述

交集值

取两个SQL语句结果的交集

取交集值的方法1(2种简单方法,内连接+on/using,去重则加上distinct)

select A.name from info A inner join lk2 B on A.name=B.name;
select A.name from info A inner join lk2 B using(name);
select distinct A.name from info A inner join lk2 B on A.name=B.name;

在这里插入图片描述

取交集方法2(1种,union all结合group by)

两表其中的一个表没有指定的行,而另一个表这个行有重复不可用,要求两个表确实有交集的时候用

select A.name from (select name from info union all select name from lk2) A group by A.name having count(*) > 1;
select A.name from (select name from info union all select name from lk2) A group by A.name having count(name) > 1; 
select name from info union all select name from lk2; #拆分上面的SQL语句
select A.name,count(name) from (select name from info union all select name from lk2) A group by A.name having count(name) > 1; #显示count值,便于理解
 
select A.name,count(name) from (select distinct name from info union all select distinct name from lk2) A group by A.name having count(name) > 1; #去重显示,在联集两个表之前先把表去重,以防一个表中本身就有重复值

在这里插入图片描述
在这里插入图片描述

取交集(去重)——4种方法

mysql> select A.name from (select B.name from info B inner join lk2 C on B.name=C.name) A group by A.name;
方法二:
select distinct A.name from info A inner join lk2 B using(name);
方法三:
select distinct name from info where name in (select name from lk2);
方法四:
select distinct A.name from info A left join lk2 B using(name) where B.name is NOT NULL;

方法一:内连接取交集结合group by去重
方法二:内连接取交集结合distinct去重
方法三:where+in遍历取交集并结合distinct去重
方法四:使用左连接(也可用右连接)+where 判断NOT NULL 取交集并结合distinct去重

NULL 值

在 SQL 语句使用过程中,经常会碰到 NULL 这几个字符。通常使用 NULL 来表示缺失 的值,也就是在表中该字段是没有值的。如果在创建表时,限制某些字段不为空,则可以使用 NOT NULL 关键字,不使用则默认可以为空。在向表内插入记录或者更新记录时,如果该字段没有 NOT NULL 并且没有值,这时候新记录的该字段将被保存为 NULL。需要注意 的是,NULL 值与数字 0 或者空白(spaces)的字段是不同的,值为 NULL 的字段是没有 值的。在 SQL 语句中,使用 IS NULL 可以判断表内的某个字段是不是 NULL 值,相反的用 IS NOT NULL 可以判断不是 NULL 值。

null值与空值的区别(空气与真空)

空值长度为0,不占空间,NULL值的长度为null,占用空间
is null无法判断空值
空值使用"=“或者”<>"来处理(!=)
count()计算时,NULL会忽略,空值会加入计算

插入一条记录,分数字段输入null,显示出来就是null
验证:
`alter table info add column addr varchar(50);

update info set addr=‘nj’ where score >=70;`
在这里插入图片描述
统计数量:检测null是否会加入统计中

select count(addr) from info;

在这里插入图片描述

将info表中其中一条数据修改为空值’’

update info set addr='' where name='wangwu';

统计数量,检测空值是不会被添加到统计中

select count(addr) from info;

在这里插入图片描述
查询null值

select * from info where addr is NULL;

在这里插入图片描述
查询不为空的值

select * from info where addr is not null;

在这里插入图片描述

使用count统计行数(体现null与空值的区别)

count(*) 表示包括所有列的行数,不会忽略null值;空值正常统计

count(列名) 表示只包括这一列,统计时会忽略null值的行;空值正常统计

好文要顶 关注我 收藏该文

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

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

相关文章

[LeetCode解题报告] 1610. 可见点的最大数目

[LeetCode解题报告] 1610. 可见点的最大数目一、 题目1. 题目描述2. 原题链接二、 解题报告1. 思路分析2. 复杂度分析3. 代码实现三、 本题小结四、 参考链接一、 题目 1. 题目描述 可见点的最大数目 难度&#xff1a;2147 给你一个点数组 points 和一个表示角度的整数 ang…

01-25-javajvm-JVM和Java体系架构

01-java-JVM和Java体系架构: 1、jvm底层&#xff0c;对性能调优&#xff0c;java是动态内存分配 2、java的跨平台性&#xff1a; Java虚拟机关心“字节码”文件&#xff0c;Java虚拟机和语言关性&#xff0c;只要其他编程语言的编译结果满足并包含Java虚拟机的内部指令集、符…

ch55xduino

1.把wch的ch55x系列单片机&#xff0c;移植到Arduino&#xff0c;制成所谓的“ch55xduino”&#xff1a;GitHub - DeqingSun/ch55xduino: An Arduino-like programming API for the CH55X 2.ch55x系列单片机比较&#xff08;立创/云汉2022年12月报价&#xff09; (1)CH552T:2…

ECMAScript新特性

代码 ECMAScript概述 ECMAScript 是脚本语言的标准化规范&#xff0c;也就是语言的语法。比如&#xff1a;怎样定义变量、怎样定义函数和逻辑运算等等。 那么ECMAScript 和 JavaScript 是何关系&#xff1f; JavaScript 是ECMAScript 的扩展语言&#xff0c;JavaScript实现了…

项目管理逻辑:日志\周报\月报, 一直要求写, 有用吗?

目录 1.公司管控项目: 2.什么是项目的生命周期? 3.项目管控举例 3.1装修项目阶段划分 3.2研发项目 4.控制项目的核心 1.公司管控项目: 写周报,日报,项目问题照样失控, 其实本质上的问题就是 我们没有如何设置好项目的阶段和项目的里程碑. 项目管理的五个阶段 2.什么是…

Golang基本命令操作

在前两期【初探Golang语言之环境搭建】 和 【Golang语法总结与学习】&#xff0c;对环境搭建和基本语法有介绍&#xff0c;本篇对常用的命令进行学习和梳理&#xff0c;记录下来&#xff0c;方便备查。 一、Go 语言基本命令 // 编译&#xff0c;生成exe文件 go build // 移除…

家庭用户无线上网案例(AC通过三层口对AP进行管理)

组网需求 为一个家庭用户使用的网络架构。该家庭消费用户的上网流量大多是低速流量&#xff0c;例如浏览网页、玩游戏、看视频等。家庭成员使用的无线终端主要为手机、PC、电视机等。终端接入的数量正常情况下在10个以内&#xff0c;偶尔有家庭聚会等特殊情况&#xff0c;终端接…

微服务框架 SpringCloud微服务架构 11 自定义镜像 11.1 镜像结构

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构11 自定义镜像11.1 镜像结构11.1.1 镜像结构11.1.2 总结11 自定义镜像 11…

【人工智能与机器学习】——线性回归、逻辑回归与分类评价指标(学习笔记)

&#x1f4d6; 前言&#xff1a;线性回归&#xff08;Lincar Regression&#xff09;模型是最简单的线性模型之一&#xff0c;简而言之就像一元一次函数&#xff0c;是所有机器学习初学者的起点。而逻辑回归&#xff08;Logistic Regression&#xff09;则稍显复杂&#xff0c;…

微服务架构

单体架构 优点&#xff1a; 1&#xff1a;部署简单: 由于是完整的结构体&#xff0c;可以直接部署在一个服务器上即可。 2&#xff1a;技术单一: 项目不需要复杂的技术栈&#xff0c;往往一套熟悉的技术栈就可以完成开发。 3&#xff1a;用人成本低: 单个程序员可以完成业务接口…

k8s之Pod控制器详解

文章目录一、Pod控制器介绍1、什么是Pod控制器1.2、ReplicaSet(RS)1.3、Deployment(Deploy)1.3.1、重建更新1.3.2、滚动更新1.3.2、版本回退1.3.3、金丝雀发布1.4、Horizontal Pod Autoscaler(HPA)1.5、DaemonSet(DS)1.6、Job1.7、CronJob(CJ)一、Pod控制器介绍 Pod是kubernet…

c语言结构体看这篇文章就够啦(详细介绍结构体)

前言&#xff1a; c语言两大重要点&#xff0c;一个是指针&#xff0c;另一个就是结构体啦&#xff0c;这篇文章我将全面的介绍一下结构体&#xff0c;和他的使用&#xff0c;相信大家看完这篇以后定能对结构体有个深入的理解&#xff0c;并且会正确的使用它。 &#x1f49e; &…

智工教育:注册计量师一级和二级的科目一样吗?

注册计量师有二级、一级之分&#xff0c;其中二级考试所涉及的科目为《计量法律法规及综合知识》《计量专业实务与案例分析》&#xff0c;必须要在连续2年内考过&#xff0c;否则就要重新报考。 而一级的考试科目&#xff0c;则分别是《计量法律法规及综合知识》、《测量数据处…

H2/H∞半车悬架控制仿真分析

目录 前言 1.悬架模型 2.LMI求解 3.simulink仿真分析 3.1结论 前言 对于H2/H∞控制的鲁棒项相比不用多说&#xff0c;之前也写过两篇关于1/4车的H2/H∞控制文章&#xff0c;链接如下&#xff1a; 基于LMI的车辆主动悬架控制_Mr. 邹的博客-CSDN博客 基于MATLAB/Simulink的…

01-redis篇 两种数据储存持久化方式

目录 1. 背景: 2. 两种数据持久化方式 2.1 RDB存储机制 -> (1) 配置docker版redis -> (2) rdb默认开启, 配置如下 redis.conf 打开 ->(3)安全退出的模式 ->(4) save与bgsave 2.2 AOF持久化机制 ->(1) 修改redis.conf 开启aof储存机制 ->(2) 为什么要…

ahooks解决React闭包问题方法示例

这篇文章主要为大家介绍了ahooks解决React闭包问题方法示例详解&#xff0c;有需要的朋友可以借鉴参考下&#xff0c;希望能够有所帮助&#xff0c;祝大家多多进步&#xff0c;早日升职加薪 引言 本文是深入浅出 ahooks 源码系列文章的第三篇&#xff0c;这个系列的目标主要有…

ShardingSphere介绍

ShardingSphere产品介绍 Apache ShardingSphere 是一款分布式的数据库生态系统&#xff0c; 可以将任意数据库转换为分布式数据库&#xff0c;并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。 设计哲学为 Database Plus&#xff0c;旨在构建异构数据库上层的标准…

项目管理逻辑:为什么职能部门官僚主义气息浓重?

目录 1.管理孤岛 2.业务部门和职能部门之间的关系 3.企业如何转型升级 3.1垂直管理模式 3.2精细管理模式 4.成熟企业的职能部门和组织部门 1.管理孤岛 职能部门办事状态 每个公司通常从管理的角度会划分很多个层级 . 不同层级之间通常会存在管理隔阂,也就是说不同的领…

HCIA笔记(2)

一、地址&#xff08;全球唯一、地址统一&#xff09; 1.MAC地址&#xff1a;芯片出厂时&#xff0c;厂家烧录进去的一个串号。48位二进制构成 2.物理地址&#xff1a;C8-CB-9E-6B-3A-41 --- 为了方便人类区分和识别&#xff0c;我们会将48位二进制转换为12位16进制表示 3.查…

logging java日志选择

文章目录hutoolsslf4japache logging[JDK logging](https://www.liaoxuefeng.com/wiki/1252599548343744/1264738568571776)logbacklog4j2hutools <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>…