MySQL学习笔记

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

2020-02-29  本文已影响0人  Broken故城

个人笔记,仅供参考

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

上一篇 下一篇

猜你喜欢

热点阅读