笔记2:MYSQL 表操作
程序员文章站
2022-08-10 08:57:06
一.表约束 1.非空约束:not null 作用:定义表的某一列不能为空。 2.唯一约束:uniqe key 作用:确定某一列不能存在相同的值。 3.主键约束:primay key 作用:列中唯一标识一条数据,每张表里面只能有一个主键;主要是帮助MYSQL更快的查找某一条信息。 特征:非空并唯一,当 ......
一.表约束
1.非空约束:not null
作用:定义表的某一列不能为空。
>> alter table 表名 modify 列名 int not null; "添加非空约束" >> alter table 表名 modify 列名 int; "取消非空约束"
2.唯一约束:uniqe key
作用:确定某一列不能存在相同的值。
>> alter table 表名 add unique key(列); "添加唯一约束" >> alter table 表名 drop key 列; "取消唯一约束"
3.主键约束:primay key
作用:列中唯一标识一条数据,每张表里面只能有一个主键;主要是帮助mysql更快的查找某一条信息。
特征:非空并唯一,当表里没有主键的时,默认第一个出现的非空并唯一的列就是主键。
>> alter table 表名 add primary key(列); "添加主键约束" >> alter table 表名 drop primary key; "取消主键约束"
4.外键约束:foreign key
作用:保持数据的一致性,减少数据冗余,实现一对多关系。外键一般关联另一张表的主键。
>> alter table 需要外键的表 add constraint 外键名 foreign key(需要外键表的字段名) referencnes 关联表名(关联字段名);
"添加外键约束"(注意:外键名不能重复)
>> alter table 存在外键的表 drop foreign key 关联字段名;
"删除外键约束"
5.自增长约束:auto_increment
作用:自动编号。一般与主键组合使用。一个表里面只有一个自增,默认情况下起始值为1,每次增量为1
>> alter table 表名 modify 列 int auto_increment;
"添加自增长约束"
>> alter table 表名 modify 列 int;
"删除自增长约束"
6.默认约束:default
作用:没有插入数据时,自动赋予默认值。
>> alter table 表名 modify 列 int default 默认值;
"添加默认约束" >> alter table 表名 modify 列 int;
"删除默认约束"
二.表关系
1. 一对一关系:
例:2张表通过主键进行关联。 学生信息表:学生表=1:1
#建立学生信息表: create table student_details( id int primary key, sex varchar(20) not null, age int, address varchar(20) comment '家庭住址', parents varchar(20), home_num varchar(20), foreign key (id) references student(s_id) );
2.一对多关系
例:2张表通过外键进行关联。 学生表:学院表=n:1
##创建学生表 create table student( s_id int primary key auto_increment, # 学生id s_name varchar(20) not null, # 学生名字 dept_id int not null, # 所属学院 id constraint sd_id foreign key(dept_id) references department(d_id) #外键 );
#创建学院表 create table department( d_id int primary key auto_increment, # 学院id d_name varchar(20) not null # 学院名 );
3.多对多关系
例:通过创建中间表进行关联 。 学生表:课程表=m:n
#建立课程表: create table cours( cours_id int primary key auto_increment, cours_name varchar(20) not null );
# 选课表 (中间表) create table `select`( s_id int, #用来记录学生id cours_id int, #用来记录 课程id primary key(s_id,cours_id), # 联合主键 foreign key(s_id) references student(s_id), # 关联学生id foreign key(cours_id) references cours(cours_id) # 关联课程id );
三.数据类型
mysql支持多种类型,大致可以分为三类:
-
数值日期/
-
时间
-
字符串(字符)类型。
上一篇: Linux 特权帐号VS普通帐号
下一篇: 禁用shift+space的全半角切换