SQL
什么是SQL?SQL是结构化查询语言的缩写,用来访问和操作数据库系统。SQL语句既可以查询数据库中的数据,也可以添加、更新和删除数据库中的数据,还可以对数据库进行管理和维护操作。不同的数据库,都支持SQL,这样,我们通过学习SQL这一种语言,就可以操作各种不同的数据库。
SQL = Structured Query Language
各数据库厂商还会支持特定的数据类型,例如JSON。
数据模型分为层次模型、网状模型、关系模型
BIGINT\VARCHAR(N)是日常用于最广泛的数据类型
DDL-定义数据(增删表,修改表结构)、DML-管理数据(增删改数据)、DQL-查询数据
关系模型
主键
对于关系表,有个很重要的约束,就是任意两条记录不能重复。不能重复不是指两条记录不完全相同,而是指能够通过某个字段唯一区分出不同的记录,这个字段被称为主键。
对主键的要求,最关键的一点是:记录一旦插入到表中,主键最好不要再修改,因为主键是用来唯一定位记录的,修改了主键,会造成一系列的影响。
作为主键最好是完全业务无关的字段,我们一般把这个字段命名为id。常见的可作为id字段的类型有:
1自增整数类型:数据库会在插入数据时自动为每一条记录分配一个自增整数,这样我们就完全不用担心主键重复,也不用自己预先生成主键;
2全局唯一GUID类型:使用一种全局唯一的字符串作为主键,类似8f55d96b-8acc-4636-8cb8-76bf8abc2f57。GUID算法通过网卡MAC地址、时间戳和随机数保证任意计算机在任意时间生成的字符串都是不同的,大部分编程语言都内置了GUID算法,可以自己预算出主键。
外键
设置一对多
ALTER TABLE students //表名
ADD CONSTRAINT fk_class_id //外键约束的名称(任意)
FOREIGN KEY (class_id) //外键名
REFERENCES classes (id); //指定了这个外键将关联到classes表的id列
删除外键约束
ALTER TABLE students
DROP FOREIGN KEY fk_class_id;
索引
添加唯一索引:
>ALTER TABLE students
ADD CONSTRAINT uni_name UNIQUE (name);
只添加唯一约束而不添加唯一索引:
>ALTER TABLE students
ADD UNIQUE INDEX uni_name (name);