mysql高级语句2存储过程

CREATE VIEW   视图,可以被当作是虚拟表或存储查询。

视图跟表格的不同是,表格中有实际储存数据记录,而视图是建立在表格之上的一个架构,它本身并不实际储存数据记录。
临时表在用户退出或同数据库的连接断开后就自动消失了,而视图不会消失。
视图不含有数据,只存储它的定义,它的用途一般可以简化复杂的查询。比如你要对几个表进行连接查询,而且还要进行统计排序等操作,写SQL语句会很麻烦的,用视图将几个表联结起来,然后对这个视图进行查询操作,就和对一个表查询一样,很方便。

试图表就是一个select语句的定义 查看视图表的结果 会随着selcet语句的结果改变而改变
create view 试图表名称 as select语句

案例 用视图表求两个表字段无交集

create view 试图表名称 as select distinct 字段 from 表名 union all select distinct 字段  from 表名2
#先创建试图表  去重显示两个表的字段selcet 字段 from 试图表名称 group by 字段 having count(字段)=1   =1 是无交集  >1是交集
#试图表去重字段 然后显示字段非空值 having 过滤 

修改试图表的原则   两种情况

  1. 如果定义的select语句查询的字段是没有被处理过的源表字段,则可以通过视图表修改源表的数据。
  2. 如果定义的select语句查询的字段被函数或 group by 等处理的字段,则不能直接修改视图表的数据。
     

 CASE :是 SQL 用来做为 IF-THEN-ELSE 之类逻辑的关键字

语法一:

SELECT CASE "字段名"WHEN "要求" THEN "结果1"WHEN "要求" THEN "结果2"...[ELSE "default"]END
FROM "表名";

语法二;

SELECT CASEWHEN "公式1" THEN "结果1"WHEN "公式2" THEN "结果1"...[ELSE "default"] END#ELSE 子句则并不是必须的。

无值'' 和 空值NULL 的区别?

  1. 无值'' 的长度为 0,不占用空间;可以通过 字段名 = '' 或 字段名 != '' 来过滤字段的值是否为无值的行;指定字段使用函数 count(字段) 不会忽略 无值 的行
  2. 空值NULL 的长度为 NULL,占用空间;可以通过 "字段名 is null" 或 "字段名 is not null" 来过滤字段的值是否为NULL的行;指定字段使用函数 count(字段) 会忽略 NULL 的行
     

如果过滤重复数据?

1.删除全部重复数据,一条不留

creat view 试图表名称 as select 字段 from 表名 group by 字段  having  count(字段)>1
#group by 汇总分组 再通过聚合函数查出字段2出现的次数  大于1是有重复的delete 字段 form 表名 where 字段 in (select name form 视图表)   
#子查询

2.删除重复数据,仅保留一条

create view 视图表名称 as select min(id) from 表名 gruop by store_name
用name字段分组显示出每个id 字段最小的  生成视图表delete from where id not in  (select id form 视图表名称 )

MySQL 导出导入 CSV文件

vim /etc/my.cnf[mysqld]
secure_file_priv=""   #允许我们导入导出文件systemctl restart mysqld#创建目录
mkdir /mysql-output  
#给权限
chmod 777 /mysql-outputMySQL 导出表数据到 CSV文件
select * into outfile '/mysql-output/XXX.csv' fields terminated by ',' enclosed by '"'  lines terminated by '\n' from 表名;MySQL 导入 CSV文件
load data infile '/mysql-output/XXX.csv' into table 表名 fields terminated by ',' enclosed by '"'  lines terminated by '\n';fields terminated by ','  设置 字段分隔符
lines terminated by '\n   设置 换行符
enclosed by '"      设置字符值 每个字段的值用双引号括起来

正则表达式  

语法:

SELECT "字段" FROM "表名" WHERE "字段" REGEXP {模式};

存储过程(数据库脚本,就是一组为了完成特定功能的SQL语句集合)

创建和使用存储过程:

  1. use切换库,并修改SQL语句结束符      delimiter $$
  2. 创建存储过程,并定义包含的SQL语句   create procedure 存储过程名()
  3. begin  SQL语句序列;
  4. end$$
  5. 把SQL语句结束符改回分号             delimiter ;
  6. 调用存储过程                        call 存储过程名;
     

查看存储过程  删除存储过程

show create procedure 存储过程名;   #查看存储过程
drop procedure  存储过程名称;     #删除存储过程

