Java基础

MySQL详解3.DDL语法

2019-01-16  本文已影响43人  卢卡斯哔哔哔

点击进入我的博客

1 数据库

1.1 创建数据库

创建语句

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification]

create_specification:

{A|B} 表示选择其中之一;[XXX]表示[]中的内容是可选的

1.2 删除数据库

DROP DATABASE 库名

1.3 选择数据库

USE 库名

2 数据类型

2.1 整型

image.png
整型后面的数字INT(M)
  1. 整数型的数值类型已经限制了取值范围,有符号整型和无符号整型都有,而M值并不代表可以存储的数值字符长度,它代表的是数据在显示时显示的最小长度.
  2. 当存储的字符长度超过M值时,没有任何的影响,只要不超过数值类型限制的范围;
  3. 当存储的字符长度小于M值时,只有在设置了ZEROFILL用0来填充,ALTER TABLE tb_name MODIFY COLUMN col_name INT(5) ZEROFILL;才能够看到效果。换句话就是说,没有ZEROFILL,M值就是无用的。
放入数值超出范围
  1. 默认情况下不会报错,如果插入的超出了范围,那么会插入最大/最小值。
  2. 如果限制为严格模式STRICT_ALL_TABLES,插入超出范围会报错

2.2 定点数

DECIMAL和NUMERIC类型在MySQL中视为相同的类型。它们用于保存必须为确切精度的值。

(M,D)的细节

2.3 浮点数

浮点数是用来表示实数的一种方法,它用 M(尾数) * B( 基数)的E(指数)次方来表示实数,相对于定点数来说,在长度一定的情况下,具有表示数据范围大的特点。

(M,D)的细节

2.4 CHAR和VARCHAR类型

CHAR类型是定长的,CHAR值会根据需要采用空格进行填充以方便比较。
VARCHAR类型用于存储可变长字符串,是最常见的字符串数据类型。

VARCHAR的存储空间
字符串末尾的空格

2.5 BINARY和VARBINARY

BINARY和VARBINARY类型类似于CHAR和VARCHAR类型,而是二进制字符串,所以它们没有字符集,并且排序和比较基于列值字节的数值值。二进制字符串和常规字符串非常相似,但它存储的是字节码而不是字符。

填充与裁剪

2.6 BLOB和TEXT

BLOB和TEXT都是为存储很大的数据而设计的字符串数据类型,分别采用二进制和字符方式存储。

具体类型
BLOB/TEXT与VARBINARY/VARCHAR异同点

2.7 ENUM

MySql中的ENUM是一个字符串对象,其值来自表创建时在列规定中显式枚举的一列值。ENUM最多可以有65,535个元素。

空字符串和NULL
值的索引规则

2.8 位数据类型

SET类型

SET是一个字符串对象,可以有零或多个值,其值来自表创建时规定的允许的一列值。SET最多可以设置64个值。

BIT类型

BIT数据类型可用来保存位字段值。BIT(M)类型允许存储M位值。M范围为1~64,默认为1。
如果存入一个BIT类型的值,位数少于M值,则左补0。

2.9 日期时间类型

DATETIME和TIMESTAMP
DATE

当你只需要日期值而不需要时间部分时应使用DATE类型。MySQL用YYYY-MM-DD格式检索和显示DATE值。支持的范围是1000-01-019999-12-31

TIME

MySQL以HH:MM:SS格式检索和显示TIME值(或对于大的小时值采用HHH:MM:SS格式)。

YEAR

YEAR类型是一个单字节类型用于表示年。MySQL以YYYY格式检索和显示YEAR值。范围是1901到2155。

3 表操作

3.1 创建数据表

CREATE TABLE `tb_name` (
  `col_name` 字段类型 [字段约束]
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.2 删除数据表

DROP TABLE 表名;

3.3 清空数据表

TRUNCATE 表名

4 字段操作

4.1 增加字段

ALTER TABLE 表名 ADD COLUMN 列名 字段类型 [约束条件]

4.2 删除字段

ALTER TABLE 表名 DROP COLUMN 列名

4.3 修改字段

修改字段名

ALTER TABLE 表名 CHANGE 原字段名 新字段名 字段类型 [约束条件]

修改字段属性

ALTER TABLE 表名 MODIFY 字段名 字段类型 [约束条件]

上一篇 下一篇

猜你喜欢

热点阅读