首页 > 数据库 >SQL的学习

SQL的学习

时间:2023-10-12 21:32:33浏览次数:27  
标签:--- 存储 -- 数据库 MySQL 视图 学习 SQL

 MySQL数据库的应用技术---视图

什么是视图

英文: view ---看见得东西

为什么需要视图

存在问题

复杂得查询语句:每一次使用都需要编写,执行,能不能只写一次,后面可以重复调用--需要共享

希望表中的一些字段分享的时候不被其他用户看见,只让其他用户获取我想让他看见的数据

可不可将查询语句进行封装,简化子查询操作

最终的目的就是希望保存sql语句,简化调用执行过程,掩藏数据

解决问题

需要一个技术来实现功能,需要一个有名字的空间存储想要做的事情

需要的时候调用,MySQL中提供了视图

视图的概述

视图是一个存储数据库中虚表,视图表中没有数据,只有映射关系,真正的数据在视图关联的实际的表中

视图创建方法

create view 视图 as 查询语句

使用视图 和使用表是一样的

查看视图

desc 视图名字

select * from information_schema.VIEWS;

show create view 视图名字

删除视图

drop view 视图名

注意事项

因为视图存在数据中的映射关系,也是占用存储空间,不能随意创建视图

视图关联的表可能被删除,出现视图还在,表不在  

创建视图考虑复用性和使用性

主要的应用场景---【保护数据,选择性分享数据】 

DML语句【最核心 最重要】--- 操控数据

insert update delete  

select【难点重点】

投影查询

选择查询

连表查询

子查询

视图

有一个小问题的出现

原本: 数据库只负责数据存储 修改 获取 删除,数据的处理都交给了业务代码。

后来:后来随着我们的业务越来越大,越来越复杂数据也越来越大,数据库获取数据传输到代码中处理,输出传速度以及代码业务处理压力,但数据库很闲--- 将业务处理转换一部分到数据,常规处理,一次select,两次update,为了解决问题,要求数据库中可以编写业务---开发了一门语言--plsql(依赖数据库环境的语言)

plsql

一门类似c的语法的完整地数据库端地编程语言【完整度--数据库大小】  

探索---完整地plsql【Oracle 数据】

MySQL中plsql支持地比较晚,支持语法有所欠缺   

MySQL中支持俩种方式编写业务脚本

存储过程

自定义函数

MySQL中不能做的

离开这俩个载体自由编写业务代码块

MySQL中的存储过程

解释:存储类似函数的一种定义规范,或者封装代码规范

创建语法

create procedure 【if not exists】 存储名(【[in/out/inout] 参数名 参数类型...】)

备注

存储过程名:标识符的定语语法规范 要求--以pro_开头

参数:可以有0个或多个参数,是我们在调用存储过程的时候需要传入的数据,

参数前面可以加in/out/inout等标识,标识参数类型

in---调用者传入的信息

out--用户存储过程执行过程需要返回给调用者的数据,存储            

定义信息:编写注释信息

定义变量: 用户定义变量存储信息

存储过程业务:编写业务

创建一个简单的存储过程

存储过程业务内容以begin 开头 以end结束

数据库中 每一句语句都以;结束

遇到;就以为结束

为了解决分号的问题--提供方式就是临时将结束符号改成其他符号

语法: delimiter 临时结束符号-- //或者$$

调用存储过程

call 存储过程名字(实参列表);

删除存储过程

drop procedure【if exists】 存储过程名

标签:---,存储,--,数据库,MySQL,视图,学习,SQL
From: https://blog.51cto.com/u_16220922/7835466

相关文章

  • sql注入(mysql的重要语句语法)
    查询当前数据库服务器所有数据库showdatabases;选中某个数据库use数据库名查询当前数据库所有的表showtables;查询某表所有数据select*fromt1;(whereid=2;)union合并查询2个特性:前面的查询语句和后面的查询语句结果互不干扰前面的查询语句的字段数量和后面......
  • 网安--sql注入(系统库)
    5.0版本以上自带系统库。5.0版本一下没有。1、information_schema:nformation_schema是MySQL中的元数据信息数据库,它包含了MySQL服务器的所有数据库、表、列、索引、视图等元数据信息。通过information_schema数据库,用户可以轻松查询MySQL服务器的类似"showdatabases"等语句......
  • Kruskal重构树 学习笔记
    前言也许在看这篇文章之前,你可以看看这篇文章?前置知识:\(kruskal\)求最小生成树,并查集……算法介绍问题引入两个点之间的所有简单路径上最大边权的最小值。我们定义\(u\tov\)路径的瓶颈为,路径上的边权最大值。那么下图的瓶颈就为4:同时一条路径也可能有多个瓶颈,求最......
  • springboot整合jpa sqlite
    前言最近有关项目需要用到SQLITE,我先是使用Mybatis去连接SQLITE,然后发现SQLITE对BLOB支持不好,在网上看到相关教程可以写mapper.xml文件,加一个handler解决BLOB支持的问题,但是又发现Mybatis还对SQLITE的自增主键不支持,不能正常自增主键,而且Mybatis读取几十MB的BLOB文件很慢,最后换到......
  • mysql 物理备份xtrabackup
    1.优缺点优点:a.备份过程快速可靠b.支持增量备份c.备份过程不会打断正在执行的事务d.能够基于压缩等功能节约磁盘和空间e.自动实现备份验证f.还原速度快缺点:a.只能对innodb表进行增备,myisam表备份是全备b.对myisam表进行备份时要对全库加readlock,阻塞写操作,若备份在从库上进行会......
  • Scala学习(三)数组操作
    1、定长数组vara=newArray[String](10)vara=Array("zhangsan","lisi")2、变长数组ArrayBuffer相当于java的ArrayListimportscala.collection.mutable.ArrayBuffervara=ArrayBuffer[Int]()a+=1即向数组中放入一个元素值为1 a+=(1,2,3,4,5)a++=Array(6,7,8,9,10)a.tr......
  • 动态规划——树形DP 学习笔记
    动态规划——树形DP学习笔记引入前置知识:树基础。树形DP,即在树上进行的DP,最常见的状态表示为\(f_{u,\cdots}\),表示以\(u\)为根的子树的某个东东。本文将讲解一些经典题目(树的子树个数、树的最大独立集、树的最小点覆盖、树的最小支配集、树的直径、树的重心、树的中心),以......
  • 2023/10/12 学习笔记2
    一、信号与数制转换1.1 信号相关概念1.1.1 信息:不同领域对信息有不同的定义,一般认为信息是人们对现实世界事物的存在方式或运动状态的某种认识。表示信息的形式可以是数值、文字、图形、声音、图像及动画等。1.1.2 数据:数据是用于描述事物的某些属性的具体量值。1.1.......
  • 博学谷学习记录 自我总结 用心分享 | OpenResty中间件
    1.什么是OpenRestyOpenResty是一个基于Nginx与Lua的高性能Web平台,其内部集成了大量精良的Lua库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态Web应用、Web服务和动态网关。OpenResty通过汇聚各种设计精良的Nginx模块,从而将Nginx有效地......
  • python+playwright 学习-61 Playwright 和 Selenium 的区别是什么?
    前言最近有不少同学问到Playwright和Selenium的区别是什么?有同学可能之前学过selenium了,再学一个playwright感觉有些多余,可能之前有项目已经是selenium写的了,换成playwright需要时间成本,并且可能有未知风险。也有同学之前可能没学过selenium,现在正准备入手一个web......