mysql 视图查询_MySQL视图复杂查询详解
内容大纲:什么是视图查询
子查询
标量子查询
关联子查询
如何用SQL解决业务问题
各种函数
总结:知识点图解
视图什么是视图
视图存放的是SQL语句,而数据库表存放的是数据,使用视图时,会运行视图里的SQL的查询语句创建出一张临时表。如何创建视图
第一种方式:create view 视图名称(,……)
as ;
第二种方式:
右键选择创建视图
注意名字不要重复,比如我们保存为:成绩汇总2
以上是两种方式完成视图的创建如何使用使用视图视图有什么用
对于频繁的使用的SQL语句,可以保存视图,尤其SQL语句进行多次汇总,操作,这样可以提高效率
视图可以随源数据表更新而更新
视图不需要占用空间,是一张临时表使用视图注意什么
视图不能增加删除数据,因为他是一张虚拟表,否则会报错
字查询什么是子查询
如图:所谓子查询就是一次性查询,在select语句中嵌套一个个select语句,将字查询的结果作为主查询的数据进行再次查询。如何使用字查询
……in(子查询)
……any(子查询)
……all(子查询)字查询有什么用
主要进行条件判断,筛选数据案例演示
表量子查询什么是标量子查询
标量的子查询返回的单一的一列,单一的值案列演示
关联子查询什么是关联子查询
大致步骤如下:
1:先运行子查询 对每个课程号求平均分
2:由于where条件的存在,当返回第一组数据时,根据课程号匹配所有的课程成绩,符合条件的留下输出
3:最终遍历所有课程组,把符合条件的数据展示出来
如何用SQL子查询解决业务问题
各种函数
练习章节
下面是本章节对应章节的练习题:
列出每個國家的名字name,當中人口population是高於俄羅斯'Russia'的人口。
/*主要考察where子查询*/
select name from world where population > (select population from world where name='Russia')列出歐州每國家的人均GDP,當中人均GDP要高於英國'United Kingdom'的數值。
/* where and 多条件查询*/
select name from world
where continent = 'Europe' and gdp/population >
(select gdp/population
from world
where name='United Kingdom在阿根廷Argentina 及 澳大利亞 Australia所在的洲份中,列出當中的國家名字 name 及洲分 continent 。按國字名字順序排序
/*子查询 in 多行匹配*/
select name, continent from world
where continent in
(select continent
from world
where name='Argentina' or name='Australia')
order by name;哪一個國家的人口比加拿大Canada的多,但比波蘭Poland的少?列出國家名字name和人口population
select name,population from world where
population >(select population from world where name='Canada') and
population
显示歐洲的國家名稱name和每個國家的人口population。以德國的人口的百分比作人口顯示。
小數位數
百分號 %
/*rand(x,d)* x为:四舍五入的数值,d:保留的小数位数 concat(str,str1,str2) 将字符串拼接起来/
select name,concat(round(population*100/(select population from world where name='Germany')),'%')
from world
where continent='Europe'哪些國家的GDP比Europe歐洲的全部國家都要高呢? [只需列出 name 。] (有些國家的記錄中,GDP是NULL,沒有填入資料的。)
/*ALL 对一个列表某行>=或>或
SELECT name
FROM world
WHERE population > ALL(SELECT population
FROM world
WHERE population>0 and continent='Europe')在每一個州中找出最大面積的國家,列出洲份continent, 國家名字name及面積area。 (有些國家的記錄中,AREA是NULL,沒有填入資料的。)
/* 关联子查询
1: SELECT continent, name, population FROM world 找出每个国家人数
2:开始子查询 对每条数据进行匹配,找出最大面积的国家*/
SELECT continent, name, population FROM world x
WHERE area>= ALL
(SELECT area FROM world y
WHERE y.continent=x.continent
AND area>0)列出洲份名稱,和每個洲份中國家名字按子母順序是排首位的國家名。(即每洲只有列一國)
select continent, name
from world as x
where name <= all
(select name
from world as y
where y.continent=x.contine找出洲份,當中全部國家都有少於或等於 25000000 人口. 在這些洲份中,列出國家名字name,continent洲份和population人口。
select name, continent, population
from world as x
where 25000000 >= all
(select population
from world as y
where y.continent=x.continent);有些國家的人口是同洲份的所有其他國的3倍或以上。列出 國家名字name 和 洲份 continent。
select name, continent
from world as x
where population > all
(select 3*population
from world as y
where y.continent=x.continent and x.name <> y.name);
mysql 视图查询_MySQL视图复杂查询详解相关推荐
- mysql外键查询_MySQL外键使用详解
最近有开始做一个实验室管理系统,因为分了几个表进行存储·所以要维护表间的关联··研究了一下MySQL的外键. (1)只有InnoDB类型的表才可以使用外键,mysql默认是MyISAM,这种类型不支持 ...
- mysql source 数据库_MySQL 数据库 source 命令详解及实例
MySQL 数据库 source 命令详解及实例 MySQL 数据库 source 命令,该命令是数据库导入命令.source 命令的用法非常简单,首先你需要进入 MySQL 数据库的命令行管理界面, ...
- mysql decimal 类型_MySQL数据类型DECIMAL用法详解
MySQLDECIMAL数据类型用于在数据库中存储精确的数值.我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统中的货币数据. 要定义数据类型为DECIMAL的列,请使用以下语法: ...
- explain mysql怎么用_mysql中explain用法详解
EXPLAIN用于SELECT语句中的每个表返回一行信息.表以它们在处理查询过程中将被MySQL读入的顺序被列出 如果在select语句前放上关键词explain,mysql将解释它如何处理selec ...
- mysql grant 数据库_MySQL的Grant命令详解
本文实例,运行于 MySQL 5.0 及以上版本. MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删 ...
- mysql事务实战_mysql事务隔离级别详解和实战
A事务做了操作 没有提交 对B事务来说 就等于没做 获取的都是之前的数据 但是 在A事务中查询的话 查到的都是操作之后的数据 没有提交的数据只有自己看得到,并没有update到数据库. 查看InnoD ...
- mysql配置文件完全_MySQL配置文件my.cnf详解
以下是Mysql数据库服务器配置文件/etc/my.cnf的详细配置.应用场合是InnoDB引擎,4核CPU, 32位SUSE. [client] port= 3306 socket= /tmp/my ...
- mysql修改字符集_MySQL修改字符集步骤详解
在实际应用中,如果一开始没有正确的设置字符集,在运行一段时间以后,才发现当前字符集不能满足要求,需要进行调整,但又不想丢弃这段时间的数据,这个时候就需要修改字符集. 在<MySQL设置默认字符集 ...
- mysql数据库导出_MySQL数据库导入导出详解[转发]
1. 概述 MySQL数据库的导入,有两种方法: 1) 先导出数据库SQL脚本,再导入: 2) 直接拷贝数据库目录和文件. 在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况 ...
- mysql 字符串解析_MySQL 动态字符串处理详解
MySQL中,常常会看到一些关于动态字符串的处理,列如:DYNAMIC_STRING. 为了记录动态字符串的实际长度,缓冲区的最大长度,以及每次字符串需要调整时,及时分配新的内存,以及调整长度.MyS ...
最新文章
- 看完这篇Exception 和 Error,和面试官扯皮就没问题了
- 【C 语言】文件操作 ( 配置文件读写 | 业务逻辑 | 接口设计 )
- Android运行时识别API版本
- 1025 反转链表 (25 分)(c语言)
- 为什么ui框架设计成单线程_评估UI设计的备忘单
- LeetCode 16. 最接近的三数之和(固定左端+滑动窗口)
- 一起来学习丨听海华大赛第一名团队聊比赛经验和心得
- 正则表达式,验证字符串由:中文、数字、英文、空格组成
- Netty工作笔记0046---异步模型原理剖析
- pythoncsv数据类型_pandas读取CSV文件时查看修改各列的数据类型格式
- java 修饰符 访问控制符_《Java基础知识》Java访问修饰符(访问控制符)
- hdu--1073--字符串处理
- HTTP响应状态代码----客户端错误(400–499)
- win11改成win7界面的设置方法
- IOS逆向学习-越狱环境的搭建
- SU战队专访:破而后立,晓喻新生
- HTML常用语法及标签(第一天所学)
- 《现代密码学》学习笔记——第七章 密钥管理[一]
- cdh6.3安装以及整合spark2、flink1.9
- 如何给视频添加特效字幕?分享一个简单好用的办法
热门文章
- 国内有哪些大型的药物筛选中心?
- antd design(4.x)中的Form
- SpringBoot国际化配置(i8n配置)未生效(完美解决)
- 时代的一粒沙,压在个人头上便是整整的一座山
- 微信小程序用列表渲染实现页面布局
- Python 基于OpenCV+face_recognition实现人脸捕捉与人脸识别
- 自学考试计算机等级考试,计算机等级考试报名到了,计算机自学考试要求考吗?...
- 首域微交易平台提现注意事项
- python登陆Tom邮箱的代码一例
- kali-通过获取路由器pin码套取无线网络密码shell脚本