MySQL朕の笔记啊,钦此

 非空约束:

alter table stu modify name varchar(10) not null;
# 限定为非空约束,表结构的修改是用 modify

 唯一约束:

 唯一约束用于保证数据表中字段的唯一性,即表中字段的值不能重复出现。唯一约束是通过UNIQUE定义的

基本语法规则:

                                字段名 数据类型 UNIQUE;

alter table stu add unique key(id);

主键约束:

(可以快速找到表中的某条信息。通过PRIMARY KEY定义)

基本语法规则:

                            字段名 数据类型 PRIMARY KEY;

      每一个数据表中只能有一个主键约束,非空且唯一。

没有申明主键,有唯一约束和非空约束,就会默认为主键。

alter table stu add primary key(id);

自增约束:

    自增约束必须与主键组合使用,默认情况下,起始值为1,每次的增量为1。通过AUTO_INCREMENT定义的。

基本语法规则:

                        字段名 数据类型 AUTO_INCREMENT;

alter table stu change id id tinyint AUTO_INCREMENT;

insert into stu(name,age) values("东离",68);

 实现自增长为“1”,但是如果自增长重复则报错

编号可以跳过 e.g.  1 2 6 

这时,再次插入为编号 7

1.插入已有的,数值编号重复,报错

2.插入值大于已有值,可以正常进行

3.删除最大值,再次插入数值时,依然会从已经删除的最大值的下一位开始插入

默认约束: 

alter table stu alter age set default 18;
# defalut 后面需要添加默认值

表关系:

外键约束:

(一对一)

mysql> create table college(
    -> d_id int PRIMARY KYE AUTO_INCRMENT,
    -> d_name varchar(20) not null
    -> );

 

 外键约束无法添加没有的数据

外键约束的外键无法添加关联上对应表主键的数据,这就是一对多。 设置方法:

constraint c_s foreign key(dept_id) references college(d_id);

常见外键约束,指定当前表为外键,关联上某个表的主键,实现一对多

 删除外键约束:

       在实际开发中,根据业务逻辑的需求,需要解除两个表之间的关联关系时,就需要删除外键约束。

                   基本语法规则: ALTER TABLE 表名 DROP FOREIGN KEY 外键名。

一对多关系: 

                表中某条数据与另外一个表中的多个数据有关联关系。

一对一关系:

                表中某条数据与另外一个表中的一条数据有关联关系。

多多对多关系:

                 表A的数据对应表B的多个数据,同时表B的数据也同样对应当前表A的多个数据。

数据库三范式

          第一范式-1NF

        第一范式(1NF):数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。 不可多表头

 只能这样的

        第二范式-2NF

                           第二范式(2NF):在1NF的基础上,非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖) 依赖分离,形成表关系 

         第三范式-3NF

        第三范式(3NF):在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖) 在二的基础上实现非主属性在整个数据库中只出现一次

事务:

        数据库事务(transaction): 针对数据库的一组操作,它可以由一条或多条SQL语句组成,同一个事务的操作具有同步的特点,如果其中一条语句无法执行,那么所有语句都不会执行。

BEGIN --- 开始一个事务     ROLLBACK --- 事务回滚     COMMIT --- 事务确认

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值