mysql高级语句(2)

news2024/12/23 5:14:38

and or 最左原则

create view视图表:虚拟表或存储查询

没有表结构存储查询语句的结果表

临时表在用户退出或同数据库连接断开就会小时,而视图表不会(就像定义个全局变量)保存的是定义

格式:create view “视图表名” as “select语句“;

视图表能不改?有时能,有哦时候不能

如果视图表查询的原表修改视图表会影响。

如果视图表保存的不是原表字段改不了。

create v_store_name as

 表的自我连接

分组汇总统计score字段的值是比自己本身的值小的以及score字段和name字段相同的数量

(把自己分为俩表sorce字段作比较)

自排名做score排序

select A.name, A.socre,count(B.score) rank from calss A, class B where A.score <B.score or (A.socre =B.score and A.name = B.name) group by A.name,A.score order by rank;

select A.score,A.name,count(B.score) from  class A,class B where B.score >= A.score group by A.score

表的自连接实现排名

select A.name,A.score,count(B.score) RANK from class A,class B where A.score < B.score or (A.score = B.score and A.score and A.name = B.name) group by A.name order by BANK;

case语句

 是sql中用来做if-then-else  之类的逻辑的关键字

select case(”字段名“)

when ”条件1“ then ”结果1“

when ”条件2“ then ”结果2“

. 。 。 。

[else ”结果N“]

end

from 表名;

例子:

select name, case name

when 'lisi' then score * 2

when 'zhaoliu' then 1000

when  'wangwu' then score + 100

else score / 2

end "new score" from class;

空值(null)和无值(' ')的区别

1,无值的长度

select lenght('1');

<>判断不是 ' 'where name <> ' ';会去除null行和无值

select count(name) from name 会忽略null行

select count(*) from name 都不会忽略

正则表达式

where store_naem regexp '.*on$';

where store_naem regexp '^B.*on$';

where store_name like 'B%on'

存储过程

经常使用的sql语句定义到存储过程中,用的时候随时调用

存储过程的优点:存储的执行后会滞留缓存中,提高执行效率

sql可以实现条件判断和循环

服务器端存储,客户端调用时,降低网络负载

可以多次调用,随时修改,不影响客户端的调用

可完成所有的数据库操作,也可控制数据库的信息访问权限

创建存储过程

delimiter $$

create procedure proc() #proc过程名,不带参数

begin

select  * from store_info;

end $$

delimiter;

call proc#调用存储过程

例子:

mysql>delimiter  $$  mysgl>create procedure test1()  ->begin
create table class (id int char(10), age int);
insert into class values(1,'yht',28):insert into class values(2,'dxl'18)
insert into class values(3,'qzz',201)
select * from class;

详细详细内容

show create procedure kgc.test1\G

查看存储过程详细信息

show procedure status like '%test1%'\G

存储过程传参

in 传入参数,表示调用这向过程传入值(传入值可以是值或变量)

out传出参数;表示过程调用这传出值(可返回多个值)(传出值只能是变量)

inout输入输出参数,既表示调用者向过程传入值,又表示过程向调用者传出值(值只能时变量)

例子:

in参数变量

delimiter ##

create procedure test2(in myname char(10))

begin

select * from ky27 where name = myname;

end##

call test2('qzz');

out参数变量

 out只能传出一行内容

inout参数变量

删除存储过程,if exist 如果存在删除,如果没报错

drop procdure if exists test1;

可以直接drop procdure test1删除存储过程

用if写一个区分90上下重命名

declared定义参数

delimiter $$

create procedure test5(in myscore int)

begin

if myscore >= 90 then

update class set name='秀儿' where score >= 90;

else

update class set naem='渣渣' where scpre < 90;

end if;

end$$

call test5(95);

支持while循环不支持for循环

 一次写入一万条数据

 show procedure test6

call test6

总结

视图表 view , 保存 select 查询语句的定义,本身不存储数据

create view V_表明 as select 语句;

case

select case 字段 when 条件1 then 结果1

when 条件1 then 结果1 。 。 。

else 结果

end ’case字段别名‘ from 表;

无值 ' ' 长度位零    字段 = ’‘

空值null字段为null 字段is null

正则表达式

select 字段 from 表 where 字段 regrexp '正则表达式'

