读书记录《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];
后续一些内容
-
视图管理
-
查询数据
-
汇总查询结果
-
子查询
-
表的连接
待更新