存储过程的参数使用

  1. in 参数名 数据类型         #传入参数,调用时参数值可以是纯量值,也可以变量
  2. out 参数名 数据类型       #传出参数,调用时参数值只能是变量
  3. inout 参数名 数据类型    #传入传出参数,调用时参数值只能是变量
DELIMITER $$				
CREATE PROCEDURE Proc1(IN inname CHAR(16))		
-> BEGIN					
-> SELECT * FROM store_info WHERE Store_Name = inname;
-> END $$					
DELIMITER ;					CALL Proc1('Boston');

存储过程的控制语句

1.条件语句if-then-else ···· end if 
delimiter $$
create procedure proc6(in myname varchar(20), in mysex varchar(10), in myage smallint)
begin
if myage>=18
then 
insert into test02 (name, sex, age, team) values (myname, mysex, myage, '成年组');
else
insert into test02 (name, sex, age, team) values (myname, mysex, myage, '少年组');
end if;
end $$
delimiter ;

2.循环语句while ···· end while
delimiter $$
create procedure proc7()
begin
declare i int;     #declare 创建变量
set i=1;
while i<=50000
do
insert into test03 values (i, concat('student', i));
set i=i+1;
end while;
end $$
delimiter ;

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

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

相关文章

利用竞争智慧与大型语言模型:假新闻检测的新突破

Explainable Fake News Detection With Large Language Model via Defense Among Competing Wisdom 论文地址: Explainable Fake News Detection with Large Language Model via Defense Among Competing Wisdom | Proceedings of the ACM on Web Conference 2024https://dl.…

Docker常用命令与实战示例

docker 1. 安装2. 常用命令3. 存储4. 网络5. redis主从复制示例6. wordpress示例7. DockerFile8. 一键安装超多中间件&#xff08;compose&#xff09; 1. 安装 以centOS系统为例 # 移除旧版本docker sudo yum remove docker \docker-client \docker-client-latest \docker-c…

CTO的职责是什么?

看《架构思维》作者是这样讲的&#xff1a; CTO 到底是做什么的&#xff1f; 我当下的答案是&#xff1a;“CTO 就是一个从技术视角出发&#xff0c;为公司或者所在的部门做正确决策的 CEO。”怎么理解这句话呢&#xff1f;作为一个 CTO&#xff0c;其长期目标和决策优先级与…

论文笔记:Spatial-Temporal Interval Aware Sequential POI Recommendation

ICDE 2022 1 intro 1.1 背景 空间&#xff08;Spatial&#xff09;和时间&#xff08;Temporal&#xff09;信息是序列 POI 推荐中两个重要且相辅相成的因素。 空间因素&#xff08;如地理距离间隔&#xff09;可以在用户的历史轨迹呈现空间分簇现象时&#xff0c;细粒度刻画…

2000年 - 2022年 Fama-French三因子模型数据+代码

Fama-French三因子模型是由著名经济学家尤金法玛&#xff08;Eugene Fama&#xff09;和肯尼斯法兰奇&#xff08;Kenneth French&#xff09;提出的&#xff0c;旨在改进资本资产定价模型&#xff08;CAPM&#xff09;&#xff0c;更全面地解释资产收益率的变化。该模型认为&a…

【动态规划】简单多状态dp问题

一、经验总结 在分析dp问题的状态表示时&#xff0c;发现当前阶段的状态可以继续细分为多个状态&#xff0c;且多个状态之间可以通过某种方式进行转换&#xff0c;这就是动态规划的多状态问题。 多状态问题的关键有以下几点&#xff1a; 找出dp问题的多个状态表示&#xff1a…

开源与在线 M3U8 Downloader 项目介绍及使用指南

M3U8 是一种用于播放列表格式的文件类型&#xff0c;广泛应用于流媒体服务中&#xff0c;特别是 HLS&#xff08;HTTP Live Streaming&#xff09;协议。它包含了一系列的 TS&#xff08;Transport Stream&#xff09;视频片段地址&#xff0c;使得视频能够分段加载&#xff0c…

【服务器06】之【如何不开外网连接GitHub】

登录GitHub官网 GitHub: Let’s build from here GitHub 注册账号 登录账号 输入一个自定义名字&#xff0c;点击创建存储库就可以了 首先 如何在不开外网的条件下使用GitHub 第一步 下载安装Steam(Watt TooklKit) 区分一下如何查看哪个官网&#xff08;没有百度广告就是…

如何在Android中实现多线程与线程池?

