读书记录《SQL从小白到大牛》01
接地气的书名,内容应当值得一读。
第一篇 SQL基础
01 一些基础概念
- SQL是结构化查询语言(Structured Query Language),是一套用来输入、更改和查看关系数据库内容的命令。
 - 数据库发展经历三个阶段:人工管理——文件系统——数据库系统
 - 数据库数据逻辑模型:网状模型、层次模型、关系模型、对象模型
 
02 一些定义
- 二维表:关系模型的数据结构是一个二维表组成的集合
 - 关系:每个二维表称为关系
 - 实体:系统中的人事物
 - 表:这些实体所构成的集合
 - 元组:也称为记录,就是行。
 - 字段:也称为列。
 - 键:Key。码,分为超键、候选键、主键、外键。 
- 超键(Super Key),能够唯一标识一行数据的字段或者字段集。【可以有多种组合】
 - 候选键(Candidate Key),是包含最少字段的超键。
 - 主键(Primary Key),从候选键中选择出来的。
 - 外键(Foreign Key),一个关系数据库可能包含多个表,通过外键关联起来。
 
 
03 SQL概述
-  
SQL主要分为5类,数据定义语言、数据操作语言、数据控制语言、事务控制语言、数据控制语言。
 -  
数据定义语言(DDL)
- CREATE 创建
 - DROP 删除
 - ALTER 修改
 - TRUNCATE 删除
 
 -  
数据操作语言(DML)
- INSERT 插入数据
 - UPDATE 更新数据
 - DELETE 删除数据
 - SELECT 选择数据
 
 -  
数据控制语言(DCL)
- GRANT 授权
 - REVOKE 取消授权
 
 -  
事务控制语言(TCL)
- COMMIT 提交事务
 - ROLLBACK 回滚事务
 - SAVEPOINT 设置事务保存点
 
 -  
数据查询语言(DQL)
- SELECT 数据查询
 
 
SQL标准
- SQL不区分大小写
 - 忽略空白
 - 语句结束符为;, 单独一句可以不用
 
学习环境搭建
-  
SQLite搭建
www.sqlite.org
 -  
DB4S
https://sqlitebrowser.org/dl/
 

具体操作语言指令
文中详细介绍了DB4S的使用方法(依旧是使用SQL语句),因此直接介绍具体的操作语言指令 (部分)。
1 新建表、设置表格式
CREATE TABLE student (s_id INTEGER,s_name VARCHAR(20),gender CHAR (1),PIN  CHAR(18))
 
INTEGER定义整数类型;
VARCHAR(20)定义可变长度,最大长度为20B;
CHAR(1)表示固定长度为1B的字符串类型。
2 指定候选键
两种定义方式:
CREATE TABLE student (s_id INTEGER,s_name VARCHAR(20),gender CHAR (1),PIN  CHAR(18) UNIQUE)
 
CREATE TABLE student (s_id INTEGER,s_name VARCHAR(20),gender CHAR (1),PIN  CHAR(18) ,UNIQUE (PIN))
 
指定主键:PRIMARY KEY(s_id)
指定外键: 1 s_id INTEGER REFERENCES students (s_id)
2 FPREIGN KEY(s_id) REFERENCES student(s_id)
3 约束
DEFAULT 'F’定义默认值
NOT NULL 禁止空值
都加在CREATE TABLE 里面语句的末尾。
4 CHECK约束
单独一句
score INTEGER CHECK(score>-0 AND score <=100)
修改表
修改表名
ALTER TABLE table_name
RENAME TO new_table_name
 
添加字段
ALTER TABLE table_name
ADD field_name datatype[(size)]
 
删除字段
ALTER TABLE table_name
DROP COLUMN field_name
 
删除表
DROP TABLE table_name
 
修改数据
/*插入数据*/INSERT INTO table_name 
[(field_list)]
VALUES
(value_list);/*更改数据*/
UPDATE table_name
SET field1 = value1, field2 = value2,...
[WHERE condition];
/*例如 WHERE 编号=666*//*更改数据*/
DELETE FROM table_name
[WHERE condition]; 
后续一些内容
-  
视图管理
 -  
查询数据
 -  
汇总查询结果
 -  
子查询
 -  
表的连接
 
待更新