MySQL 学习笔记 知识点二

本贴最后更新于 1576 天前,其中的信息可能已经渤澥桑田

1. 数据类型

在 MySQL 中,可用的数据类型共分为四个主要类别:

  • 数值 数字值(整数、浮点、定点数、位字段值)
  • 字符 文本字符串
  • 二进制 二进制数据字符串
  • 时间 时间和日期

ABC 的数据类型 ??

  • A) Apt
  • B) Brief
  • C) Complete

1.1 数值数据类型

为了保存数值数据,MySQL 提供以下类型:
– 整数类型:保存整数数字
– 浮点类型:保存近似数值数据
– 定点类型:保存精确数值
– 位类型:保存位字段数值

当选择一个数值数据类型时,应考虑以下因素:
– 数据类型数值的范围
– 列值所需要的存储空间数量
– 列的精度和标度(适用于浮点和定点数)

a. 整数类型

以下列表是 MySQL 支持的整数数据类型:
– TINYINT
– SMALLINT
– MEDIUMINT
– INT 或 INTEGER
– BIGINT
• 例如:
Population INT(11)

b. 浮点类型

浮点数据类型包括 FLOAT 和 DOUBLE。它们都被用来表示近似数值数据,包含整数部分、小数部分或二者都有。
– FLOAT
– DOUBLE
对于 FLOAT 和 DOUBLE,如果列可以为 NULL,则缺省值是 NULL,如果列不能为 NULL,其缺省值是 0。
FLOAT 数据类型可以用以下不同的表示法来指定:
– 不指定精度:FLOAT
– 使用二进制精度:FLOAT (M)
– 指定总的数字位数与小数部分的数字位数:FLOAT (D,F)
– 没有任何精度:DOUBLE
– 指定数值的位数与小数部分位数:DOUBLE(D,F)
例如:
GDP FLOAT(10,2)

c. 定点类型

  • 定点数据类型是 DECIMAL,它被用来保存精确数值。它们包含整数部分、小数部分或二者都有。
  • DECIMAL 数据类型用下列语法定义:
    DECIMAL(P,S)
    例如:
    cost DECIMAL(10,2)
  • 在 MySQL 中,NUMERIC 数据类型与 DECIMAL 是相同的类型。

d. BIT 类型

  • BIT 数据类型表示位字段值。BIT 列制定了每个值所需要的位数,从 1 到 54 位。
    例如:
    bit_col1 BIT(4)
    bit_col2 BIT(20)
  • BIT 列可以用数字表达式复制。例如,b'1111'等于 15,b'1000000'等于 64。

1.2 字符串数据类型

以下列出了 MySQL 提供的字符串数据类型。所有这些
类型都可用于保存非结构化格式的字符串:
– CHAR 固定长度字符串(固定长度不论是否需要全部占用)
– VARCHAR 可变长度字符串(设定允许最大长度,只占用实际长度)
– TEXT 可变长度字符串
文本类型由一组非结构化的、可变长度的字符串组成,它最适合于存储访问频率低且相当大的字符串。
– TINYTEXT
– TEXT
– MEDIUMTEXT
– LONGTEXT

MySQL 还定义了两种结构化字符串类型:
– ENUM 由一组固定的有效值组成的枚举
语法:ENUM('value1','value2',...,'valueN')
eg: Continent ENUM('Asia', 'Europe', 'North Americal', 'Africa', 'Oceania', 'Antarctica', 'South American')
– SET 由一组固定的有效值组成的集合。可以从给定的列表中选择将多个值组合为一个有效的值。
语法:SET(‘value1’,…,‘valueN’)

1.3 二进制类型

BLOB(Binary Large Object)二进制大对象是一种可变长度的非结构化的二进制数据集合。通常的,BLOB 是图像、语音或其他多媒体对象。
MySQL 支持的 BLOB 类型有以下几种:
– TINYBLOB
– BLOB
– MEDIUMBLOB
– LONGBLOB

1.4 时间数据类型

MySQL 提供了用来存储不同类型时间信息的数据类型。

类型 字节数 最小值 最大值
DATE 3 1000-01-01 9999-12-31
TIME 3 -838:59:59 838:59:59
DATETIME 8 1000-01-01 00:00:00 9999-12-31 00:00:00
TIMESTAMP 4 1970-01-01 00:00:00
YEAR(2) 1 (19)70 (20)69
YEAR(4) 1 1901 2155

1.5 NULL 的含义

在 SQL 中,NULL 值是一个特殊的值,表示无法计算或未知的值。
对于可为 NULL 的列,出现 NULL 值有不同的含义。所有原因都可以归为两类:未知/不可用。
在 MySQL 中,列缺省是可以为 NULL 的(除了 TIMESTAMP 列,主键列也不能为 NULL),除非特定声明它不能为 NULL。
eg:‘IsOfficial’ ENUM(‘T’, ‘F’) NOT NULL DEFAULT ‘F’

2. 基础语句

数据定义语言(DDL)


                
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    574 引用 • 3533 回帖
  • 笔记

    好记性不如烂笔头。

    308 引用 • 793 回帖
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    692 引用 • 535 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...