(五)MySQL学习笔记——视图

MySQL数据库实验:任务五 数据库的视图设计 任务五 数据库的视图设计 文章目录任务五 数据库的视图设计【实训目的与要求】【实训原理】【实训步骤】一、创建视图(注意WITH CHECK OPTION子句用法)1.创建行列子集视图2.在多表上建立视图3.创建带表达式的视图4.创建分组视图二、查看视图1.使用DESC语句查看视图2.使用SHOW TABLE STATUS语句查看视图3.使用SHOW CREATE VIEW查看视图三、查询视图... 阅读详情

1.视图的概念及作用

  • 视图是一种虚拟的数据表,并不在数据库中真实存在;
  • 视图的作用是将一些复杂的查询语句的结果封装到一个虚拟表中以供后期再次使用;即将SELECT的查询语句封装为一个虚拟表;
  • 例如,上一章多表查询的子查询中,被嵌套的语句查询的结果即可以封装为视图。

2.视图的好处

  • 简单:使用视图后,这张虚拟表中已经保存的是过滤好的结果,不用关心表的结构、关联条件和筛选条件
  • 安全:视图可以设置权限
  • 数据独立:视图的结构确定后原表增加列对视图无影响,原表修改列名可以通过修改视图解决

3.视图测试-数据准备

CREATE DATABASE db7;
USE db7;

-- 创建country表
CREATE TABLE country(
    id INT PRIMARY KEY AUTO_INCREMENT, -- 主键id
    name VARCHAR(20) -- 国家名称
);
-- 插入国家数据
INSERT INTO country VALUES (NULL,'中国'),
                           (NULL,'美国'),
                           (NULL,'俄罗斯');

-- 创建city表
CREATE TABLE city(
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(20),
    cid INT, -- 外键,关联国家的主键id
    CONSTRAINT cc_fk1 FOREIGN KEY (cid) REFERENCES country(id)
);
-- 插入城市数据
INSERT INTO city VALUES (NULL,'北京',1),
                        (NULL,'上海',1),
                        (NULL,'纽约',2),
                        (NULL,'旧金山',2),
                        (NULL,'莫斯科',3),
                        (NULL,'海参崴',3);

4.创建视图

-- 标准语法
CREATE VIEW 视图名称 [(列名列表)] AS 查询语句;
  • 怎样多表查询所有的城市和所属的国家?
-- 查询城市所有信息和其所属国家
SELECT ci.*,co.name
FROM city ci,country co
WHERE ci.cid = co.id;

查询结果:
在这里插入图片描述

  • 创建视图,并指定列名
-- 查询城市所有信息和其所属国家的结果保存到视图中
CREATE VIEW city_country(city_id,city_name,cid,country) AS
SELECT ci.*,co.name
FROM city ci,country co
WHERE ci.cid = co.id

视图保存在views里:
在这里插入图片描述

5.查询视图

-- 标准语法
SELECT * FROM 视图名称;
-- 查询视图。查询这张虚拟表,就等效于查询城市和所属国家
SELECT * FROM city_country;

-- 查询指定列名的视图
SELECT * FROM city_country2;

-- 查询所有数据表,视图也会查询出来
SHOW TABLES;

三条语句结果分别如下:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

6.修改视图

6.1修改视图中的数据

-- 标准语法
UPDATE 视图名称 SET 列名=值 WHERE 条件;
-- 修改视图表中的城市名称北京为深圳,注意:视图表数据修改,会自动修改源表中的数据
UPDATE city_country SET city_name='深圳' WHERE city_name='北京';

-- 查询视图
SELECT * FROM city_country;

-- 查询city表,北京 修改为了 深圳
SELECT * FROM city;

6.2修改视图中的结构

-- 标准语法
ALTER VIEW 视图名称 [(列名列表)] AS 查询语句;

例如,将视图第4列的列名由country改为country_name:

-- 修改视图的表结构
ALTER VIEW city_country(city_id,city_name,cid,country_name) AS
SELECT ci.*,co.name
FROM city ci,country co
WHERE ci.cid = co.id;

结果如下:
在这里插入图片描述

7.删除视图

- 标准语法
DROP VIEW [IF EXISTS] 视图名称;
-- 删除视图,视图不存在则报错
DROP VIEW city_country;
-- 删除视图时加判断,如果存在则删除,不存在则不删除也不报错
DROP VIEW IF EXISTS city_country;
【MySQL】视图 视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自我们定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。 阅读详情

相关推荐

【MySQL】mysql 视图转物化视图

create view stu_class (编号,姓名,班级)asselect student.id,student.name,stu_info.class from student,stu_info where student.id=stu_info.id;例一:现有一stu_info表(id,class,address),id为学生编号,创建视图,包含编号,姓名,班级。例一:现有student表(id,name,math,chinese),创建视图包含数学成绩,语文成绩,总成绩。

wjianwei666的专栏 1378

数据库操作:数据完整性

