[数据库] 数据库基础概念 (一)

主键:PRIMARY KEY,唯一标识一条记录。不可使用空值NULL,整形,长整型,自增长。

索引:INDEX,为表中某些列建立的字典,查询时快速检索。用空间换时间,提升查询效率,增删索引会造成数据库效率低下。

主键索引:主键会自动创建索引,唯一标识。

唯一索引:表中的索引不可以出现重复数据,但可以为NULL,非NULL值必须唯一。读多写少的场景推荐多使用索引。

普通索引:没有唯一索引的要求,可以重复,就是建立了一个字典目录而已。

约束:Contraint,也就是不允许做某事。

UNIQUE约束:(唯一键约束),定义了唯一索引就定义了唯一键约束。

主键约束:定义了主键就定义了主键约束,约束不可以为NULL,不允许重复,但NULL值除外。

外键约束:

表B中某一列关联到表A中的主键的值,表B中的这一列就称为外键。

向表B中该列插入值,该值必须在表A中的主键中存在,否则不允许插入。

修改表B中该列的某值,也必须在表A中存在否则不可以修改。

表A删除一条记录,表B中需删除关联到该记录的行,一般情况下,没有人引用表A主键后,才可以删除。

表A修改主键值,必须删除表B中相关记录,才可以修改。修改相当于新增。

外键约束的作用:可以保证数据完整性、一致性,杜绝数据冗余,数据讹误。但外键能少用则少用。

视图:虚表,展示表,是由查询语句生成的(多表查询)。

复杂SQL语句定为视图,可以大大的简化查询操作。

视图只显示真实表的部分列,或计算以后的结果,隐藏真实表的数据,不建议在视图上增删改,只查询就可以了。

数据类型:

tinyint

1字节,带符号的范围是-128到127。无符号的范围是0到255。

bool或boolen,就是tinyint,0表示假,非0表示真 

smailint 2字节,带符号的范围是-32768到32767.无符号的范围是0到65535 
int

整型,4字节,同integer,带符号的范围是-214783648到2147483647。

无符号的范围是0到4294967295 

bigint

长整型,8字节,带符号的范围是-9223372036854775808到923372036854775807。

无符号范围是0到1846744073709551615

float  单精度浮点数精确到大约7位小数位
double 双精度浮点数精确到大约15位小数位 
date 日期。支持的范围为'1000-01-01'到'9999-12-31' 
datetime 支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59' 
timestamp 时间戳,范围是'1970-01-01 00:00:00'到2037年 
char(M) 固定长度,右边填充空格已达到长度要求。M为长度,范围为0到255.M指的是字符个数 
varchar(M) 变长字符串。M表示最大列长度。M的范围是0到65535。但不能突破行最大字节数65535 
text 大文本。最大长度为65535(2^16-1)个字符 
BLOB 大字节。最大长度为65535(2^16-1)字节的BLOB列 

LENGTH函数返回字节数。

char和varchar定义的M是字符数限制。

原文地址:https://www.cnblogs.com/i-honey/p/8196061.html