DML (数据操作)
SELECT:
- 用于从数据库中检索数据。
SELECT column1, column2 FROM table_name WHERE condition;
INSERT:
- 用于向数据库表中插入新的行。
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
UPDATE:
- 用于更新数据库表中的数据。
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
DELETE:
- 用于从数据库表中删除行。
DELETE FROM table_name WHERE condition;
INSERT INTO SELECT:
- 从一个表中选择数据并将其插入到另一个表中。
INSERT INTO table2 (column1, column2) SELECT column1, column2 FROM table1 WHERE condition;
REPLACE:
- 如果行存在,则替换,否则插入新行。
REPLACE INTO table_name (column1, column2) VALUES (value1, value2);
TRUNCATE:
- 快速删除表中的所有数据,但保留表结构。
TRUNCATE TABLE table_name;
UPSERT(MySQL 8.0+):
- 如果行存在,则更新,否则插入新行。
INSERT INTO table_name (column1, column2) VALUES (value1, value2) ON DUPLICATE KEY UPDATE column1 = value1;
数据类型
整数类型:
- 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:单精度浮点数,存储范围较大但精度有限。
- DOUBLE:双精度浮点数,提供更高的精度和范围。
- DECIMAL:用于精确存储小数,可以指定精度和小数位数。
日期和时间类型:
- DATE:存储日期,格式为’YYYY-MM-DD’。
- TIME:存储时间,格式为’HH:MM:SS’。
- DATETIME:存储日期和时间,格式为’YYYY-MM-DD HH:MM:SS’。
- TIMESTAMP:存储时间戳,自动更新为记录插入或更新的时间。
- YEAR:存储年份,可以是2位或4位格式。
字符串类型:
- CHAR:固定长度字符串,最多255个字符。
- VARCHAR:可变长度字符串,最多65535个字符。
- BINARY:固定长度二进制字符串,最多255个字节。
- VARBINARY:可变长度二进制字符串,最多65535个字节。
- TEXT:存储大文本数据,最大长度取决于存储引擎。
- BLOB:存储大二进制数据,最大长度取决于存储引擎。
其他类型:
- ENUM:枚举类型,存储从预定义列表中选择的一个值。
- SET:集合类型,存储从预定义列表中选择的零个或多个。
- JSON:存储JSON格式的数据。