存储过程 类似shell脚本的函数,可以用来保存一些常用的sql语句集合,方便直接调用

delimiter $$

create procedure 存储过程名(in/out/inout)

begin

sql语句序列;

end$$

delimiter;

call 存储过程名

call 存储过程名(指定参数的值或变量名)

存储过程支持if ...then ...else ...end if

while ....do  ... end while

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

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

相关文章

内测开始了!0penAI GGPT 图片功能、联网功能、音频功能、多模型功能、微调功能

联合两位大佬一起对gpt官方的接口做了整合。 有感兴趣的可以一起开发交流&#xff0c;下文有部分代码讲解。感兴趣的可以加入一起测试玩耍&#xff08;文末有加入方式&#xff09;~ 模型介绍 内测内容包括文字生成图片、图片生成图片、联网模式、模型定制、多角色设定等。 1…

mongodb用户权限配置

1.副本集 1.1在主节点创建管理员账号 /etc/mongodb/mongosh-1.8.1-linux-x64/bin/mongosh --port 27017 use admin db.createUser({user:"用户名",pwd:"密码",roles:["root"]}) 只要在主节点创建用户即可&#xff0c;从节点会自动同步数据 …

Verilog语法之generate (for、 if、 case)用法

文章目录 前言一、宏定义二、generate 方法1. generate-if 方法1. generate-case方法 三、小知识&#xff08;语法模板&#xff09; 前言 对于同一功能多种不同实现方法的模块代码如何整合到一起呢&#xff1f;当然每种方法作为一个单独的模块使用一个.v 文件保存肯定是没有问…

MySQL 高级(进阶) SQL 语句二

一、表连接查询 MYSQL数据库中的三种连接&#xff1a; inner join(内连接)&#xff1a;只返回两个表中联结字段相等的行&#xff08;有交集的值&#xff09;left join(左连接)&#xff1a;返回包括左表中的所有记录和右表中联结字段相等的记录right join(右连接)&#xff1a;…

区间合并(算法)

目录 题目代码实现注意点 题目 给定 n n n 个区间 [ l i , r i ] [l_i, r_i] [li​,ri​]&#xff0c;要求合并所有有交集的区间。 注意如果在端点处相交&#xff0c;也算有交集。 输出合并完成后的区间个数。 例如&#xff1a; [ 1 , 3 ] [1,3] [1,3] 和 [ 2 , 6 ] [2,…

【利用AI让知识体系化】深入浅出HTTP(近2w字)

思维导图 文章目录 思维导图1. HTTP基础知识HTTP简介URI和URLHTTP的请求和响应 2. HTTP请求请求方法请求头请求体 3. HTTP响应响应状态码响应头响应体 4. Cookies和SessionCookies的原理和应用Session机制使用Cookies和Session进行用户认证 5. HTTP缓存缓存概述浏览器缓存服务器…

Tomcat源码:连接器与Executor、Connector

前文&#xff1a; 《Tomcat源码&#xff1a;启动类Bootstrap与Catalina的加载》 《Tomcat源码&#xff1a;容器的生命周期管理与事件监听》 《Tomcat源码&#xff1a;StandardServer与StandardService》 《Tomcat源码&#xff1a;Container接口》 《Tomcat源码&#xff1a…

NHWC和NCHW数据排布及转换(模型部署)

1.概念 首先这是两种批量图片的数据存储方式&#xff0c;定义了一批图片在计算机存储空间内的数据存储layout。N表示这批图片的数量&#xff0c;C表示每张图片所包含的通道数&#xff0c;H表示这批图片的像素高度&#xff0c;W表示这批图片的像素宽度。其中C表示的通道数可能有…

被热议的DataOps,到底是什么?

近几年&#xff0c;DevOps的火热程度日渐高涨&#xff0c;同时涌现出了各种Ops&#xff0c;包括DevSecOps、GitOps、AIOps、NoOps、DataOps、MLOps、FeatureOps、ModelOps、FinOps等等。其中&#xff0c;对于企业来说&#xff0c;确保数据以高效和合规的方式使用&#xff0c;Da…

git commit 设置 eslint + pretter 格式化校验