一、基于上次创建的教学管理JXGL数据库,实现约束的创建、查看和删除操作。 (1) 建立一个CITY表(CityNo,CityName),将CityNo指定为主键。 用SQL语句创建主键,可使用CREATE TABLE命令完成: CREATE TABLE CITY( CityNo char(2) constraint c1 primary key, CityName varchar(30) not...

Begin_W_T_E_I_M的博客 1564

PHP服务端 苹果支付(IAP)处理

公司做的app需要做IAP订阅支付,开始觉得和微信的支付流程差不多,做起来还是有点麻烦,主要是网上的文章很少,不能拿来主义。自己做完总结一下,希望对小伙伴们有帮助我就很欣慰了。代码写的不好 不要喷我。。。 首先讲一下我的业务逻辑,也就是php服务端需要做什么事情。 先上图: 下面我详细的讲一下每...

山水的博客 1万+

MySQL数据库-视图

视图是一种虚拟存在的数据表。 这个虚拟的表并不在数据库中实际存在。 说白了,视图就是将一条SELECT查询语句的结果封装到了一个虚拟表中,所以我们在创建视图的时候,工作重心就要放在这条SELECT查询语句上。 视图的好处:简单、安全、数据独立。

金鳞踏雨 1833

STM32嵌入式开发实战:如何用miniLZO压缩算法节省70%存储空间(附完整工程)

本文详细介绍了如何在STM32嵌入式开发中使用miniLZO无损压缩算法实现高达70%的存储空间节省。通过对比分析不同轻量级算法,重点讲解miniLZO的内存优化配置、分块压缩策略和完整工程实现,帮助开发者有效解决嵌入式系统中的存储瓶颈问题。

ss78901的博客 881

逆变器专题(6)-正负序分离(二阶广义积分器DSOGI)

相应仿真原件请移步资源下载DSOGI作为一种常用的正负序分离方法,其可以在电压三相不平衡的状态下实现较为精准的锁相环。

cyc19980105的博客 8803

数据库查询语句和数据的导入,导出,及索引的建立

1.SQL查询     1.distinct: 不显示字段的重复值     select distinct 字段1,字段2 from 表名;     示例:         1.表中都有哪些国家         select distinct country from sanguo;         2.表中一共有多少个国家         select count(distinct countr...

python -学习笔记 1124

Spring Boot日志可视化实战:5分钟搞定Promtail采集与Grafana查询(避坑指南)

本文详细介绍了如何通过Promtail和Grafana实现Spring Boot日志的可视化查询,提供从日志采集到高效查询的全流程实战指南,重点解决部署中的常见问题。内容包括Logback配置、Promtail日志采集、Grafana的LogQL查询技巧及生产环境优化建议,帮助开发者快速定位和解决日志问题。

weixin_42526015的博客 106

SQL学习之创建数据库、表、插入数据

1、创建数据库: create database xuexi; 2、简单的创建表: create table websites ( id int, name varchar(255), url varchar(255), alexa int, country varchar(255) ); 3、插入数据 INSERT INTO websites (id, name, url, alexa, country) VALUES (1, '百度', 'https://www.baidu.co

zhaoxiaoba123的博客 704

完整版:ultralytics下运行yoloworld并训练

本文介绍了Ultralytics YOLO环境的快速配置与使用流程:1) 通过conda创建Python 3.9环境并安装依赖包;2) 配置中科大镜像源加速安装PyTorch和Ultralytics;3) 准备YOLO格式数据集并修改data.yaml配置文件;4) 提供模型预测、训练和验证的常用指令,包括predict/train/val等命令参数设置。文章还包含CLIP模型下载、权重文件获取以及本地安装等注意事项,完整覆盖了从环境搭建到模型部署的全过程。

weixin_50209871的博客 1344

433M无线遥控器EV1527协议解码实战:从逻辑分析到代码优化

本文详细解析了433M无线遥控器EV1527协议的实战解码过程。从使用逻辑分析仪抓取波形、理解同步头与数据位编码原理开始,逐步深入代码实现。文章重点对比了原始定时器轮询法的痛点,并提出了基于“边沿捕获+时间戳”的优化方案,构建了高效、可移植且具备抗干扰能力的解码引擎,最后分享了跨平台移植的核心技巧。

weixin_29168813的博客 926

MySQL 学习笔记(五) 创建视图

文章目录MySQL 创建视图Creating views 创建视图Altering or Dropping Views 更改或删除视图Updatable Views 可更新的视图WITH OPTION CHECK ClauseWITH CHECK OPTION 的作用WITH CHECK OPTION 的用法Benefits of Views 视图的好处 MySQL 创建视图 Creating views 创建视图 -- 创建视图 CREATE VIEW sales_by_clients AS SELECT

DackSnowden 458

SPV1050低功耗微功率太阳能充电管理模块原理图设计,已量产

在物联网应用快速普及的今天,户外低功耗传感器(如土壤温湿度、环境光照、无线节点等)的供电始终是行业痛点 —— 传统锂电池不仅需要定期更换,维护成本高,还难以满足 “终身免维护” 的场景需求。为此,我们设计了一款专为 1V~3V 低电压小型太阳能板优化的微功率太阳能电源管理模块,结合 USB 备用充电路径,实现了低功耗传感器的长期自主供电。

