《SQL必知必会》学习笔记
第2课 检索数据
关于SQL语句的一些特点:
- 多条SQL语句必须以分号(;)分隔。
- 请注意,SQL语句不区分大小写,因此SELECT与select是相同的。
- 在处理SQL语句时,其中所有空格都被忽略。
DISTINCT关键字
使用 DISTINCT 关键字,指示数据库只返回不同的值,
- DISTINCT关键字写在 select 后面,列名的前面。
- DISTINCT关键字作用于所有的列,不仅仅是跟在其后的那一列。
SELECT DISTINCT vend_id, prod_price FROM Products;
设置返回结果的行数
在SQL Server中使用SELECT时,可以用TOP关键字来限制最多返回多少行。
使用Oracle,需要基于ROWNUM(行计数器)来计算行。
如果你使用MySQL、MariaDB、PostgreSQL或者SQLite,需要使用LIMIT子句:
SELECT prod_name FROM Products LIMIT 5;
为了得到后面的5行数据,需要指定从哪儿开始以及检索的行数,像这样:
ELECT prod_name FROM Products LIMIT 5 OFFSET 5;
OFFSET 5 表示从第 5 行开始检索,mysql 中行编号从 0 开始。
SQL 注释
行内注释1:使用--(两个连字符)嵌在行内。——之后的文本就是注释:
SELECT prod_name -- 这是一条注释。
FROM Products
行内注释2:在一行的开始处使用#,这一整行都将作为注释:
# 这是一条注释
SELECT prod_name
FROM Products
多行注释:注释从/*开始,到*/结束,/*和*/之间的任何内容都是注释。
第3课 排序检索数据
SQL语句由子句构成,有些子句是必需的,有些则是可选的。一个子句通常由一个关键字加上所提供的数据组成。
ORDER BY子句
ORDER BY子句取一个或多个列的名字,据此对输出进行排序:
SELECT prod_name FROM Products ORDER BY prod_name;
指示DBMS软件对prod_name列以字母顺序排序。
使用 ORDER BY子句的注意事项:
- ORDER BY子句应该是SELECT语句中最后一条子句。
- 用非检索的列排序数据是完全合法的。
要按多个列排序,只须指定这些列名,列名之间用逗号分开即可:
SELECT prod_id, prod_price, prod_name FROM Products
ORDER BY prod_price, prod_name;
这里,优先按照 prod_price 排序,如果 prod_price 相同,再使用 prod_name 进行排序。
DESC关键字
sql中,默认使用升序进行排序。为了进行降序排序,必须指定 DESC 关键字:
SELECT prod_id, prod_price, prod_name FROM Products
ORDER BY prod_price DESC;
使用 DESC关键字注意事项:
- DESC关键字只应用到直接位于其前面的列名。
- 如果想在多个列上进行降序排序,必须对每一列指定DESC关键字。
- DESC是DESCENDING的缩写,这两个关键字都可以使用。
第4课 过滤数据
WHERE子句
在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后,否则将会产生错误。
单引号用来限定字符串。如果将值与字符串类型的列进行比较,就需要限定引号。用来与数值列进行比较的值不用引号:
SELECT vend_id, prod_name FROM Products
WHERE vend_id !='DLL01';
BETWEEN操作符
要检查某个范围的值,可以使用BETWEEN操作符。
SELECT prod_name, prod_price FROM Products
WHERE prod_price BETWEEN 5 AND 10;
在使用BETWEEN时,必须指定两个值——所需范围的低端值和高端值。这两个值必须用AND关键字分隔。BETWEEN匹配范围中所有的值,包括指定的开始值和结束值。
IS NULL子句
SELECT语句有一个特殊的WHERE子句,可用来检查具有NULL值的列。这个WHERE子句就是IS NULL子句。其语法如下:
SELECT prod_name FROM Products WHERE prod_price IS NULL;
第5课 高级数据过滤
AND操作符
要通过不止一个列进行过滤,可以使用AND操作符给WHERE子句附加条件。
可以增加多个过滤条件,每个条件间都要使用AND关键字。
任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。
IN操作符
IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配:
SELECT prod_name, price_price FROM Products
WHERE vend_id IN('DLL01', 'ERSO1') ORDER BY prod_name;
此SELECT语句检索由供应商DLL01和BRS01制造的所有产品。IN操作符后跟由逗号分隔的合法值,这些值必须括在圆括号中。
IN操作符的特点:
- IN操作符与OR操作符实现的是相同的功能,但IN操作符比一组OR操作符执行得更快
- IN的最大优点是可以包含其他SELECT语句,能够更动态地建立WHERE子句。
第6课 用通配符进行过滤
原文地址:https://www.cnblogs.com/youcoding/p/15262640.html
- GridView绑定小技
- XCode读取Excel数据(适用于任何数据库)
- ObjectDataSource选择业务对象列表为空的探讨
- ASP.NET Web API自身对CORS的支持: CORS授权检验的实施
- 模版引擎XTemplate与代码生成器XCoder(源码)
- 深度学习让人脸识别准确率不断提升
- 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用
- 小论线性变换
- 谈谈基于OAuth 2.0的第三方认证 [下篇]
- Razor Engine,实现代码生成器的又一件利器
- 谈谈基于OAuth 2.0的第三方认证 [上篇]
- 我所理解的RESTful Web API [Web标准篇]
- ASP.NET Web API中的Controller
- iOS 转场动画探究(二)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 静默安装单机Oracle数据库软件
- 如何用 Python 生成炫酷二维码
- 一个在交流群里讨论过两轮的问题,答案竟然跟一个 PEP 有关
- Python 函数为什么会默认返回 None?
- 潘粤明的《龙岭迷窟》到底怎么样?我用 Python 得出了一些结论!
- [译]按照EIP-712规范签名完成委托和投票
- 更好Solidity合约调试工具: console.log
- 发现了合自己胃口的公众号,但文章太多翻来翻去真麻烦,还好我学了 Python
- 用 Python 下载抖音无水印视频
- 《民国奇探》的弹幕有点逗比,用 Python 爬下来看看
- MySQL information_schema详解 PARTITIONS
- 如何用 Python 来绘制玫瑰图等常见疫情图
- MySQL information_schema详解 PLUGINS
- 不到 20 行 Python 代码即可制作精美证件照
- 不到 100 行 Python 代码即可实现换脸功能