数据库第四天

主键:primary key,主要的键,一张表只能有一个字段可以使用对应的键,用来唯一的约束该字段里面的数据,不能重复,这种称之为主键

增加主键:

方案一:在创建表的时候,直接在字段之后,跟primary key关键字(主键本身不允许为空)

方案二:在创建表的时候,在所有的字段之后,使用primary key(主键字段列表)来创建主键,如果有多个字段作为主键,可以是复合主键

方案三:当表已经创建好之后,额外追加主键,可以通过修改表字段属性,也可以直接追加

alter table 表名 add primary key(字段列表);

主键约束:主键对应的字段中的数据不允许重复,一旦重复,数据操作(增和改)失败

更新主键 & 删除主键

alter table 表名 drop primary key;

主键分类:业务主键、逻辑主键

create table my_student(

id int primary key auto_increment comment '逻辑主键:自增长',

number char(10) not null comment '学号',

name varchar(10) not null

)

自动增长:auto_increment,当对应的字段,不给值,或给默认值、或给NULL值,会自动的被系统触发,系统会从当前字段中已有的最大值基础上,再进行+1操作,得到一个新的不同的数据

特点:

任何一个字段要做自增长,前提必须本身就是一个索引

自增长字段必须是数字,而且是整型

一张表最多只能有一个自增长

修改自增长:alter table 表名 auto_increment=值;

查看自增长对应的变量:show variables like 'auto_increment%';

删除自增长:alter table 表名 modify 字段 类型;

唯一键(unique key)

默认允许自动为空,而且可以多个为空

增加唯一键

方案一:在创建表的时候,字段之后直接跟unique / unique key

方案二:在所有的字段之后增加unique key(字段列表);

方案三:在创建表之后增加唯一键

select 选项:select对查出来的结果的处理方式

all:默认的,保留所有的结果

distinct:去重,查出来的结果,将重复给去除

字段别名

字段名 [as] 别名;

数据源:单表数据源、多表数据源、查询语句

单表数据源:select * from 表名;

多表数据源:select * from 表名1,表名2, ...;

子查询:select * from (select 语句) as 别名;

where子句:返回结果0或1,0代表false,1代表true

判断条件

比较运算符:>、<、>=、<=、!=、<>、=、like、between、and、in/not in

逻辑运算符:&&(and)、||(or)、!(not)

group by子句

基本语法:group by 字段名 [asc|desc];

统计函数:

count():统计分组后的记录数,每一组有多少记录

max():统计每组中最大的值

min():统计最小值

avg():统计平均值

sum():统计和

limit子句

方案一:只用来限制长度,即数据量:limit 数据量;

方案二:限制起始位置,限制数量:limit 起始位置,长度;

limit offset,length;

length:每页显示的数据量,基本不变

offset = (页码-1)*每页显示量

连接查询(join)分类:内连接、外连接、自然连接、交叉连接

使用方式:左表 join 右表

交叉连接(cross join)

基本语法:左表 cross join 右表; -- 等价于:from 左表,右表;

内连接([inner] join)

基本语法:左表 [inner] join 右表 on 左表.字段=右表.字段;

on表示连接条件

增加外键

创建表的时候增加外键:在所有的表字段之后,使用foreign key(外键字段) references 外部表(主键字段)

在新增表之后增加外键:修改表结构,使用alter table 表名 add [constraint 外键名字] foreign key(外键字段) references 父表(主键字段);

修改外键&删除外键

alter table 表名 drop foreign key 外键名;

外键条件

外键要存在,首先必须保证表的存储引擎是innodb

列类型必须与父表的主键类型一致

一张表中的外键名字不能重复

增加外键的字段数据已经存在,必须保证数据与父表主键要求对应

外键约束

有三种约束模式

district:严格模式(默认的)

cascade:级联模式

set null:置空模式

语法:foreign key(外键字段) references 父表(主键字段) on delete 模式 on update 模式;

你可能感兴趣的:(数据库第四天)