读书记录《SQL从小白到大牛》01

读书记录《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不区分大小写
  • 忽略空白
  • 语句结束符为;, 单独一句可以不用

学习环境搭建

  1. SQLite搭建

    www.sqlite.org

  2. DB4S

    https://sqlitebrowser.org/dl/

image-20240707205201810

具体操作语言指令

文中详细介绍了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];

后续一些内容

  • 视图管理

  • 查询数据

  • 汇总查询结果

  • 子查询

  • 表的连接

待更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值