不脱发的程序猿 444

mysql数据库学习笔记五--视图

视图创建视图 在创建试图时,当前用户必须具有创建视图的权限,同时应该具有查询涉及列的select权限。 select creat_view_priv from mysql.user where user=‘root’; 当用户具有创建视图的权限,可以进行创建视图的操作 create [or replace] [algorithm={undefined | merge | temptable}] v...

甜航一直在的博客 381

基于STM32L4XX 、HAL库的TMC2226-SA-T步进电机驱动器驱动程序应用设计

集成的功率MOSFET可处理高达2A RMS的电机电流,并具备保护与诊断功能,确保运行稳健可靠。作为业界最先进的STEP/DIR步进电机驱动系列,该芯片通过升级设计实现无噪音、高精度运行,为用户提供高性价比且极具竞争力的解决方案。// 用于PDN_UART单线通信。// HAL_UART_Transmit - 注意PDN_UART是单线,收发共线。.huart = &huart1, // PDN_UART连接的USART。均方根步进/方向控制接口,提供8、16、32或64微步针设置,

PP_Cottage的博客 623

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

MySQL学习笔记汇总(五)——索引、视图(2)

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。面试题多多少少对于你接下来所要做的事肯定有点帮助,但我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!少少对于你接下来所要做的事肯定有点帮助,但我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!

2301_79099287的博客 867

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

mysql学习笔记(五)索引、视图,导入和导出,备份和恢复

一、索引 索引是一种与表有关的结构,它的作用相当于书的目录,可以根据目录中的页码快速找到所需的内容。 当表中有大量记录时,若要对表进行查询,没有索引的情况是全表搜索:将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录。这样做会消耗大量数据库系统时间,并造成大量磁盘 I/O 操作。 而如果在表中已建立索引,在索引中找到符合查询条件的索引值,通过索引值就可以快速找

Kelisiya 3168

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【MySQL进阶】MySQL视图详解

小杨带你学MySQL进阶内容视图的相关知识,一文让你掌握视图的概述,视图的增删查改操作,视图数据的增删查改操作,视图的级联检查和非级联检查以及视图的优缺点。

小杨的博客 5431

MySQL | 视图

本篇文章详细介绍了怎么创建视图、查看视图、修改视图、更新视图和删除视图等mysql数据库知识。

天下弈星~的博客 1万+

MySQL学习笔记—视图

MySQL学习笔记—视图视图是查看基础表数据的一种方式,其作用有  - 简化开发难度,可以运用视图执行多表操作   - 数据安全,开发人员不能直接对表操作,也不能进行删除,修改操作   - 数据重构,在有限的表中,以不同的角度生成所需的视图,简化业务CREATE VIEW语法CREATE VIEW语法:CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | M

纸上得来终觉浅 5093

MYSQL视图

MYSQL视图

Excuse_lighttime的博客 1346

MySQL 视图学习笔记

视图是 MySQL 中“虚拟表”,核心价值是简化查询、控制数据访问。可防止数据“逃逸”,需根据需求选CASCADED或LOCAL;复杂逻辑(聚合、分组等 )会让视图不可更新,需合理设计;合理利用视图简化高频操作,同时通过视图控制数据权限,提升数据库安全性。

weixin_74333370的博客 1014

MySQL学习笔记(八)-MySQL视图

MySQL学习笔记(八)-视图 作者:就叫易易好了 日期:2020/11/25 视图就是一种虚拟表,和普通表一样使用,是通过表动态生成的数据。视图的数据来自于表,只保存了sql的逻辑,不保存查询结果,不占储存空间。 一、创建视图 语法:create view 视图名 as 查询语句 使用myemployees数据库 一旦创建了一个视图,在后面需要多次使用的时候,直接调用就可以了,这样就减少了代码冗余。 #查询邮箱中包含a字符的员工名、部门名和工种信息 1、创建视图 CREATE VIEW myv1

m0_48834053的博客 264

MYSQL学习笔记(十二)--视图简介与应用

视图一方面可以帮我们使用表的一部分而不是整个表,另一方面也可以针对不同的用户顶置不同的查询视图。比如,针对公司的销售人员,我们只想给他看部分数据,而某些特殊的数据,比如采购价格,则不会提供给他。再比如,员工薪资是个敏感字段,那么只给某个级别以上的人员开放,其他人的查询视图中则不提供这个字段。

羊小猪~~的博客 1059

MySQL创建视图语法,MySQL视图的作用

MySQL创建视图语法,MySQL视图的作用 一、语法 1、 MySQL创建视图语法如下: CREATE VIEW view_name AS SELECT * FROM table_name ; 2、view_name:必填,唯一不可重复。 3、调用视图: SELECT * FROM view_name ; 4、查看视...

HaHa_Sir的博客 5480
上一篇: (四)MySQL学习笔记——多表设计、多表查询、多表查询练习题
下一篇: (六)MySQL学习笔记——MySQL的备份和恢复
MegaBytes
博客等级 码龄8年 45粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值