account用户表的一个例子及讲解

CREATE TABLE `account` (
  `id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `account_no` bigint DEFAULT NULL,
  `head_img` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '头像',
  `phone` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '手机号',
  `pwd` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '密码',
  `secret` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '盐,用于个人敏感信息处理',
  `mail` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '邮箱',
  `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '用户名',
  `auth` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '认证级别,DEFAULT,REALNAME,ENTERPRISE,访问次数不一样',
  `gmt_create` datetime DEFAULT CURRENT_TIMESTAMP,
  `gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_phone` (`phone`) USING BTREE,
  UNIQUE KEY `uk_account` (`account_no`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

这段代码是一个 SQL 语句,用于在数据库中创建一个名为 account 的新表。下面是对这个 SQL 语句的详细解释:

  1. 表结构定义
    CREATE TABLE account`` …` 结束语句用于定义一个新表的结构。

  2. 列定义

    • id: 一个无符号大整数,不允许为空(NOT NULL),自动递增(AUTO_INCREMENT),用作表的主键。
    • account_no: 一个大整数,可以为空,没有特定的默认值。
    • head_img: 一个最大长度为 255 的字符串,用于存储头像的链接或路径。
    • phone: 一个最大长度为 128 的字符串,用于存储手机号,使用 utf8mb4 字符集和 utf8mb4_bin 排序规则。
    • pwd: 一个最大长度为 128 的字符串,用于存储密码。
    • secret: 一个最大长度为 64 的字符串,用于存储加密盐。
    • mail: 一个最大长度为 128 的字符串,用于存储邮箱地址。
    • username: 一个最大长度为 255 的字符串,用于存储用户名。
    • auth: 一个最大长度为 32 的字符串,用于存储认证级别。
    • gmt_create: datetime 类型,记录创建时间,默认值为当前时间戳(CURRENT_TIMESTAMP)。
    • gmt_modified: datetime 类型,记录修改时间,默认值为当前时间戳,并在记录更新时自动更新为当前时间戳。
  3. 字符集和排序规则
    CHARACTER SET utf8mb4 COLLATE utf8mb4_bin 指定了表的默认字符集和排序规则。utf8mb4 是一种支持存储全范围 Unicode 字符(包括表情)的字符集,utf8mb4_bin 是一个二进制排序规则,它在比较字符串时会考虑字节级的差异。

  4. 索引定义

    • PRIMARY KEY (id): 为主键列 id 创建一个索引。
    • UNIQUE KEY uk_phone`` (phone): 为 phone` 列创建一个唯一索引,确保手机号不会重复。
    • UNIQUE KEY uk_account`` (account_no): 为 account_no` 列创建一个唯一索引,确保账号号码不会重复。
  5. 表引擎和默认设置

    • ENGINE=InnoDB: 指定表使用 InnoDB 存储引擎,这是 MySQL 默认的存储引擎,支持事务、行级锁定和外键等特性。
    • AUTO_INCREMENT=2: 指定表的自动递增起始值为 2,意味着下一个新记录的 id 将会是 2。
    • DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin: 指定表的默认字符集和排序规则。

这个 account 表的设计考虑了存储用户账号信息的基本需求,包括联系方式、认证信息和时间戳,以及确保关键数据的唯一性和安全性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值