MySQL复习笔记一:创建表

一、示例sql:

CREATE TABLE test_index(
	id BIGINT auto_increment  COMMENT '主键',
	PRIMARY key(id) COMMENT '主键',
	user_name VARCHAR(64) not null COMMENT '用户名',
	nick_name VARCHAR(64) not null COMMENT '姓名',
	INDEX name(user_name,nick_name) COMMENT '用户名称',
	age INT(3) not null COMMENT '年龄',
	`code` VARCHAR(21) not null COMMENT '唯一代码',
	UNIQUE(`code`)  COMMENT '唯一代码',
	phone VARCHAR(11) COMMENT '联系电话',
	create_by BIGINT(64) not null COMMENT '创建者',
	create_time datetime not null COMMENT '创建时间'
)COMMENT = '测试索引表',ENGINE = InnoDB;

二、语句解释:

1.创建表:test_index的表

CREATE TABLE test_index

2.自增字段:id为字段,【auto_increment】从0到N依次递增

id BIGINT auto_increment,

3.添加字段注释:【COMMENT '主键'】,COMMENT可小写,MySQL自有语句关键词基本大小写不影响,如:SELECT/select、FROM/from、INSERT/insert......等;但表名是否大小写,看自己对mysql的设置

id BIGINT auto_increment  COMMENT '主键',

4.字段类型:常用类型:int、bigint、tinyint、char、varchar、date、datetime、time、timestamp、text、blob、longblob...暂举这些。

        4.1:字段类型介绍:

类型范围/使用介绍常用场景
tinyint-128~127,若设置为无符号,则为:0~127状态字段
int-2,147,483,648~2,147,483,647年龄、小表id(主键)
bigint-9223372036854775808~9223372036854775807id(主键)
decimaldecimal(M,D),M为整数部分最大位数,D为小数部分位数(超出会四舍五入)金额
charchar(N),N为字符长度,不足会补空格,超出会报错,所以不确定的情况下,建议varchar,避免查询出问题状态字段、编码字段
varcharvarchar(N),N为字符长度,不足不会补空格,但是超出会报错字典代码
time
  • 只存储时间,不包含日期信息。
  • 格式通常是 HH:MM:SS 或者可以表示时间间隔,如 -HH:MM:SS
  • 支持的范围是从 '00:00:00' 到 '23:59:59' 或者 '838:59:59'(作为时间间隔)。
  • 注意,TIME 类型可以存储超过24小时的时间间隔,甚至可以是负数。
时间
timestamp
  • 存储的是Unix时间戳,即从1970年1月1日午夜开始的秒数。
  • 格式上在数据库中显示与 DATETIME 类似,但在内部存储方式不同。
  • 支持的范围通常是从 '1970-01-01 00:00:01' UTC 到 '2038-01-19 03:14:07' UTC,这是由于32位系统上的限制(称为“Unix时间戳溢出”问题)。
  • TIMESTAMP 类型会自动更新为当前时间,这取决于表的定义。
  • 与 DATETIME 不同,TIMESTAMP 可能会根据时区设置调整,因此在多时区环境中可能需要特别注意。
日期时间
date
  • 只存储日期,不包含时间信息。
  • 格式通常是 YYYY-MM-DD
  • 支持的范围是从 '1000-01-01' 到 '9999-12-31'
日期
datetime
  • 存储日期和时间的组合。
  • 格式通常是 YYYY-MM-DD HH:MM:SS
  • 支持的范围是从 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'
  • 通常用于需要同时记录日期和具体时刻的应用场景。
日期时间

TEXT 和 BLOB(来源:通义千问)

  • TEXT 和 BLOB 都是用来存储较大的数据块,但是 TEXT 用于存储文本数据,而 BLOB(Binary Large Object)用于存储二进制数据。
  • TEXT 列有字符集属性,这意味着它们可以支持多语言和特定的排序规则,而 BLOB 列则没有字符集属性,它们只按照字节的数值值进行排序和比较。

5.字段长度:如:VARCHAR(64) 、INT(3) ,是设置的该字段存储的字段长度,VARCHAR(64)表示该字段可存储64个字符,网上有文章说有以字节限制的版本(5以下),但笔者从业未曾使用过,所以不做赘述。

user_name VARCHAR(64) not null COMMENT '用户名',
nick_name VARCHAR(64) not null COMMENT '姓名',
age INT(3) not null COMMENT '年龄',

6、联合索引:将user_name,nick_name建立一个用户名称的索引(这里只是为了便于自己玩一次索引)

INDEX name(user_name,nick_name) COMMENT '用户名称',

7.建立二级唯一索引:这里我的一级索引为主键,所以code为辅助索引,即二级索引

UNIQUE(`code`)  COMMENT '唯一代码'

8.表注释:

COMMENT = '测试索引表'

9.表引擎选择:

ENGINE = InnoDB;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值