《SQL必知必会》读书笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《SQL必知必会》读书笔记相关的知识,希望对你有一定的参考价值。

第1课:了解SQL

数据库(database)
保存有组织的数据的容器(通常是一个文件或一组文件)。

表(table)
某种特定类型数据的结构化清单。

关于表:使表名成为唯一的,实际上是数据库名和表名等的组合。有的数据库还使用数据库拥有者的名字作为唯一名的一部分。也就是说,虽然在相同数据库中不能两次使用相同的表名,但在不同的数据库中完全可以使用相同的表名。创建表时必须特别关注所用的数据类型。

列(column)
表中的一个字段。所有表都是由一个或多个列组成的。

行(row)
表中的一个记录。

说明:是记录还是行?
你可能听到用户在提到行时称其为数据库记录(record)。这两个术语多半是可以交替使用的,但从技术上说,行才是正确的术语。

主键(primary key)
一列(或一组列),其值能够唯一标识表中每一行。唯一标识表中每行的这个列(或这几列)称为主键。主键用来表示一个特定的行。没有主键,更新或删除表中特定行就极为困难,因为你不能保证操作只涉及相关的行。

提示:应该总是定义主键
虽然并不总是需要主键,但多数数据库设计者都会保证他们创建的每个表具有一个主键,以便于以后的数据操作和管理。

说明:SQL 的扩展
许多DBMS 厂商通过增加语句或指令,对SQL 进行了扩展。这种扩展的目的是提供执行特定操作的额外功能或简化方法。虽然这种扩展很有用,但一般都是针对个别DBMS 的,很少有两个以上的供应商支持这种扩展。标准SQL 由ANSI 标准委员会管理,从而称为ANSI SQL。所有主要的DBMS,即使有自己的扩展,也都支持ANSI SQL。各个实现有自己的名称,如PL/SQL、Transact-SQL 等。本书讲授的SQL 主要是ANSI SQL。

 第2课 检索数据

select 基本格式:

select  列名1,列名2,……

from 表名;

注意:多条SQL 语句必须以分号(;)分隔。SQL 语句不区分大小写,但是表名、列名和值可能有所不同(这有赖于具体的DBMS 及其如何配置)。

关于注释:① --(两个连字符)嵌在行内,后面文本为注释;

②在一行的开始处使用#,这一整行都将作为注释;

③注释从/*开始,到*/结束,/*和*/之间的任何内容都是注释。这种方式常用于给代码加注释。

第3课 排序检索数据

select  列名1,列名2,……

from 表名

order by 列名; --order by 语句放在最末无论何时。

第4课 过滤数据

select  列名1,列名2,……

from 表名

where 条件;

在同时使用ORDER BY 和WHERE 子句时,应该让ORDER BY 位于WHERE 之后。

技术分享

 第5 课 高级数据过滤

select  列名1,列名2,……

from 表名

where 条件1 and/or 条件2;

或 where 条件1 and/or (条件2 and/or 条件3);

或 where (条件1 and/or 条件2) and/or 条件3;--and优先级敢于or,但建议用().

 

select  列名1,列名2,……

from 表名

where 列名 (not) in (列名1,列名2,……);

第6课 用通配符进行过滤

①select 列名1,列名2,……
from 表名
where  列名 like ‘abc%‘;  --列名以abc开头的行,%表示任何字符出现任意次数,可以出现在开头、结尾、中间。

②select 列名1,列名2,……
from 表名
where  列名 like ‘_abc‘; 
--_(下划线)的用途与%一样,但它只匹配单个字符,而不是多个字符。

③select 列名1,列名2,……
from 表名
where  列名 like ‘[]%‘; 
--[]表示集合。这里表示以内部元素开头,任意字符结尾。

 第7课 创建计算字段

许多数据库(不是所有)保存填充为列宽的文本值,而实际上你要的结果不需要这些空格。为正确返回格式化的数据,必须去掉这些空格。这可以使用SQL 的RTRIM()函数来完成.

技术分享

说明:TRIM 函数
大多数DBMS 都支持RTRIM()(正如刚才所见,它去掉字符串右边的空格)、LTRIM()(去掉字符串左边的空格)以及TRIM()(去掉字符串左右两边的空格)。

下面的例子是对检索出的数据进行算术计算以及适用别名:

技术分享
















以上是关于《SQL必知必会》读书笔记的主要内容,如果未能解决你的问题,请参考以下文章

《SQL必知必会》读书笔记

mysql必知必会读书笔记

《SQL必知必会》读书笔记上(第1~15章)

MySql必知必会读书笔记 -- 基础

正则表达式必知必会读书笔记

《mysql必知必会》读书笔记--存储过程的使用