数据库仓库&大数据分析

  • 主键(Primary Key):同一张表,将一条记录与其他记录区别开来的字段,一般为 ID
    • 选取原则:不选取任何与业务相关的字段,避免变动风险
    • 主键选择:
      • 自增整数类型
      • 全局唯一的 GUID 类型
  • 联合主键:多个字段组合作为主键
  • 外键(Foreign Key):通过另外一张表的主键联合两张表的字段称为外键,字段存储值为管理表的主键值。

约束

可以在创建表的时候为每个字段(列)添加约束,也可以在创建后使用ALERT修改

  • NOT NULL:非空约束
  • UNIQUE:唯一约束
  • PRIMARY KEY:主键约束,NOT NULL 和 UNIQUE 的结合
  • FOREIGN KEY:约束表中的数据指向另一个表的主键
  • CHECK:保证字段的值符合指定条件
  • DEFAULT:默认值,未赋值时默认使用
CREATE TABLE employees (
  id int PRIMARY KEY,
  name VARCHAR(225) NOT NULL,
  age INT CHECK(age > 18),
  apartment VARCHAR(225) DEFAULT 'A'
)

表关系

一对一:

一对多:通过创建外键,关联另外一个表。外键并不是通过列名实现的,而是通过定义外键约束实现的。外键约束会降低数据库的性能。

-- 创建外键
ALTER TABLE students
ADD CONSTRAINT fk_class_id/* 外键约束的名称,可以是任意名 */
FOREIGN KEY (class_id)/* 设置外键 */
REFERENCES classes (id);/* 设置关联表 */

-- 删除外键
ALTER TABLE students
DROP FOREIGN KEY fk_class_id;

多对多:通过一个表的外键关联到另一个表

id teacher_id class_id
1 001 001
2 002 001

TODO:索引

索引是为了解决查询速度问题,索引是关系数据库中对某一列或多个列的值进行预排序的数据结构。通过使用索引,可以让数据库系统不必扫描整个表,而是直接定位到符合条件的记录,这样就大大加快了查询速度。

可以对一张表创建多个索引。索引的优点是提高了查询效率,缺点是在插入、更新和删除记录时,需要同时修改索引,因此,索引越多,插入、更新和删除记录的速度就越慢。

对于主键,关系数据库会自动对其创建主键索引。使用主键索引的效率是最高的,因为主键会保证绝对唯一。

ALTER TABLE students
ADD INDEX idx_score (score);

TODO:事务

TODO:视图

视图即虚拟表,

TODO:触发器

参考资源

https://juejin.cn/post/7004697716403994638 https://www.jianshu.com/p/58da1060f0f5

results matching ""

    No results matching ""