案例背景
业务方要上线一批商品,将商品信息数据存储在MySQL数据库中进行管理、查询和分析,小明需要使用SQL(Structured Query Language)完成业务要求的操作。
RDS for MySQL的SQL分类与数据类型
老王:你已经在DMS上连接RDS for MySQL,还做过增删改查,商品信息数据放RDS for MySQL上管理就可以啦。
小明:是的,但我是按照你给的SQL复制粘贴,对于SQL的含义并不是很清楚。
老王:SQL(发音为字母S-Q-L或sequel)的英文全称为Structured Query Language,SQL用来和数据库打交道,完成和数据库的通信。SQL是一套标准,但是每一个数据库都有自己的特性,当使用与这个数据库特性相关的功能,这时SQL语句可能就不是标准了,但是百分之九十以上的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。
DQL
数据查询语言(Data Query Language,简称DQL):DQL用于从数据库中获取数据,进行数据的查询和检索。常用的DQL语句是SELECT。
小明:明白了!DDL主要是用来定义表的结构,比如创建、修改和删除数据库对象,而DML则是用来处理数据库中的实际数据的操作语言。那接下来,我是不是就可以建库、建表、写数据了?
老王:俗话说,磨刀不误砍柴工!学习建表之前,还需要掌握数据类型,MySQL具有丰富的数据类型,这些不需要你都记住,但是都要理解,在建表的时候选择合适的数据类型。
RDS for MySQL的数据类型
老王:数据类型是用来定义数据库中存储数据的格式和属性的规范。不同的数据类型决定了数据在数据库中的存储方式、占用空间以及可以进行的操作。在MySQL中,常见的数据类型包括数值型、字符串型、二进制型、日期型和其他类型。
小明:明白了!数据类型是用来定义数据的格式和属性,比如整数、小数、字符串等。
数值型
MySQL支持多种数值型数据类型,包括整数型、小数型和布尔型。
整数型
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支持多种数据类型,可以根据不同的需求选择合适的数据类型。掌握MySQL的数据类型,对于开发人员来说非常重要,可以提高开发效率,减少错误。
小明:我大概理解了每种类型的使用场景,但是很多都没记住,尤其是取值范围。
老王:学习SQL的最佳方式就是练习,接下来开启建库、建表、读写数据吧!