MySQL基础篇(2)
MySQL之记录的增删改查:
一、增(插入):
insert into tablename(id,name,salary) values (1,'xx',100);
二、删(删除记录):
delete from tablename;(删除表中的所有记录)
delete from tablename where id<6;(删除表中id<6的记录)
三、修改:
update tablename set age=20;(将表中所有记录的age字段改为20)
update tablename set age=20 where age=15;(加入了条件语句,将表中所有age字段值为15的记录的age字段值修改为20)
四、查:
select * from tablename;
MySQL之主键、外键:
一、主键:
数据库中主键能唯一的标识表中的某一条记录,用户保证某条记录的唯一性,在创建表时用primary key约束表示,可用于其他表的外键关联。
二、外键:
如果多张表中的公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。(一张表中可以有多个外键,但是主键只能有一个,但是主键可以有多个字段共同组成,当主键有多个字段时,在做外键约束时也应该写成同样的多列;并且在约束外键时,作为外键的字段对应的表应该已经创建完成)
例子:
create table teachers(
id int auto_increment primary key,
name char(20)
)engine=innodb default charset=utf8;
create table userinfo(
uid int auto_increment primary key,
name char(20),
teacher_id int,
foreign key(teacher_id) references teachers(id)
)engine=innodb default charset=utf8;
另外需要注意的是,当一个表中有自增id时,需要将这个自增的id约束为该表的主键;在约束外键时,主表外键与从表的主键的数据类型必须一致,比如上述表中的id,teacher_id,类型都必须为int,如果teachers表中id类型为bigint,userinfo表中teacher_id类型写成int那么就会报:cannot add foreign key constraint这个错误
还有就是,约束外键时,也可以这样constraint f_user_dep foreign key(teacher_id) references teachers(id);
还有一种方式也可以给表定义外键——使用alter关键字(修改表),如下:
alter table userinfo add constraint department_id foreign key(department_id) references department(id);
如果表中没有该字段,需要先增加该字段:
alter table userinfo add department_id int;
三、外键变种(基本上默认的外键都是一对多的关系):
1、一对一关系:在约束外键时,对外键增加唯一索引约束unique,则表示当前表中对应的外键都是唯一的。
2、多对多关系: