千家信息网

数据库一些重要概念和数据类型总结(读书笔记)--python

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,数据库一些概念:1.1.PRIMARY KEY主键什么是主键:表中一列或者多列组成的唯一的key,也就是通过这一个或者多个列能唯一的标识一条记录(正常都是用一列实现)。特点:1.主键的列不能包含空值N
千家信息网最后更新 2024年11月22日数据库一些重要概念和数据类型总结(读书笔记)--python
  1. 数据库一些概念:
    1.1.PRIMARY KEY主键
    什么是主键:表中一列或者多列组成的唯一的key,也就是通过这一个或者多个列能唯一的标识一条记录(正常都是用一列实现)。
    特点:1.主键的列不能包含空值Null. 2.主键往往设置为整型、长整型,3.且自增AUTO_INCREMENT.
    表中可以没有主键,但是,一般表设计中,都会有主键。
    1.2 index 索引
    索引的作用:可以看做是一本大字典的目录,为了快速检索用的。空间换时间,显著提高查询效率。
    副作用:删除,修改,添加效率减少
    可以对一列或者多列设定索引。
    索引分类:
    主键索引:主键会自动建立主键索引,主键本身就是为了快速定位唯一记录的。
    唯一索引: 表中的索引组成的索引必须唯一,但可以为空(NONE),非空值必须唯一
    普通索引:没有唯一性的要求,就是建了一个字典的目录而已。
    1.3 Constraint (约束)
    UNIQUE约束(唯一键约束)
    定义了唯一键索引,就定义了唯一键约束
    PRIMARY KEY约束
    定义了主键,就定义了主键约束。
    外键约束Foreign key:
    外键,在表B中的列,关联表A中的主键,表B中的列就是外键.
    1.如果在表B插入一条数据,B的外键列插入了一个值,这个值必须是表A中存在的主键值,修改表B的外键值也是同样,外键值同样要在表A中存在。
    2.如果表A要删除一条记录,那么就等于删除了一个主键,那么如果表B中引用到了这个主键,就必须先删除表B中引用这个主键的记录,然后才能删除表A的记录,否则删除失败。
    3.修改表A的主键,由于主键的唯一性,修改的主键相当于插入新主键,那么表B引用过的这个主键,将阻止表A的主键修改,必须先删除表B的相关记录后,才可修改表A的主键。
    外键约束,为了保证数据完整性,一致性,杜绝数据冗余,数据讹误。
    外键约束不易多用。

1.4 视图
视图:也称为虚表,看起来像表。它是由查询语句生成的。可以通过视图进行CRUD操作。
视图的作用:

  1. 简化操作,将复杂查询SQL语句定义为视图,可以简化查询。
  2. 数据安全:视图可以只显示真实表的部分列,或计算后的结果,隐藏真实表的数据。
    (视图可以增删改查,建议查询用视图,可以用工具完成视图)

2.数据类型:
MYSQL中的数据类型:
类型:

  1. Tinyint 1字节,带符号的范围-128到127,无符号的范围是0到255。bool或者boollean,就是tinyint,0表示假,非0表示真
  2. Smaillint 2字节,带符号的范围是-32768到32767.无符号的范围是0到65535
  3. Int 整型 4个字节,同integer,带符号范围 -2147483648到2147483647.无符号范围是0到4294967295 (最大10位ID)
  4. Bigint 长整型,8字节,带符号的范围是 -9223372036854775808到9223372036854775807 无符号的范围是0到18446744073709551615 (20位)
  5. Float 单精度浮点数精确到大约7位小数
  6. Double 双精度浮点数精确到大约15位小数位
  7. DATE 日期,支持范围 1000-01-01 到9999-12-31
  8. DATETIME 支持的范围1000-01-01 00:00:00 到 9999-12-21 23:59:59
  9. TIMESTAMP 时间戳,范围 1970-01-01 00:00:00 到 2037年
  10. Char(M)固定长度,右边填充空格已达到长度要求。M为长度,范围为0-255.M指的是字符个数。(不够长填空格)
  11. Varchar(M)变长字符串。M表示最大列长度。M的范围是0到65535. 但不突破最大字节数65535
  12. Text 大文本。最大的长度 65535(2^16-1)
  13. BLOB 大字节。最大长度为65535(2^16-1)字节的BLOB列

    LENGTH函数返回字节数,而char和varchar定义的M是字符数限制。
    Char可以将字符串变成等长的,空间换时间,效率略高;varchar变长,省了空间。

0