龙珠计划-SQL训练营 task3

Task3

Task03:复杂查询方法-视图、子查询、函数等

3.1 视图

3.1.1 什么是视图

虚拟表,不直接更改原始数据库。

3.1.2 视图与表有什么区别

《sql基础教程**第2版》用一句话非常凝练的概括了视图与表的区别—“是否保存了实际的数据”。

3.1.3 为什么会存在视图

通过定义视图可以将频繁使用的SELECT语句保存以提高效率。
通过定义视图可以使用户看到的数据更加清晰。
通过定义视图可以不对外公开数据表全部字段,增强数据的保密性。
通过定义视图可以降低数据的冗余。

3.1.4 如何创建视图
create view test1(product_type,t_cum)
	as
	select product_type,count(*)
		from product
		group by product_type,
		~~order by product_type;~~ 

上述代码 order by不能使用。一般的DBMS中定义视图时不能使用ORDER BY语句。下面这样定义视图是错误的。因为数据行无顺序。

3.1.5 如何修改视图结构
ALTER VIEW <视图名> AS <SELECT语句>
3.1.6 如何更新视图内容

对于一个视图来说,如果包含以下结构的任意一种都是不可以被更新的:
聚合函数 SUM()、MIN()、MAX()、COUNT() 等。
DISTINCT 关键字。
GROUP BY 子句。
HAVING 子句。
UNION 或 UNION ALL 运算符。
FROM 子句中包含多个表。
更新视图本质上也是对底层数据表的更新,可以成功但不推荐。

3.1.7 如何删除视图
DROP VIEW <视图名1> [ , <视图名2>]

3.2 子查询

在这里插入图片描述

3.2.6 关联子查询

在这里插入图片描述

3.3 各种各样的函数

3.3.1 算数函数-数值计算

绝对值 ABS()
求余数 MOD(被除数,除数
四舍五入 ROUND(数值,位数)

3.3.2 字符串函数-字符串操作

拼接 CONCAT(str1,str2…)
字符串长度 LENGTH()
字符串替换 REPLACE(对象字符串,替换前字符串,替换后字符串)
字符串截取 SUBSTRING(对象字符串 FROM 截取起始位置 FOR 截取字符数)
字符串按索引截取 SUBSTRING_INDEX(原始字符串,分隔符,n)

3.3.3 日期函数-日期操作

获取当前日期 CURRENT_TIME CURRENT_DATE CURRENT_TIMESTAMP
截取日期元素 EXTRACT(日期元素 FROM 日期)

3.3.4 转换函数-转换数据类型和值

一是数据类型的转换,简称为类型转换,在英语中称为cast;另一层意思是值的转换。
数据类型转换 CAST(转换前的值 AS 想要转换的数据类型)
NULL转换为其他值 COALESCE(数据1,数据2,…)

3.3.5 聚合函数-进行数据聚合

3.4 谓词

3.4.1 什么是谓词

返回值为真值(TRUE/FALSE/UNKNOWN)的函数
常用谓词有:LIKE/BETWEEN/IS NULL/IS NOT NULL/IN/EXIST

3.4.2 LIKE谓词 – 用于字符串的部分一致查询

当需要进行字符串的部分一致查询时需要使用该谓词。
%是代表“零个或多个任意字符串”的特殊符号,_下划线匹配任意 1 个字符

3.4.3 BETWEEN谓词 – 用于范围查询

默认闭区间,若不需要临界值,应使用<和>。

3.4.4 IS NULL、 IS NOT NULL – 用于判断是否为NULL
3.4.5 IN谓词 – OR的简便用法

多个查询条件取并集

3.4.6 使用子查询作为IN谓词的参数
3.4.7 EXIST 谓词

EXIST谓词的使用方法
谓词的作用就是 “判断是否存在满足某种条件的记录”。

3.5 CASE 表达式
3.5.1 什么是 CASE 表达式?

CASE 表达式是在区分情况时使用的。条件分支。
CASE表达式的语法分为简单CASE表达式和搜索CASE表达式两种。

3.5.2 CASE表达式的使用方法

根据不同分支得到不同列值
实现列方向上的聚合
实现行转列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值