【读书笔记】【数据库】SQL必知必会
第1课 了解SQL
简单介绍了sql,和dbms,无重点。
第2课 检索数据
重点:select语句,distinct,limit,注释
1. select 语句如果没有明确排序查询结果,那么返回的数据没有特定的顺序。返回数据的顺序可能是数据被添加到表中的顺序,也可能不是。只要返回相同数目的行,就是正常的。
2. 多条 SQL 语句必须用 ; (分号)分隔。
3. SQL不区分大小写
4. SQL语句分行可读性更好
5. 最好不要使用 * 这种通配符 select 表中所有的列
6. distinct 的使用。 distinct 关键字作用于所有的列,不仅仅是跟在其后的那一列。
7. limit n offset m 的使用。从 第 n 行开始的 m 行数据。(n is 0 based)
(mysql, mariaDB, SQLite 可以简化 LIMIT 4 OFFSET 3 --> LIMIT 4, 3)
8. 注释一般用 '--' 或者 '#' (单行注释) 或者 '/* */' (多行注释)
第3课 排序检索数据
重点:order by
1. order by 应该是 select 语句中最后一条子句; 它也可以通过没有被 select 的列进行排序
2. 如何按照多个列排序。 需要理解的是下面列子中只有在多个行具有相同的 prod_price 值时才对产品按照 prod_name 进行排序。如果 prod_price 列中所有值都是唯一的,则不会按照 prod_name 排序。
select prod_id, prod_price, prod_name
from Products
order by prod_price, prod_name
3. 按照列位置排序,(坦白讲我觉得这个一般不会用到)
select prod_id, prod_price, prod_name
from Products
order by 2, 3;
select 清单中指定的选择列的相对位置排序。 order by 2 表示按照 select 清单中的第二个列 prod_price 进行排序。order by 2, 3 同理 order by prod_price, prod_name。
好处就是不用重新输入列名。缺点(1)列名错用 (2)如果对select清单做了更改,这里容易出错。还有就是如果需要排序的列不在 select 清单中,就肯定不能用。
4. 指定升序降序 asc 和 desc。如果在多个列上进行排序,一定要对每一列指定 desc 或者 asc。
5. 对文本数据进行排序的时候,A 和 a 相同吗?a 是排在 B 之前还是 Z 之后? 这个取决于数据库的设置方式。在 dictionary 排序顺序中, A 和 a 被视为是相同的,这是大多数默认的排序方式。如果需要改需要 DBA 改设置。
第4课 过滤数据
第5课 高级过滤数据
第6课 用通配符进行过滤
第7课 创建计算字段
第8课 使用函数处理数据
第9课 汇总数据
第10课 分组数据
第11课 使用子查询
第12课 联结表
第13课 创建高级联结
第14课 组合查询
第15课 插入数据
第16课 更新和删除数据
第17课 创建和操纵表
第18课 使用视图
第19课 使用存储过程
第20课 管理事务处理
第21课 使用游标
第22课 高级SQL特性
附录
【读书笔记】【数据库】SQL必知必会的更多相关文章
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- 读书笔记--SQL必知必会18--视图
读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...
- 【SQL必知必会笔记(1)】数据库基础、SQL、MySQL8.0.16下数据库、表的创建及数据插入
文章目录 1.数据库基础 1.1 数据库(database) 1.2 表(table) 1.3 列和数据类型 1.4 行 1.5 主键 2.什么是SQL 3.创建后续练习所需数据库.表(MySQL8. ...
- 读书笔记--SQL必知必会--建立练习环境
书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL in 10 Minutes - Fourth Edition> MyS ...
- 读书笔记--SQL必知必会12--联结表
12.1 联结 联结(join),利用SQL的SELECT在数据查询的执行中联结表. 12.1.1 关系表 关系数据库中,关系表的设计是把信息分解成多个表,一类数据一个表,各表通过某些共同的值互相关联 ...
- SQL语法语句总结(《SQL必知必会》读书笔记)
一.SQL语句语法 ALTER TABLE ALTER TABLE 用来更新已存在表的结构. ALTER TABLE tablename (ADD|DROP column datatype [NULL ...
- MySQL必知必会1-20章读书笔记
MySQL备忘 目录 目录 使用MySQL 检索数据 排序检索数据 过滤数据 数据过滤 用通配符进行过滤 用正则表达式进行搜索 创建计算字段 使用数据处理函数 数值处理函数 汇总数据 分组数据 使用子 ...
- 《SQL必知必会》学习笔记二)
<SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...
- 《mysql必知必会》读书笔记--存储过程的使用
以前对mysql的认识与应用只是停留在增删改查的阶段,最近正好在学习mysql相关内容,看了一本书叫做<MySQL必知必会>,看了之后对MySQL的高级用法有了一定的了解.以下内容只当读书 ...
- 【SQL必知必会笔记(3)】SELECT语句的WHERE子句数据过滤操作
上个笔记主要介绍了利用SELECT语句检索单个/多个/所有列,并利用DISTINCT关键字检索具有唯一性的值.利用LIMIT/OFFSET子句限制结果:以及利用ORDER BY子句排序检索出的数据,主 ...
随机推荐
- 【记录】解决前端form表单回车禁止刷新页面
最近弄前端 有form表单的情况下 按回车会自动刷新当前页面. 现记录解决方案如下: 1.去掉表单 2.不要让表单中只有一个文本框(增加一个隐藏的文本框就行) 3.以上两点都不想使用,那么就还可以在表 ...
- go语言从例子开始之Example13.函数多返回值
Go 内建多返回值 支持.这个特性在 Go 语言中经常被用到,例如用来同时返回一个函数的结果和错误信息. Example: package main import "fmt" // ...
- Linux Centos 7 下部署 .NetCore + MySql + Redis + mssql2007 部署过程
1. net core 安装及运行配置 安装 1)rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-p ...
- 2019牛客多校第三场A Graph Games 分块思想
题意:给你一张无向图,设s(x)为与x直接相连的点的集合,题目中有两种操作: 1:1 l r 将读入的边的序列中第l个到第r个翻转状态(有这条边 -> 没这条边, 没这条边 -> 有这条边 ...
- Quartz.Net 任务调度之日志(5)
Quartz.框架的监听器和日志 1.JobListener 任务日志 新建一个类,继承IJobListener public class CustomJobListener : IJobListe ...
- Python--线程队列(queue)、multiprocessing模块(进程对列Queue、管道(pipe)、进程池)、协程
队列(queue) 队列只在多线程里有意义,是一种线程安全的数据结构. get与put方法 ''' 创建一个“队列”对象 import queue q = queue.Queue(maxsize = ...
- php floor()函数 语法
php floor()函数 语法 floor函数是什么意思? php floor()函数用来向下舍入为最接近的整数.语法是floor(number),表示返回不大于参数number的下一个整数,有小数 ...
- hdu 2089 不要62 (数位dp)
Description 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer). 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别 ...
- vue中setTimeout切换浏览器页签时怎么清除解决方案
大家都知道,vue中有完整的生命周期,this.$router.push('')可以跳到相应的页面中,在beforeDestroy中可以监听到,将定时器清空,又或是通过this._isDestroye ...
- docker常见启动参数
dockerd启动参数详解: dockerd \ --bip \ #设置docker0网段 --selinux-enabled=false \ #关闭selinux --insecure-regist ...