SQL经典实例笔记
前言
本文是根据我阅读的书籍SQL经典实例而写的笔记,只记载我觉得有价值的内容
第一章:检索记录
在Where字句中使用别名
--错误实例
select p as PartNumber from Product where PartNumber='LMKHS'
在Where字句中使用别名,结果报错,原因是因为SQL的执行顺序是
- From
 - Where
 - Select
 
可以看到Where比Select先执行,所以别名是Select里面定义的,Where里面肯定用不了
解决办法
如果想在Where中使用以下内容的时候,可以使用内嵌视图
- 聚合函数 : 例如min(),max(),sum(),avg()
 - 标量子查询 : 必须而且只能返回1 行1列的结果的select查询
 - 窗口函数
 - 别名 : 本例的as
 
--内嵌视图如下
select * from(
	select p as PartNumber from Product
) temp where PartNumber='LMKHS'
拼接字段数据
例如,我这个表查询语句和结果如下
select Title,Genre from Movie

SQLServer使用+即可完成拼接,Mysql需要使用concat函数,结果如下
select Title+' 是 '+Genre as msg from Movie

Select语句中使用条件逻辑 case when then
select Title,Genre,case when Price = 0 then '零' when Price > 0 then '非零' else '负数' end as status  from Movie
Order By中使用Case When
select name,sal from Movie order by case when sal > 10 then sal asc else sal desc end
把NULL值替换为实际值 coalesce函数
我以前都是直接找到字段 is Null 的然后直接update了,这个函数也行,用也可以
select coalesce(Genre,'音乐家')  from Movie
update Movie set Genre=coalesce(Genre,'音乐家')  where ID = 1
第三章:多表查询
union和union all,慎用union
希望两个表进行拼接的时候常常会用到union和union all,区别是显而易见的,union去除了重复数据,union all会显示所有的数据,不管你重复与否,那么问题来了,使用union的时候是先执行了union all,然后再执行了一次distinct去重,例如
select distinct name from(
    select name from A union all select name from B
)
在数据量大的时候,执行distinct是非常不好的,所以数据比较大的时候慎重使用union
SQL经典实例笔记的更多相关文章
- Sql Server专题:SQL 经典实例
		
SQL 经典实例 1.实例表: Student(S#,Sname,Sage,Ssex) 学生表 S#:学号:Sname:学生姓名:Sage:学生年龄:Ssex:学生性别 Course(C#,Cname ...
 - SQL COOKBOOK SQL经典实例代码 笔记第一章代码
		
-- SQL COOKBOOK CHAPTER1 -- 查看所有内容 select * from emp; -- 可以单列 select empno,ename,job,sal,mgr,hiredat ...
 - C#并发编程经典实例--笔记
		
一.简介 --并发 同时做多件事情 --多线程 并发的一种形式,它采用多个线程来执行程序. **如非必要,代码里不要出现 "new ...
 - sqlcook sql经典实例 emp dept 创建语句
		
创建表语句 create table dept( deptno int primary key, dname varchar(30), loc varchar(30) ); create table ...
 - 《C#并发编程经典实例》笔记
		
1.前言 2.开宗明义 3.开发原则和要点 (1)并发编程概述 (2)异步编程基础 (3)并行开发的基础 (4)测试技巧 (5)集合 (6)函数式OOP (7)同步 1.前言 最近趁着项目的一段平稳期 ...
 - 【SQL】ROW_NUMBER() OVER(partition by 分组列 order by 排序列)用法详解+经典实例
		
#用法说明 select row_number() over(partition by A order by B ) as rowIndex from table A :为分组字段 B:为分组后的排序 ...
 - 《C#并发编程经典实例》学习笔记—2.7 避免上下文延续
		
避免上下文延续 在默认情况下,一个 async 方法在被 await 调用后恢复运行时,会在原来的上下文中运行. 为了避免在上下文中恢复运行,可让 await 调用 ConfigureAwait 方法 ...
 - 《C#并发编程经典实例》学习笔记—3.1 数据的并行处理
		
问题 有一批数据,需要对每个元素进行相同的操作.该操作是计算密集型的,需要耗费一定的时间. 解决方案 常见的操作可以粗略分为 计算密集型操作 和 IO密集型操作.计算密集型操作主要是依赖于CPU计算, ...
 - 《C# 并发编程 · 经典实例》读书笔记
		
前言 最近在看<C# 并发编程 · 经典实例>这本书,这不是一本理论书,反而这是一本主要讲述怎么样更好的使用好目前 C#.NET 为我们提供的这些 API 的一本书,书中绝大部分是一些实例 ...
 
随机推荐
- Find the median(2019年牛客多校第七场E题+左闭右开线段树)
			
题目链接 传送门 题意 每次往集合里面添加一段连续区间的数,然后询问当前集合内的中位数. 思路 思路很好想,但是卡内存. 当时写的动态开点线段树没卡过去,赛后机房大佬用动态开点过了,\(tql\). ...
 - js--动画
			
运动框架实现思想1.速度(改变值left,right,width,height,opacity)2.缓冲运动3.多物体运动4.任意值变化5.链式运动6.同时运动 我们先来介绍第一章改变left值来使物 ...
 - jenkins中jmeter项目流程图
 - 项目Beta冲刺--2/7
			
项目Beta冲刺--2/7 作业要求 这个作业属于哪个课程 软件工程1916-W(福州大学) 这个作业要求在哪里 项目Beta冲刺 团队名称 基于云的胜利冲锋队 项目名称 云评:高校学生成绩综合评估及 ...
 - python 连接 redis cluster 集群
			
一. redis集群模式有多种, cluster模式只是其中的一种实现方式, 其原理请自行谷歌或者百度, 这里只举例如何使用Python操作 redis cluster 集群 二. python 连接 ...
 - java 的枚举变量只能使用枚举常量来初始化--带有关联数据的枚举
			
public enum ResultEnum { SUCCESS("200","成功"), FAILURE("500","发生异常 ...
 - NSKeyedArchiver : NSCoder
			
NSKeyedArchiver : NSCoder @interface NSData : NSObject <NSCopying, NSMutableCopying, NSSecureCodi ...
 - call JSON.parse JSON.stringify typeof 的使用及严格模式this的使用
			
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
 - 分享一个Centos8的国内yum源
			
使用的是清华大学开源镜像站,文件地址: https://github.com/hackyoMa/docker-centos/blob/8/CentOS-Base.repo 使用方法: cd /etc/ ...
 - webgestalt  通路富集分析
			
http://www.webgestalt.org/ 通路富集分析 参考 http://www.sci666.com.cn/9596.html