mysql学习四:插入、更新、删除
给所有字段插入数据:
insert into 表名 values (values1, value2, valu3..........);
给指定字段插入数据:没有指定的字段,数据库会用默认的值代替
insert into 表名 (字段2, 字段4, 字段5.....) values (value2, value4, valu5......);
插入多条数据:
insert into 表名 (字段1,字段2,字段..........) values (value1, valu2, .......), (value1,value2........);
更新:
update 表名 set 字段x=valuex,字段y=valuey where 条件;
更新多条:如果根据条件查询出来的记录有多条,那就是多条更新
update 表名 字段x=valuex, 字段y=valuey where 条件;
删除:如果根据条件查询出来的记录有多条,就是多条删除
delete from 表名 where 条件;
修改表:
drop table if exists my_student; create table my_student ( no int(4), name varchar(32) );
# 修改变结构
# 增加字段email
alter table my_student add email varchar(128);
# 修改字段no的类型:修改长度为8字节 alter table my_student modify no int(8);
# 删除字段email alter table my_student drop email;
# 修改字段名name为username alter table my_student change name username varchar(32);
字段四大约束之外键约束
外键约束:
create table t_class(
cno int(4) primary key,
cname varchar(32)
);
create table t_student(
sno int(4) primary key auto_increment,
sname varchar(32),
classno int(4),
constraint t_student_classno_fk foreign key(classno) references t_class(cno)
);
#t_student表中的classno字段有外键约束,即classno的值必须在t_class表的cno字段值的列表以内;
#示例, 如果t_class表的cno没有200这个值 ,则将以下插入数据将失败
insert into t_student(sname,classno) values('jerry',200);
有外键约束的两张表,具有父子关系,被关联的表t_class是父表,具有约束键的t_student表是子表。
必须先有父表的值,才能有子表的值。
父表的字段(约束字段)值,要具有唯一性。
当然,外键字段的值可以为null,此时子表的数据叫孤儿数据。
级联更新与级联删除:在添加级联更新与级联删除的时侯,需要在外键约束后面添关键字。
注意:级联更新与级联删除操作谨慎使用,因为级联操作会将数据改变或者删除。
级联删除:on delete cascade,在删除父表数据的时侯,将自动删除子表中的数据
mysql没有提供修改外键约束的语法,只有在创建表时创建外键约束或者删除外键约束再创建外键约束
alter table t_student drop foreign key t_student_classno_fk;
alter table t_student add constraint t_student_classno_fk foreign key(classno) references t_class(cno) on delete cascade;
级联更新:on update cascade,在更新父表数据的时侯,将自动更新子表中的数据
alter table t_student drop foreign key t_student_classno_fk;
alter table t_student add constraint t_student_classno_fk foreign key(classno) references t_class(cno) on update cascade;
posted on 2018-09-15 22:47 myworldworld 阅读(114) 评论(0) 收藏 举报