龙珠计划-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表达式的使用方法

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值