内容大纲:什么是视图查询

子查询

标量子查询

关联子查询

如何用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视图复杂查询详解相关推荐

  1. mysql外键查询_MySQL外键使用详解

    最近有开始做一个实验室管理系统,因为分了几个表进行存储·所以要维护表间的关联··研究了一下MySQL的外键. (1)只有InnoDB类型的表才可以使用外键,mysql默认是MyISAM,这种类型不支持 ...

  2. mysql source 数据库_MySQL 数据库 source 命令详解及实例

    MySQL 数据库 source 命令详解及实例 MySQL 数据库 source 命令,该命令是数据库导入命令.source 命令的用法非常简单,首先你需要进入 MySQL 数据库的命令行管理界面, ...

  3. mysql decimal 类型_MySQL数据类型DECIMAL用法详解

    MySQLDECIMAL数据类型用于在数据库中存储精确的数值.我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统中的货币数据. 要定义数据类型为DECIMAL的列,请使用以下语法: ...

  4. explain mysql怎么用_mysql中explain用法详解

    EXPLAIN用于SELECT语句中的每个表返回一行信息.表以它们在处理查询过程中将被MySQL读入的顺序被列出 如果在select语句前放上关键词explain,mysql将解释它如何处理selec ...

  5. mysql grant 数据库_MySQL的Grant命令详解

    本文实例,运行于 MySQL 5.0 及以上版本. MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删 ...

  6. mysql事务实战_mysql事务隔离级别详解和实战

    A事务做了操作 没有提交 对B事务来说 就等于没做 获取的都是之前的数据 但是 在A事务中查询的话 查到的都是操作之后的数据 没有提交的数据只有自己看得到,并没有update到数据库. 查看InnoD ...

  7. mysql配置文件完全_MySQL配置文件my.cnf详解

    以下是Mysql数据库服务器配置文件/etc/my.cnf的详细配置.应用场合是InnoDB引擎,4核CPU, 32位SUSE. [client] port= 3306 socket= /tmp/my ...

  8. mysql修改字符集_MySQL修改字符集步骤详解

    在实际应用中,如果一开始没有正确的设置字符集,在运行一段时间以后,才发现当前字符集不能满足要求,需要进行调整,但又不想丢弃这段时间的数据,这个时候就需要修改字符集. 在<MySQL设置默认字符集 ...

  9. mysql数据库导出_MySQL数据库导入导出详解[转发]

    1. 概述 MySQL数据库的导入,有两种方法: 1) 先导出数据库SQL脚本,再导入: 2) 直接拷贝数据库目录和文件. 在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况 ...

  10. mysql 字符串解析_MySQL 动态字符串处理详解

    MySQL中,常常会看到一些关于动态字符串的处理,列如:DYNAMIC_STRING. 为了记录动态字符串的实际长度,缓冲区的最大长度,以及每次字符串需要调整时,及时分配新的内存,以及调整长度.MyS ...

最新文章

  1. 看完这篇Exception 和 Error,和面试官扯皮就没问题了
  2. 【C 语言】文件操作 ( 配置文件读写 | 业务逻辑 | 接口设计 )
  3. Android运行时识别API版本
  4. 1025 反转链表 (25 分)(c语言)
  5. 为什么ui框架设计成单线程_评估UI设计的备忘单
  6. LeetCode 16. 最接近的三数之和(固定左端+滑动窗口)
  7. 一起来学习丨听海华大赛第一名团队聊比赛经验和心得
  8. 正则表达式,验证字符串由:中文、数字、英文、空格组成
  9. Netty工作笔记0046---异步模型原理剖析
  10. pythoncsv数据类型_pandas读取CSV文件时查看修改各列的数据类型格式
  11. java 修饰符 访问控制符_《Java基础知识》Java访问修饰符(访问控制符)
  12. hdu--1073--字符串处理
  13. HTTP响应状态代码----客户端错误(400–499)
  14. win11改成win7界面的设置方法
  15. IOS逆向学习-越狱环境的搭建
  16. SU战队专访:破而后立,晓喻新生
  17. HTML常用语法及标签(第一天所学)
  18. 《现代密码学》学习笔记——第七章 密钥管理[一]
  19. cdh6.3安装以及整合spark2、flink1.9
  20. 如何给视频添加特效字幕?分享一个简单好用的办法

热门文章

  1. 国内有哪些大型的药物筛选中心?
  2. antd design(4.x)中的Form
  3. SpringBoot国际化配置(i8n配置)未生效(完美解决)
  4. 时代的一粒沙,压在个人头上便是整整的一座山
  5. 微信小程序用列表渲染实现页面布局
  6. Python 基于OpenCV+face_recognition实现人脸捕捉与人脸识别
  7. 自学考试计算机等级考试,计算机等级考试报名到了,计算机自学考试要求考吗?...
  8. 首域微交易平台提现注意事项
  9. python登陆Tom邮箱的代码一例
  10. kali-通过获取路由器pin码套取无线网络密码shell脚本