系统版本 node 版本: v14.17.5 npm 版本: 6.14.14 vue-cli 版本: vue/cli 4.5.19 目录 系统版本 1. 新建一个 vue2.X 空项目 2. 安装插件 eslint ,并初始化 eslint 配置,根目录生成 .eslintrc 配置文件 3. 测试 eslint 配置 4. 安装 husky、lint-staged 5. 在package.j…

【Linux从入门到精通】了解冯诺依曼体系结构

本片文章会对冯诺依曼体系结构进行详解。同时&#xff0c;我们对冯诺依曼的理解&#xff0c;不能停留在概念上&#xff0c;要深入到对软件数据流理解上。本片文章同时也会对数据在冯诺依曼结构上的交互进行讲解。希望本篇文章会对你有所所帮助。 文章目录 一、简单认识冯诺依曼…

牛客网面试必刷:BM17 二分查找-I

牛客网面试必刷&#xff1a;BM17 二分查找-I 前言一、什么是二分查找&#xff1f;二、二分查找具体代码1.第一种写法&#xff1a;left < right2.第二种写法&#xff1a;left < right 三、复杂度分析 前言 二分查找是一个常见、基础、难度较低问题&#xff0c;本文记录了…

【JMeter入门】—— JMeter介绍

1、什么是JMeter Apache JMeter是Apache组织开发的基于Java的压力测试工具&#xff0c;用于对软件做压力测试。它最初被设计用于Web应用测试&#xff0c;但后来扩展到其他测试领域。 &#xff08;Apache JMeter是100%纯JAVA桌面应用程序&#xff09;Apache JMeter可以用于对静…

linux系统挂载硬盘

linux系统挂载硬盘 1、背景2、环境3、准备工作4、挂载分区4.1、查看分区信息4.2、创建分区4.3、设置分区格式4.4、创建挂载目录4.5、挂载分区4.6、设置开机自动挂载4.7、验证是否挂载成功 1、背景 日常使用过程中随着系统业务量的新增对磁盘的空间和性能提出了更高的要求&…

功能测试之设计语言测试:功能测试包含哪些测试?分别有什么作用

Web 设计语言版本的差异可以引起客户端或服务器端严重的问题&#xff0c;例如使用哪种版本的HTML 等。当在分布式环境中开发时&#xff0c;开发人员都不在一起&#xff0c;这个问题就显得尤为重要。除了HTML 的版本问题外&#xff0c;不同的脚本语言&#xff0c;例如Java、Java…

按照这6步学习测试,月薪不过万,我给你介绍测试工作

上周一刚入职不久&#xff0c;是在上海的一家软件公司&#xff0c;税前11K&#xff0c;五险一金&#xff0c;996的工作制&#xff0c;已经上班了一个月&#xff0c;说下自己的感受。 因为我专科毕业4年&#xff0c;之前一直在做电商运营&#xff0c;大专学的专业是电子商务&am…

Linux上Nacos基本使用:连接MySQL并修改密码、启动、停止命令等

Nacos如何连接MySQL并修改密码 说明如何将内嵌数据库Derby切换为MySQL数据库直接新建MySQL数据库: 必须是MySQL5.7及以上 如何修改密码启动、停止命令 说明 nacos默认&#xff1a; 使用内嵌的数据库&#xff08;Derby&#xff09;默认登录地址 ip:8848/nacos; 账号&#xff1…

Flutter组件——Getx入门01

前言 最近要正式开始写一个flutter项目了&#xff0c;我在浏览flutter如何进行框架设计的时候突然看到了一篇关于如何管理flutter状态的文章。flutter中的状态管理并不是很好理解&#xff0c;但是你需要在页面之间传值或者改变组件中的某个值的时候就必须更改状态。当我在这篇…

C生万物 | 字符串函数与内存函数解读【附英译中图解】

文章目录 求字符串长度一、strlen() 长度不受限制的字符串函数一、strcpy()二、strcat()三、strcmp() 长度受限制的字符串函数一、引入二、strncpy()三、strncat()四、strncmp() 字符串查找函数一、strstr()二、strtok() 错误信息报告函数一、strerror() 字符操作函数内存操作函…

从“能用”到“好用”:它的出现,解决你80%的转型困境【内含免费试用附教程】

免费试用地址&#xff1a;引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构引迈信息&#xff0c;提供快速开发平台、快速开发框架、低代码开发平台、低代码开发框架、0代码开发平台、0代码开发框架、零代码开发平台、零代码开发…