mysql数据库中的各种约束_数据库Mysql的学习(三)-各种约束

删除数据库表

drop table [if exists] 表一,表二.....;

表分区:比如图书信息表有1000万个图书信息,如何优化他,其中一种方式就是表分区。就是把一张表的数据分成多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上。

基本操作如下:

4b8d41dc507221af4c9bdb8e28394e35.png

先创建bookinfo的表,然后分区“partition by range(xx)”就是通过xx来分区。

里面分了三个区,p1,p2,p3.分别为20109999之前,20159999之前,和其他。

向表中插入数据“insert into xx values(xx,'xx')”

9286ca2848b2dfeb38087be56402712c.png

查看每个分区的内容"select * from xx partition(xx)"

790f4fed20a5a6badc47f0845215862e.png

主键的概念:

表中的每一行都应该具有可以唯一标识自己的一列(或一组列)。而这个承担标识作用的列称为主键。

如果没有主键,数据的管理将会十分混乱。比如会存在多条一模一样的记录,删除和修改特定行十分困难。

外键

通俗的说就是两个表相关联,连接这俩表的那个字段就是外键

约束

通过对表的行和列的数据做出限制,来确保数据的完整性和唯一性。

一般有非空约束,主键约束,唯一约束,默认约束,外键约束。

9f7e643b33088c767484825118dabd6c.png

比如图书编号和类别编号就要主键约束,类别编号就要外键约束,书名非空约束和唯一约束。

非空约束

表的创建默认为空(NULL),设为非空约束后,如果在添加数据时,没有指定值,则会报错。

在创建是设置。

也可以通过修改表的方法来来添加发非空约束。

a9fb57ba03dd8c3c9da52de31cd6320e.png

这样插入数据就会报错

3e5a0545f73baf50f8305b205d002e35.png

可以通过修改数据类型来改变约束

5f24b1f64c5c310c04633221a439477a.png

主键约束

要求主键列的数据唯一,并且不为空,能够唯一标识表的一条记录。

一张表最多一个主键约束

第一种创建 列名后加primary key

3be6e09486720f6ecbce12b32b636eca.png

或者指定constraint xx primary key(xx)pk_id是自己定义的主键名称。

e1377158d7bb2377f2398d803a58b9b0.png

通过修改也可以添加主键

1.alter table bookinfo2 add primary key(book_id);

2.alter table bookinfo2 modify book_id int primary key;

3.alter table bookinfo2 add constraint pk_id primary key(book_id);

删除主键

直接alter table bookinfo2 drop primary key;

也可以有多字段联合主键或叫复合主键

create table bookinfo2(

book_id int,

book_name char(20),

primary key(book_id,book_name)

);

唯一约束

方法和前面一样  可以直接在列名后 加上unique 或者constraint uk_banme unique(xx)

修改添加的话

ea873fb0c900d6e1f17fd1c58202fbbf.png

e39ecf36b76ce14fe1cc1fe46f42a46a.png

默认约束

062c58a4e53a0e4303a42aebbb98f3df.png

eb3da81379d87a5eb76959f68313977a.png

8d362d32a2cbf1ce2a5672123f5ecbc5.png

外键约束

b409393dc0dddbf61b773cf50d6ce2da.png

2cbdbeafcb8640bda558c9529694375e.png

22ce56fc7fe00a58e3ac638b44357d6c.png

c25675e40c2ebee7f0a843d1c1803f8e.png

0f643ec9badb228e69f27e6021659bbf.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值