MySQL数据库基础知识和命令行操作(二)增删改查,建表约束

个人笔记,仅供参考

1、数据类型如何选择

日期按照格式,数值和字符串按照大小

2、增删改查

:使用insert语句

INSERT INTO pet VALUES('Fluffy','Harold','cat','f','1993-02-04',null);

将括号的的值按顺序增加到名为pet的表的各个字段中

delete from pet where name='Fluffy';

删除pet表中name='Fluffy’那一行的数据

update pet set name='1' where owner='2';

将pet表中owner=‘2’那一行的name改为1

前面提到的select语句

select * from 表名

小结:

增加:INSERT

删除:DELETE

修改:UPDATE

查询:SELECT

(不区分大小写)

3、MySQL建表约束

即对每个字段值的限制

3.1、主键约束、自增约束

​ 主键约束能够唯一确定一张表中的一条记录,也就是通过给某个字段添加约束,就可以使字段不重复且不为空

create table user(
	id int primary key,
	name varchar(20)
);

第二行primary key就是创建主键的关键字

联合主键:多个字段主键,加起来不重复就可以

create table user2(
	id int,
	name varchar(20),
	password varchar(20),
	primary key(id,name)
	);

同时给id和name添加主键约束,此时增加数据id和name至少有一个不同才能添加成功,但还是不可以为空

自增约束

可以和主键约束放在一个字段上

create table user3(
	id int primary key auto_increment,
	name varchar(20)
	);

第二行id字段使用了自增约束,输入数据时可以省略这一条

insert into user3 (name) values('zhangsan');

这里只给name字段赋了值,id可以自动生成

如果创建表的时候忘记设置主键了

create table user4(
	id int,
	name varchar(20)
	);

创建后再执行以下命令来添加主键约束:

alter table user4 add primary key(id);
alter table user4 modify id int primary key;

两种方法都可以

删除主键

alter table user4 drop primary key;

3.2、外键约束

涉及到两个表:父表,子表

假设有班级表和学生表两个表:

create table classes(
	id int primary key,
	name varchar(20)
	);
create table students(
	id int primary key,
	name varchar(20),
	class_id int,
	foreign key(class_id) references classes(id)
	);

学生表的class_id字段与班级表的id字段相关联,学生表中的class_id由班级表中的id决定,即主表中没有的值,副表就不可以使用

主表中的记录被副表引用,是不可以在副表中删除的

3.3、唯一约束

约束该字段值不能重复,创建:

create table user5(
	id int,
	name varvhar(20)
	);

alter table user5 add unique(name);

第六行添加唯一约束

或者创建时直接添加:

create table user6(
	id int,
	name varvhar(20),
	unique(name)
	);

直接写在第三行后面也可以,使用modify添加参考前面主键约束

添加多个唯一约束时也是有一个不重复就可以

删除唯一约束

方法和前面删除主键差不多

alter table user7 drop index name;

小结

1、建表的时候可以添加约束

2、可以使用alter…add…

3、alter…modify

4、删除alter…drop…

3.4、非空约束

修饰的字段不能为空

create table user9(
	id int,
	name varchar(20) not null
	);

3.5、默认约束

当我们插入字段值的时候,如果没有传值,就会只用默认值

create table user10(
	id int,
	name varchar(20),
	age int default 10
	);

age字段默认为10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值