0


MySQL——自增长

目录

1.自增长

1.自增长基本介绍

  1. 在某张表中,存在一个id列(整数),我们希望在添加记录的时候, 该列从1开始,自动的增长,怎么处理?
  2. 字段名整型 primary key auto_increment
  3. 添加自增长的字段方式 insert into xxx (字段1,字段2…) values(null,'值…); insert into xxx (字段2…) values(‘值1’,‘值2’…); insert into xxxvalues(null,‘值1’…)
-- 演示自增长的使用-- 创建表CREATETABLE t24
    (id INTPRIMARYKEYAUTO_INCREMENT,
     email VARCHAR(32)NOTNULLDEFAULT'',`name`VARCHAR(32)NOTNULLDEFAULT'');DESC t24
-- 测试自增长的使用INSERTINTO t24
    VALUES(NULL,'[email protected]','tom');INSERTINTO t24
    (email,`name`)VALUES('[email protected]','hsp');SELECT*FROM t24;

在这里插入图片描述

2.自增长使用细节

  1. 一般来说自增长是和primary key 配合使用的
  2. 自增长也可以单独使用[但是需要配合一个unique]
  3. 自增长修饰的字段为整数型的(虽然小数也可以但是非常非常 少这样使用)
  4. 自增长默认从 1开始,你也可以通过如下命令修改 alter table 表名 auto_increment = xxx;
  5. 如果添加数据时,给自增长字段(列)指定具体值,则以指定的值为准
-- 修改默认的自增长开始值ALTERTABLE t25 AUTO_INCREMENT=100CREATETABLE t25
    (id INTPRIMARYKEYAUTO_INCREMENT,
     email VARCHAR(32)NOTNULLDEFAULT'',`name`VARCHAR(32)NOTNULLDEFAULT'');INSERTINTO t25
    VALUES(NULL,'[email protected]','mary');INSERTINTO t25
    VALUES(666,'[email protected]','hsp');SELECT*FROM t25;

在这里插入图片描述

2.MySQL约束练习——商店表设计

  1. – 现有一个商店的数据库shop_db,记录客户及其购物情况,由下面三个表组成:
  2. – 商品goods(商品号goods_id,商品名goods_name,单价unitprice,商品类别category,-- 供应商provider);
  3. – 客户customer(客户号customer_id,姓名name,住址address,电邮email性别sex,身份证card_Id);
  4. – 购买purchase(购买订单号order_id,客户号customer_id,商品号goods_id,购买数量nums); – 1 建表,在定义中要求声明 [进行合理设计]: – (1)每个表的主外键; – (2)客户的姓名不能为空值; – (3)电邮不能够重复; – (4)客户的性别[男|女] check 枚举… – (5)单价unitprice 在 1.0 - 9999.99 之间 check
-- 使用约束的课堂练习CREATEDATABASE shop_db;-- 现有一个商店的数据库shop_db,记录客户及其购物情况,由下面三个表组成:-- 商品goods(商品号goods_id,商品名goods_name,单价unitprice,商品类别category,-- 供应商provider);-- 客户customer(客户号customer_id,姓名name,住址address,电邮email性别sex,身份证card_Id);-- 购买purchase(购买订单号order_id,客户号customer_id,商品号goods_id,购买数量nums);-- 1 建表,在定义中要求声明 [进行合理设计]:-- (1)每个表的主外键;-- (2)客户的姓名不能为空值;-- (3)电邮不能够重复;-- (4)客户的性别[男|女] check 枚举..-- (5)单价unitprice 在 1.0 - 9999.99 之间 check-- 商品goodsCREATETABLE goods (
    goods_id INTPRIMARYKEY,
    goods_name VARCHAR(64)NOTNULLDEFAULT'',
    unitprice DECIMAL(10,2)NOTNULLDEFAULT0CHECK(unitprice >=1.0AND unitprice <=9999.99),
    category INTNOTNULLDEFAULT0,
    provider VARCHAR(64)NOTNULLDEFAULT'');-- 客户customer(客户号customer_id,姓名name,住址address,电邮email性别sex,-- 身份证card_Id);CREATETABLE customer(
    customer_id CHAR(8)PRIMARYKEY,-- 程序员自己决定`name`VARCHAR(64)NOTNULLDEFAULT'',
    address VARCHAR(64)NOTNULLDEFAULT'',
    email VARCHAR(64)UNIQUENOTNULL,
    sex ENUM('男','女')NOTNULL,-- 这里老师使用的枚举类型, 是生效
    card_Id CHAR(18));-- 购买purchase(购买订单号order_id,客户号customer_id,商品号goods_id,-- 购买数量nums);CREATETABLE purchase(
    order_id INTUNSIGNEDPRIMARYKEY,
    customer_id CHAR(8)NOTNULLDEFAULT'',-- 外键约束在后
    goods_id INTNOTNULLDEFAULT0,-- 外键约束在后
    nums INTNOTNULLDEFAULT0,FOREIGNKEY(customer_id)REFERENCES customer(customer_id),FOREIGNKEY(goods_id)REFERENCES goods(goods_id));DESC goods;DESC customer;DESC purchase;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

标签: mysql 数据库 sql

本文转载自: https://blog.csdn.net/qq_59708493/article/details/126523523
版权归原作者 Demo龙 所有, 如有侵权,请联系我们删除。

“MySQL&mdash;&mdash;自增长”的评论:

还没有评论