【MySQL】表的约束以及增删改操作!!

表的约束

  • 空属性
    • null:如果不设置,默认为null
    • not null:设置当前字段不为空,再插入数据的时候当前字段不可以为空
create table tt1(
    id int not null,
    name varchar(20)
);

这里写图片描述

  • 默认值default

    • create table tt2(
      id int not null,
      name varchar(20),
      sex char(1) default '男'
      );

      这里写图片描述

      - 如果在插入数据的时候没有定义设置了默认数据的字段,那么自动填充默认的值,但是setenum不能设置默认。
      - 通常配合not null使用
  • 列描述
  • 使用comment,没有实际含义,用来描述字段


    • create table tt3(
      id int not null comment "用户id,不能为空",
      name varchar(20) comment "用户姓名,可以为空"
      );

      这里写图片描述
      如果需要查看comment描述,可以使用show create table tt3;这里写图片描述
  • zerofill

    • create table tt3(
      id int not null zerofill comment "用户id,不能为空",
      name varchar(20) comment "用户姓名,可以为空"
      );

      这里写图片描述
  • 主键

    • 使用primary key,主键用来约束该字段里面的数据、不能重复、不能为空、主键所在的列类型为整形。
    • 一个表里面最多有一个主键

    • create table tt4(
      id int primary key comment "描述学号,次列为主键",
      name varchar(20) not null
      );

      这里写图片描述
      注:在创建主键的时候可以在创建的时候使用primary key来创建,也可以在所有字段之后使用primary key(主键段列表),当主键段只有一个时候为单主键,当含有多个的时候为复合主键。
    • 如果在创建表后需要加入主键,可以使用:alter table 表名 add primary key(主键列表);
    • 删除主键:alter table 表名 drop primary key;
  • 自增长

    • 使用auto_increment:当对应字段没有没有给值得时候系统自动触发(默认1开始),通常搭配主键使用,作为逻辑主键。
    • 特点:
      - 任何一个字段想要设置成自增长,该字段本身必须是索引
      - 自增长字段必须是整数、
      - 一张表最多有一个自增长
      -
      create table tt5(
      id int auto_increment primary key,
      name varchar(20) comment "描述姓名"
      );

      这里写图片描述
  • 唯一键
    • 使用unique:在需要使数据不能重复的时候使用唯一键,可以避免只有一个主键的问题。

    • create table tt6(
      id int unique comment "描述学号,不能够重复",
      name varchar(20)
      );

      这里写图片描述
      :唯一键可以为空,当字段为空的时候null不作比较。

表的增删改

  • 增加
  • insert into table_name[(column[,column...])] values (value [,value...]);
  • eg:
  • `create table tt6(
    id int unique comment “描述学号,不能够重复”,
    name varchar(20)
    这里写图片描述


- 当插入的数据和主键的数据冲突的时候可以使用duplicate key来进行修改。
- insert into tt7 values(2,"xiaoming") on duplicate key update id=4;

  • 替换

    • replace into 表名(包含字段) values(值列表);

    这里写图片描述

  • 修改

    • update tbl_name set col_name1=expr1, [, col_name2=expr2 ...] [where conditon]
    • eg:update tt7 set id=5 where id=2;
    • 这里写图片描述
      注:如果没有使用where来过滤那么将会将全部的值进行修改。如果需要制定修改的数据个数,可以使用limit numnum为需要修改的个数。
  • 删除

    • delete from tbl_name [where condition]
    • 删除一个表的时候只删除表的数据不改变表的结构
    • eg:delete from tt7 where id=2;
    • 这里写图片描述

    注:如果需要删除整个表,可以使用truncatetruncate是将真个文件直接截断为0。
    使用效果和delete,但是删除的速度要比delete快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值