2016 - 2024

感恩一路有你

MySQL时间类型和表定义及索引定义

浏览量:2342 时间:2024-07-29 21:24:07 作者:采采

1. 时间类型

MySQL提供了几种用于存储时间的数据类型,包括date、time、datetime、timestamp和year。这些数据类型有不同的范围和用途。

- date类型:支持的范围为1000-01-01到9999-12-31。

- time类型:支持的范围是-838:59:59到838:59:59。

- datetime类型:支持的范围是1000-01-01 00:00:00到9999-12-31 23:59:59。

- timestamp类型:时间戳,表示当前时刻,类似函数now()获得的值,在INSERT或UPDATE操作时自动获得(更新)为当前时间。

- year类型:四位字符串,范围为1901到2155;四位数字,范围为1901到2155;两位字符串,范围为00到99;两位整数,范围为1到99。

2. 表定义基本形式

在MySQL中,表的定义使用CREATE TABLE语句。一个表的基本定义形式如下:

```

CREATE TABLE [IF NOT EXISTS] 表名 (

字段列表,

[索引或约束列表]

)

```

字段的定义形式为:

```

字段名 字段类型 [字段属性1 字段属性2 ...]

```

字段属性列表可以有多个字段属性,使用空格隔开。根据具体数据需求,可以添加不同的字段属性,例如:

- auto_increment:自增长值,用于整数类型,并且必须是一个“key”(主键或唯一键)。

- primary key:设置为主键,通过该字段的值可以唯一确定一行数据,并且默认不为空。

- unique key:唯一键,设定该字段的值是唯一的,不可重复的,但可以为空。

- not null:设定为不为空。

- default 默认值:设定默认值,如果插入数据时该字段没有给值,就使用该默认值。

- comment '字段的说明文字':为字段添加说明文字。

示例代码如下所示:

```

CREATE TABLE tab_shuxing (

id int auto_increment primary key,

user_name varchar(20) unique key not null comment '用户名',

user_pass char(32) comment '密码,使用md5加密',

age tinyint unsigned default 18 comment '年龄'

);

```

3. 索引的定义

索引是数据库中用于提高查询速度的一种数据结构。在MySQL中,我们可以定义不同类型的索引。

- 普通索引:使用KEY关键字定义,例如`KEY(字段名...)`。

- 主键索引:使用PRIMARY KEY关键字定义,例如`PRIMARY KEY(字段名...)`。当定义一个字段为主键时,同时也自动定义了该字段的索引。

- 唯一索引:使用UNIQUE KEY关键字定义,例如`UNIQUE KEY(字段名...)`。当定义一个字段为唯一键时,同时也自动定义了该字段的索引。

- 全文索引:使用FULLTEXT关键字定义,例如`FULLTEXT(字段名...)`。目前MySQL对中文的全文索引支持度较低,实用性不高。

- 外键索引:使用FOREIGN KEY关键字定义,例如`FOREIGN KEY(字段名...) REFERENCES 其他表名(对应其他表中的字段名)`。外键是关系数据库中表与表之间联系的一种机制。

通过定义适当的索引,可以提高数据库的查询效率和数据的一致性。



原文链接:

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。