在学习这本书之前,我大概翻了一下目录,画了一个粗略的导图。
然后我就发现,这本书里讲的好像跟我们自考科目--数据库操作原理很像,就一直在想,为什么数据库和SQL都要讲表的增删改查,都要讲三范式,都要讲子查询呢?
然后我就查了一下,
数据库:永久数据的一个或多个大型结构化集合,通常与查询和更新数据的软件有关。
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
原来,SQL是数据库的查询语言。
下面说一下我对这本书的收获:像在数据库那本书中一样,基础的数据库和表的操作肯定是要有的、
CREATE DATABASE myFirstDatabase ---创建的数据库的名词为myFirstDatabase
DROP DATABASE myFirstDatabase ---删除myFirstDatabase数据库
CREATE TABLE TRAIN _Times------创建 一个名为Train-times的表
ALTER TABLE name_ of _table ----更改列名为name 的表
DROP TABLE name_ of _table ----删除一个名为name的表
当然,还有我们最熟悉的,SELECT 语句来提取信息,但是仅一个select语句也是有很多学问的。不仅仅是最简单的语法格式。
还有,
想知道一个记录中所有的唯一值,就要加上DISTINCT 关键字啦
还可以通过where子句过滤结果。
另外就是,SELECT 与逻辑运算符连用时,也可以发挥强大的查询功效!像AND,OR,NOT,BETWEEN,IN 和LIKE.
除了这些基本的操作,数据库还可以进行高级设计,像三范式就是其中重要的一环。
第一范式
- 定义所需要的数据项,因为它们将成为表中的列。
- 将相关的数据项放置在一个表中
- 确保没有重复的数据组
- 确保存在一个主键
第二范式
- 要求主键中的任意列必须没有局部相关性。---如同一个演员不可能在用一个电影出任主角两次。
- 所有列与主键紧密耦合,例外之处是第三个表中的两列一起组成了主键
第三范式
- 它符合第二范式
- 所有非主键字段都依赖于主键
- 非主键字段都依赖于主键。层层相关,不能分层相关
此外还有利用约束,也就是NOT NULL UNIQUE CHECK PRIMARY KEY FOREIGN KEY 来确保有效性。
那说完了对于数据库的操作,我们再来看一下关于数据的操作。说到数据,大家肯定想到的就是加减乘除,此外还有
ABS()函数
这个是返回一个数值的绝对值。
POWER()函数
这是一个提幂函数。
SORT()函数
求平方根函数。
RAND()函数
生成0和1之间的一个随机小数。
TRIM()函数\
这个就表示删除前面定义的示例表的尾部空格
LENGTH()函数
找出一个字符串中存在多少个字符;
当然还有大小写转换函数,SOUNDEX()函数和DIFFERENCE()函数,这些我们不常遇到,就不一一列举了。
还有就是关于数据的分组与聚合。
分组:寻找关于一个特定记录的信息 聚合:概括多个记录中的信息。
分组函数: GROUP BY () 函数
聚合函数 COUNT()函数:
SUM()函数:累加函数 仅可以对数值字段使用SUM()函数
AVG()函数:求平均值
MAX()函数 :最大值 MIN()函数 :最小值
HAVING()函数: 允许使用指定条件来过滤最终结果中的分组。\
接下来,我还知道了联合不仅有INNER JOIN ,还有OUTER JOIN ,还有左外部联合,右外部联合,以及完全外部联合。