MySQL是一款广泛使用的关系型数据库管理系统,开源、免费且跨平台,常用于存储、管理和检索结构化数据,并通过SQL语言支持高效的数据操作与管理。
文章目录
- 何为SQL
- SQL分类
- DDL
- DML
- DCL
- TCL
- DQL
- MySQL的数据类型
- 数值型
- 日期型
- 字符串型
- 二进制型
- 其他类型
何为SQL
在MySQL中提到的“SQL”指的是“结构化查询语言”(Structured Query Language)。MySQL是一个关系型数据库管理系统(RDBMS),而SQL是用于与这种类型的数据库交互的标准语言。通过SQL,用户可以执行以下操作:数据定义、数据查询、数据操作、数据控制等操作。
在MySQL的上下文中,SQL是用户与MySQL数据库系统之间进行通信的关键工具,用于执行所有核心的数据库功能。MySQL实现了SQL标准,并在此基础上扩展了一些特定于MySQL的功能和语法。
SQL分类
SQL语句分为DQL、DML、DDL、DCL和TCL五大类。
DDL
数据定义语言(Data Definition Language,简称DDL):DDL用于定义数据库的结构,包括创建、修改和删除数据库、表、索引、视图等元素。常用的DDL语句包括CREATE、ALTER和DROP,也是我们常说的创建、删除、修改对象。
DML
数据操作语言(Data Manipulation Language,简称DML):DML用于对数据库中的数据进行操作,包括插入、更新和删除数据。常用的DML语句包括SELECT、INSERT、UPDATE和DELETE,通俗一点就是对数据的增删改查操作。
DCL
数据控制语言(Data Control Language,简称DCL):DCL用于控制数据库中数据的访问权限和数据完整性的约束,包括授权和回收权限、创建用户和角色等。常用的DCL语句包括GRANT和REVOKE。对用户的权限管理、事务管理,就需要用到数据控制语句。
TCL
事务控制语言(Transaction Control Language,简称TCL):TCL用于控制事务的提交和回滚,保证数据库的一致性和完整性。常用的TCL语句包括COMMIT和ROLLBACK。COMMIT和ROOLBACK都是需要特别注意风险控制的。
DQL
数据查询语言(Data Query Language,简称DQL):DQL用于从数据库中获取数据,进行数据的查询和检索。常用的DQL语句是SELECT。也是我使用最多的语句。
MySQL的数据类型
在MySQL中,常见的数据类型包括数值型、字符串型、二进制型、日期型和其他类型。
数值型
MySQL支持多种数值型数据类型,包括整数型、小数型和布尔型。
整数型
整数类型:如TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT等,用于存储整数值。
类型 | 描述 |
---|---|
TINYINT | 1字节,取值范围为-128到127或0到255。 |
SMALLINT | 2字节,取值范围为-32768到32767或0到65535。 |
MEDIUMINT | 3字节,取值范围为-8388608到8388607或0到16777215。 |
INT | 4字节,取值范围为-2147483648到2147483647或0到4294967295。 |
BIGINT | 8字节,取值范围为-9223372036854775808到9223372036854775807或0到18446744073709551615。 |
小数型
小数型:用于存储带有小数部分的数值。
类型 | 描述 |
---|---|
FLOAT | 4字节,单精度浮点数,精度为7位。 |
DOUBLE | 8字节,双精度浮点数,精度为15位。 |
DECIMAL | 可变长度,用于存储精确的小数,精度和数据长度可以自定义。 |
布尔型
MySQL支持布尔型数据类型,即BOOLEAN或BOOL。它只占用1位,取值为TRUE或FALSE。
日期型
类型 | 描述 |
---|---|
DATE | 用于存储日期,格式为YYYY-MM-DD。 |
TIME | 用于存储时间,格式为HH:MM:SS。 |
DATETIME | 用于存储日期时间,格式为YYYY-MM-DD HH:MM:SS。 |
TIMESTAMP | 用于存储时间戳,格式为YYYY-MM-DD HH:MM:SS。 |
YEAR | 用于存储年份,格式为YYYY。 |
字符串型
类型 | 描述 |
---|---|
CHAR | 用于存储固定长度的字符串,长度为0到255个字符。 |
VARCHAR | 用于存储可变长度的字符串,长度为0到65535个字符。 |
TEXT | 用于存储大量的文本数据,最大长度为65535个字符。 |
BLOB | 用于存储大量的二进制数据,最大长度为65535个字节。 |
ENUM | 用于存储枚举类型的数据,如性别、状态等。 |
二进制型
类型 | 描述 |
---|---|
BIT | 用于存储比特位,长度为1到64个比特位。 |
BINARY | 用于存储固定长度的二进制数据,长度为0到255个字节。 |
VARBINARY | 用于存储可变长度的二进制数据,长度为0到65535个字节。 |
其他类型
类型 | 描述 |
---|---|
SET | 用于存储一组可选值,最多可以有64个选项。 |
JSON | 用于存储JSON格式的数据。 |
Geometry | 用于存储几何类型的数据,如点、线、面等。 |
每种数据类型都有其特定的存储需求、占用空间大小和允许的操作。正确地为数据选择合适的数据类型是数据库设计关键点之一,为数据选择合适的数据类型有助于确保数据的准确性、完整性,并且有利于优化查询性能和存储效率。
MySQL作为广泛使用的开源关系型数据库管理系统,用户可以免费下载、使用和修改其源代码,可以在多种操作系统平台上运行,包括Windows、Linux、Mac OS等,所以适用于大多数Web应用、中小型项目以及部分大型项目,但针对特定的复杂业务场景或高度垂直化的行业需求,可能需要根据具体情况进行权衡和定制化调整。