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 的一本书,书中绝大部分是一些实例 ...
随机推荐
- jvm内存模型-和内存分配以及jdk、jre、jvm是什么关系(阿里,美团,京东)
参考:JVM的垃圾回收机制 总结(垃圾收集.回收算法.垃圾回收器) 1.什么是jvm?(1)jvm是一种用于计算设备的规范,它是一个虚构出来的机器,是通过在实际的计算机上仿真模拟各种功能实现的.(2) ...
- nginx部署vue项目
nginx是一个高性能的HTTP和反向代理服务器.因此常用来做静态资源服务器和后端的反向代理服务器.本文主要记录使用nginx去部署使用vue搭建的前端项目,项目基于vue官方的脚手架vue-cli构 ...
- mcp2515屏蔽寄存器和过滤寄存器的学习
mcp2515是can控制器,简单的来讲,就是只要配置好寄存器,芯片就能够自动的解析can数据帧,同时保存到接收缓存中,提醒单片机可以读取can的数据字节. 读取的方式是快速spi,可以达到10Mbi ...
- Gym100676 H. Capital City
感觉题目都已经快把正解给说出来了...strongly connected的两个点的消耗为0,其实就是同一个边双连通分量里面的点消耗为0.然后缩一下点,再树形DP一下就完了.第一次写边双,但感觉挺简单 ...
- [RN] React Native 使用 FlatList 和 ScrollView 的下拉刷新问题
React Native 使用 FlatList 和 ScrollView 实现 下拉刷新时,RefreshControl 控件不起作用, 后来经查明,原来 RefreshControl 要加在 Sc ...
- cocos执行tolua/genbindings.py文件,错误搜集:
1.PYTHON_BIN not defined, use current python.这个不是错误 2.llvm toolchain not found!path: /Users/staff/Do ...
- IIS基本设置、回收机制、性能、并发、安全性
通常把站点发布到IIS上运行正常后,很少会去考虑IIS提供的各种参数,如何配置才是最适合当前站点运行需要的?这篇文章,从基本设置.回收机制.性能.并发.安全性等IIS设置讲解应当如何优化. 先来“II ...
- js获取数组中的最大值/最小值
目录 前言 1. 使用Math的静态方法max/min 1.1 结合ES6的扩展运算符...使用 1.2 结合apply/call方法来使用 1.3 结合reduce来使用 2. 排序获取 2.1 只 ...
- HTML5快速写页面的方法
1 如果有原型的HTML页面(Axure导出来),可以在此从F12的“查看器”基础上拷贝到一个新文件,继续写代码. 2 利用EditPlus软件的工具 3 使用Dreamweaver CS5,可以直观 ...
- Android Sensor 架构深入剖析【转】
本文转载自: 1.Android sensor架构 Android4.0系统内置对传感器的支持达13种,它们分别是:加速度传感器 (accelerometer).磁力传感器(magnetic fiel ...