前言:MySQL语句关键字大小写不敏感,即大小写都可以,但为了规范,一般都使用大写,变量名使用小写。以下整理了常用的sql语句,方便查阅。且,由于数据库各语法紧密结合,很难一次性介绍完整,所以如遇到不认识的关键字请先猜测关键字的含义,再结合上下文进行理解,通常情况下注释会进行一定程度的说明便于大家理解。
常用基本数据类型
1 | char(n)-- 固定长度,长度不足在末尾自动补足空格 |
基本操作
1 | -- 创建数据库 |
基本概念
关系
数据与数据之间具有一对一、一对多、多对一、多对多关系,其中多对多关系举例可以为一个老师教多个班级,而每个班级需要多个任课老师。
记录Record
数据库中的每一行数据就是一个记录,记录是数据库中的基本单位。
列Column
数据库中的每一列数据就是一个列,列是数据库中的基本单位。
主键Primary Key
主键是数据库中唯一标识一条记录的字段,主键可以是一个字段,也可以是多个字段,如果是多个字段,则称为复合主键,但实际应用中复合主键不常用。
由于主键的作用十分重要,如何选取主键会对业务开发产生重要影响。如果我们以学生的身份证号作为主键,似乎能唯一定位记录。然而,身份证号也是一种业务场景,如果身份证号升位了,或者需要变更,作为主键,不得不修改的时候,就会对业务产生严重影响。所以,选取主键的一个基本原则是:不使用任何业务相关的字段作为主键。因此,身份证号、手机号、邮箱地址这些看上去可以唯一的字段,均不可用作主键。
作为主键最好是完全业务无关的字段,我们一般把这个字段命名为id。
id通常分为两种类型:自增id和UUID。
- 自增id:优点是连续,缺点是占用空间大,并且有上下限。
- UUID:也称GUID,优点是占用空间小,缺点是字符串,没有顺序,查询效率低。GUID算法通过网卡MAC地址、时间戳和随机数保证任意计算机在任意时间生成的字符串都是不同的,大部分编程语言都内置了GUID算法,可以自己预算出主键。
需要注意的是:如果使用INT自增类型,那么当一张表的记录数超过2147483647(约21亿)时,会达到上限而出错。使用BIGINT自增类型则可以最多约922亿亿条记录。当然,即使是BIGINT,也会遇到上限问题。使用UUID则不会有上限问题,但由于作为字符串,比较效率较低。所以,综合考虑,自增ID是最合理的选择。
外键Foreign Key
外键是用于建立和加强两个表数据之间的链接的一列或多列。外键是表中的一列或一组列,它们是另一个表的主键的引用。外键可以用来维护数据的完整性和一致性,例如,如果表A中的某一列是表B的主键,那么表A中的这一列就是表B的外键,表A中的外键项的值一定在表B中有对应记录,否则值无效。
1 | -- 定义外键约束 |
索引
索引是数据库中用来提高查询效率的数据结构,索引可以理解为书的目录,通过目录可以快速定位到需要查找的内容,而不需要从头到尾遍历整本书。索引的原理是空间换时间,
1 | -- 创建索引 |
数据库索引对于用户和应用程序来说都是透明的。