目录 一、Android介绍二、什么是多线程三、什么是线程池四、如何在Android中实现多线程与线程池 一、Android介绍 Android是一种基于Linux内核的开源操作系统&#xff0c;由Google公司领导开发。它最初于2007年发布&#xff0c;旨在为移动设备提供一种统一、可扩展的操作系统。…

UltraEditUEStudio软件安装包下载及安装教程

​根据软件大数据显示提供预定义的或使用者创建的编辑“环境”&#xff0c;能记住 UltraEdit 的所有可停靠窗口、工具栏等的状态。实际上我们可以这样讲HTML 工具栏&#xff0c;对常用的 HTML 功能作了预配置;文件加密/解密;多字节和集成的 IME。根据使用者情况表明Git Editor&…

【Linux基础IO】磁盘的结构、文件系统与inode、软硬链接

目录 磁盘的物理存储结构 磁盘的逻辑结构 文件系统与inode 硬链接 软链接 关于目录文件 磁盘的物理存储结构 磁盘是计算机中唯一的机械硬件设备&#xff0c;由磁头&#xff0c;盘面&#xff0c;磁道&#xff0c;扇区这四部分对磁盘上的数据进行增删查改操作。盘面上存储的…

面向对象修炼手册(二)(消息与继承)(Java宝典)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;面向对象修炼手册 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 前言 消息传递 1 基本概念 1.…

App推广告别邀请码,Xinstall助您一键触达海量用户!

在移动互联网高速发展的今天&#xff0c;App的推广与运营已成为每个开发者都必须面对的问题。然而&#xff0c;随着互联网流量的日益分散和用户需求的不断变化&#xff0c;传统的App推广方式已经难以满足现代市场的需求。尤其是在获取用户时&#xff0c;很多开发者还在采用传统…

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-26网络中的网络NiN

26网络中的网络NiN import torch from torch import nn import liliPytorch as lp import matplotlib.pyplot as plt# 定义一个NiN块 def nin_block(in_channels, out_channels, kernel_size, strides, padding):return nn.Sequential(# 传统的卷积层nn.Conv2d(in_channels, ou…

图的学习.

目录 一、图的基本概念 1.1图的种类 1.2顶点的度、入度和出度 1.3边的权和网 1.4路径、路径长度和回路 二、图的存储结构 2.1邻接矩阵法 2.2邻接表法 2.3十字链表 2.4邻接多重表 三、图的遍历 3.1广度优先搜索 3.2深度优先搜索 四、图的应用 4.1最小生成树 4.1.…

VSCode 安装Remote-SSH

1、打开扩展商店安装Remote-SSH 快捷键&#xff1a;CtrlShiftX 2、配置ssh连接 打开命令面板&#xff08;CtrlShiftP&#xff09; 输入"Remote-SSH: Connect to Host"并选择。 输入你的Ubuntu服务器的IP地址或主机名。 3、连接到ubuntu服务器 如果是第一次连接&…

FPGA结构相关简介

一、芯片分类 ​FPGA属于数字芯片的一种&#xff0c;下面是根据世界半导体贸易统计协会WSTS的一个半导体分类&#xff0c;可以看到FPGA所属的类别。 二、FPGA的发展史 ​下图为FPGA的发展历史 三、FPGA的结构分类 下面是从三个角度进行划分 四、参考资料 《FPGA原理与结构》—…

【课程总结】Day10:卷积网络的基本组件

前言 由于接下来的课程内容将围绕计算机视觉展开&#xff0c;其中接触最多的内容是卷积、卷积神经网络等…因此&#xff0c;本篇内容将从卷积入手&#xff0c;梳理理解&#xff1a;卷积的意义、卷积在图像处理中的作用以及卷积神经网络的概念&#xff0c;最后利用pytorch搭建一…

构建未来应用的核心,云原生技术栈解析

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《未来已来&#xff1a;云原生之旅》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、云原生技术栈 1、容器和容器编排 1.1 Docker 1.2 Kubernete…

ULTRAINTERACT 数据集与 EURUS 模型:推动开源大型语言模型在推理领域的新进展

在人工智能的浪潮中&#xff0c;大型语言模型&#xff08;LLMs&#xff09;已经成为推动自然语言处理技术发展的关键力量。它们在理解、生成语言以及执行复杂任务方面展现出了巨大的潜力。然而&#xff0c;尽管在特定领域内取得了显著进展&#xff0c;现有的开源LLMs在处理多样…