mysql 建表类型_MySQL 建立数据表和数据类型说明

之前简单写了一下 MySQL 最基本的 增、删、改、查,这里继续来写 MySQL 建立数据表和数据类型说明。建立数据表虽然看似简单,但其中还是涉及到很多内容的,例如 数据类型、主键 等。

如果要看 MySQL 最基本的 增、删、改、查,可以访问:MySQL 最基本的 增、删、改、查 。

数据类型

目前 MySQL 的数据类型可以简单划分为:数值类型、字符串类型、日期时间类型,下面是个类型的说明:

数值类型

TINYINT

TINYINT 是一种整数类型,范围从 -128 到 127,或者从 0 到 255,存储占用为:1 字节。

SMALLINT

SMALLINT 是一种整数类型,范围从 -32768 到 32767 或 0 到 65535,存储占用为:2 字节。

MEDIUMINT

MEDIUMINT 是一种整数类型,范围从 -8388608 到 8388607 或 0 到 16777215,存储占用为:3 字节。

INT

INT 是一种整数类型,范围从 -2147483648 到 2147483647 或 0 到 4294967295,存储占用为:4 字节。

BIGINT

BIGINT 是一种整数类型,范围从 9223372036854775808 到 9223372036854775807 或 0 到 18446744073709551615,存储占用为:8 字节。

FLOAT

FLOAT 是一种单精度浮点数类型,范围从 -3.402823466E+38 到 -1.175494351E+38、0 和 1.175494351E+38 到 3.402823466E+38,存储占用为:4 字节。

DOUBLE

DOUBLE 是一种双精度浮点数类型,范围从 -1.7976931348623157E+308 到 -2.2250738585072014E+308 或 0 到 2.2250738585072014E+308,存储占用为:8 字节。

注意!其中的 E+38 或者 E-38 之类的是科学计数法。包含负数的是有符号,从 0 开始的是无符号,关于有符号和无符号后面会写。

字符串类型

CHAR

CHAR 是一种定长字符串类型,范围从 0 到 255 字节,长度达不到 255 的会用空格补充。

VARCHAR

VARCHAR 是一种变长字符串类型,范围从 0 到 65535 字节。

TINYTEXT

TINYTEXT 是一种字符串类型,范围从 0 到 255 字节。

TEXT

TEXT 是一种字符串类型,范围从 0 到 65535 字节。

MEDIUMTEXT

MEDIUMTEXT 是一种长字符串类型,范围从 0 到 167772150 字节。

LONGTEXT

LONGTEXT 是一种超长字符串类型,范围从 0 到 4294967295 字节。

注意!一般情况下 英文、数字、半角符号 都是 1 个字符占 1 个字节,中文和全角符号根据编码不同占用也会不一样,常用的 UTF-8 编码 中文和全角符号 1 个字符占 3 个字节。

日期时间类型

DATE

DATE 类型可存储日期值,范围从 1000 年 1 月 1日 到 9999 年 12 月 31日,格式为:YYYY-MM-DD。存储占用为:3 字节。

TIME

TIME 类型可存储时间值,范围从 -838:59:59/838:59:59,格式为:HH:MM:SS,存储占用为:3 字节。

YEAR

YEAR 类型可存储年份值,范围从:1901 年 到 2155 年,格式为:YYYY,存储占用为:1 字节。

DATETIME

DATETIME 类型可存储日期和时间值,范围从:1000 年 1 月 1 日 00:00:00 到 9999 年 12 月 31 日 23:59:59,格式为:YYYY-MM-DD HH:MM:SS,存储占用为:8 字节。

TIMESTAMP

TIMESTAMP 类型可存储时间戳,范围从:1970 年 1 月 1 日 00:00:00 到 1970 年 1 月 1 日 00:00:00 + 2147483647 秒,格式为:YYYYMMDD HHMMSS,存储占用为:4 字节。

不过在实际开发中日期时间类型一般很少会用到,大多都是用 INT 类型来存储时间戳,主要是存储整数类型的时间戳方便计算和转换时区。

以上就是一些可能会用到的数据类型,对于一些极少会用到的数据类型这里就没有写,例如:枚举类型。

建立数据表

下面建立一张名为:msg 的表:CREATE TABLE msg (

user_name VARCHAR (20),

content VARCHAR (20000),

time INT

)

其中 CREATE TABLE 就是 建立表格,msg 就是 表名,user_name、content、time 就是 字段名,VARCHAR 和 INT 是 数据类型,VARCHAR 后面的数字是 指定最大长度。这里的字段相当于是表的 列。

使用 DESC + 表名 可以查看表结构,如下:DESC msg

下面是msg 表的结构:+-----------+----------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-----------+----------------+------+-----+---------+-------+

| user_name | varchar(20) | YES | | NULL | |

| content | varchar(20000) | YES | | NULL | |

| time | int(11) | YES | | NULL | |

+-----------+----------------+------+-----+---------+-------+

下面是表结构说明:Field:字段名

Type:数据类型和最大长度

Null:允许为空

Key:键

Default:默认值

Extra:额外设置

可以看到上面建立的表格结构比较简单,除了设置 字段名 和 数据类型 外基本没有设置其它内容。

下面重新建立 msg 表格:CREATE TABLE msg (

id INT AUTO_INCREMENT PRIMARY KEY,

user_id INT NOT NULL DEFAULT 0,

content VARCHAR (20000) NOT NULL DEFAULT '',

time INT NOT NULL DEFAULT 0

)

其中 id 后面的 AUTO_INCREMENT 就是自动生成编号,PRIMARY KEY 就是 主键 关于 主键下面会有说明,NOT NULL 就是禁止为空,DEFAULT 是默认 后面的是 默认值。

主键相当于是表中的唯一标识,一张表中只能设置一个字段为主键,主键的内容不能相同。例如把 id 设置为 主键,第 1 条数据的 id 为 1,第 2 条数据的 id 就不能为 1。

下面是 msg 表的结构:+---------+----------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+---------+----------------+------+-----+---------+----------------+

| id | int(11) | NO | PRI | NULL | auto_increment |

| user_id | int(11) | NO | | 0 | |

| content | varchar(20000) | NO | | | |

| time | int(11) | NO | | 0 | |

+---------+----------------+------+-----+---------+----------------+

其中 content的默认值为 '' 就相当于是空字符串。

建表虽然看似简单,但要考虑的内容很多,尤其是关于数据类型的选择。

增加字段

如果你建好了一张表,但是发现建表的时候忘记写某个字段的话,你还可以给已经建好的表格添加字段。

下面给 msg 表添加一个 comment 字段:ALTER TABLE msg ADD

comment VARCHAR (250) NOT NULL DEFAULT ''

其中的 ALTER TABLE 就是 更改表格,msg 就是 表名,ADD 就是 添加,后面的就是要添加的字段信息。

如果表格之前存储了数据的话,添加字段后新字段的值就是默认值。

删除表格

下面删除 msg 表:DROP TABLE msg

其中的 msg 就是 表名。

重命名

下面把 msg 表 重命名为 message:RENAME TABLE msg TO message

其中的 msg 就是原名称,message 就是新名称,这句 SQL 语句很好理解。

相关文章:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值