MySQL-3

建表拓展

表结构修改

基础语:alter table 表名
修改表名:rename to new_tb;
修改字段名:change field_name now_name data_type;
修改字段类型:modifiy field_name data_type;
添加字段:add field_name data_type;
删除字段:drop field_name;

约束条件

在创建表时字段属性后添加关键字
默认:default 填充数据
插入数据时,如果没有明确为字段赋值,则自动赋默认值,在没有设置默认值时,默认值为NULL
非空:not null
限制一个字段的值不能为空,insert时必须为该字段赋值,空字符不等于NULL
唯一:unique key
限制一个字段的值不重复,该字段的数据不能出现重复
主键:primary key
通常每张表都需要一个主键来体现唯一性,每张表只能有一个主键,主键=非空+唯一
自增长:auto_increment
自动编号和主键组合使用,一个表里面只能有一个自增长
可以primary key(id)–指定id为主键,后续添加数据时,id只需要设定一个初始值,后添加数据时会自动增长
eg:create table tab(id int auto_increment,primary key(id)) auto_increment=1 设定id为主键,初始值为1
外键:foreign key…referrence …
保持数据一致
只有主键可以相关联
eg:
建主表
create table a(
id_a int primary key,
name varchar(20));
建从表
create table b(
id_b int primary key,
name varchar(20),
foreign key (id_b) referrences a(id_a));
1,从表的id_b字段只能添加id_a中已有数据
2,主表中id_a被b使用的数据不能被修改和删除
注:添:先主后从 删:先从后主
删除外键:
alter table b drop foreign key 外键名;
show create table b; 可看外键名
删除主键:
alter table a drop primary key;
补充:
复制整表
create table t as select * from b;

表关系

实体-关系图

一对一

用外键方式把两表的主键联系
eg:
#建立详细学生表:
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)
);

一对多

使用外键关联实现
##创建学院表
create table department(
d_id int primary key auto_increment, # 学院id
d_name varchar(20) not null # 学院名
);
##创建学生表
create table student(
s_id int primary key auto_increment, # 学生id
s_name varchar(20) not null, # 学生名字
dept_id int not null, # 所属学院 id
foreign key(dept_id) references department(d_id) #外键
);
insert into department values(1,‘外语学院’),(2,‘计算机学院’);
insert into student values(1,‘佳能’,2),(2,‘lucky’,1);

多对多

创建中间表实现
#建立课程表:
create table cours(
cours_id int primary key auto_increment,
cours_name varchar(20) not null
);
Create table student(s_id int primary key auto_increment,s_name varchar(20) not null);
insert into student values(1,‘qiye’),(2,‘gg’);
#选课表 (中间表)
create table middle(
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
);
insert into cours values (1, ’python编程’), (2, ’大学英语’), (3, ‘音乐鉴赏’);
insert into select values(1,3); 表示学号为一的同学选择了音乐鉴赏这门课程

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值