
在 MySQL 中,数据库(也称为 schema)是用于存储和组织数据的一种逻辑结构。数据库的创建、修改和删除是数据库管理的基本操作。
在数据库系统中,一条数据存储的过程通常涉及多个步骤,从数据的输入到其在数据库中的持久化存储。
首先,用户或应用程序需要将数据输入到系统中。这可以通过多种方式实现,例如:
在数据被存储之前,通常需要进行验证以确保其准确性和完整性。这包括:
如果数据通过了验证,接下来可能需要进行一些处理,例如:
处理后的数据将被存储到数据库中。这通常涉及以下步骤:
一旦数据被成功存储到数据库中,它将被持久化,即即使数据库系统崩溃或重启,数据也不会丢失(假设使用了适当的备份和恢复策略)。
最后,系统通常会向用户或应用程序提供反馈,表明数据存储操作的成功或失败。此外,还会记录相关的日志信息,以便进行审计、调试和故障排除。
综上所述,数据存储是一个复杂而关键的过程,涉及多个步骤和考虑因素。通过仔细规划和实施这些步骤,可以确保数据的准确性、完整性和安全性。
MySQL中的标识符用于标识数据库、表、列等对象的名称。
以下是一些符合MySQL标识符命名规则的示例:
user、order_items、customer_detailsid、name、email、birth_dateSELECT(注意:这里只是为了演示,实际上不建议这样做)请注意,虽然MySQL允许在必要时使用反引号来避免与保留字的冲突,但过度使用反引号可能会降低代码的可读性和可维护性。因此,在命名时应尽量避免使用保留字,并遵循MySQL的标识符命名规则。
在MySQL中,数据类型用于指定表中列可以存储数据的种类。MySQL支持多种数据类型,包括数值类型、日期和时间类型以及字符串(文本)。
数据类型 | 描述 | 示例 |
|---|---|---|
数值类型 | ||
TINYINT | 非常小的整数 | 127, -128(有符号);0~255, 0~-1(无符号) |
SMALLINT | 小的整数 | 32,767, -32,768(有符号);0~65,535, 0~-1(无符号) |
MEDIUMINT | 中等大小的整数 | 8,388,607, -8,388,608(有符号);0~16,777,215, 0~-1(无符号) |
INT(或INTEGER) | 标准整数 | 2,147,483,647, -2,147,483,648(有符号);0~4,294,967,295, 0~-1(无符号) |
BIGINT | 大的整数 | 9,223,372,036,854,775,807, -9,223,372,036,854,775,808(有符号);0~18,446,744,073,709,551,615, 0~-1(无符号) |
FLOAT | 单精度浮点数 | 3.14159 |
DOUBLE | 双精度浮点数 | 3.141592653589793 |
DECIMAL | 定点数,用于存储精确的小数 | 123.456 |
日期和时间类型 | ||
DATE | 日期值 | ‘2023-10-01’ |
TIME | 时间值 | ‘12:34:56’ |
DATETIME | 日期和时间值 | ‘2023-10-01 12:34:56’ |
TIMESTAMP | 时间戳,通常用于记录行的创建或更新时间 | CURRENT_TIMESTAMP |
YEAR | 年份值 | 2023 |
字符串(文本)类型 | ||
CHAR | 定长字符串 | ‘hello’ |
VARCHAR | 可变长字符串 | ‘hello’ |
TINYTEXT | 非常小的文本字符串 | ‘This is a tiny text.’ |
TEXT | 小文本字符串 | ‘This is a text.’ |
MEDIUMTEXT | 中等大小的文本字符串 | ‘This is a medium text.’ |
LONGTEXT | 大的文本字符串 | ‘This is a very long text.’ |
ENUM | 枚举类型,允许你指定一个值的集合 | ENUM(‘small’, ‘medium’, ‘large’) |
SET | 集合类型,允许你指定一个字符串对象的集合 | SET(‘apple’, ‘banana’, ‘cherry’) |
BINARY | 二进制字符串 | b’010101’ |
VARBINARY | 可变长的二进制字符串 | b’010101’ |
TINYBLOB | 非常小的BLOB | BLOB数据 |
BLOB | 小BLOB | BLOB数据 |
MEDIUMBLOB | 中等大小的BLOB | BLOB数据 |
LONGBLOB | 大的BLOB | BLOB数据 |
JSON | 用于存储JSON格式的数据 | ‘{“name”: “John”, “age”: 30}’ |
请注意,上述表格中的示例数据仅用于说明数据类型,实际存储的数据将取决于列的定义和插入的数据值。此外,MySQL还允许在定义数据类型时指定额外的属性,如字符集、排序规则、是否允许为空以及默认值等。
要创建一个新的数据库,可以使用 CREATE DATABASE 语句。基本语法如下:
CREATE DATABASE [IF NOT EXISTS] database_name;示例:
CREATE DATABASE IF NOT EXISTS my_database;你也可以在创建数据库时指定字符集和排序规则。例如:
CREATE DATABASE my_database
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;要查看当前服务器上的所有数据库,可以使用 SHOW DATABASES 语句:
SHOW DATABASES;MySQL 不提供直接修改数据库名称的语句。但是,你可以通过以下步骤间接地修改数据库名称:
你可以使用 ALTER DATABASE 语句来修改数据库的字符集和排序规则:
ALTER DATABASE database_name
CHARACTER SET new_character_set
COLLATE new_collation;示例:
ALTER DATABASE my_database
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;要删除一个数据库,可以使用 DROP DATABASE 语句。删除数据库将永久删除该数据库中的所有表和数据。基本语法如下:
DROP DATABASE [IF EXISTS] database_name;示例:
DROP DATABASE IF EXISTS my_database;root 用户)执行。CREATE DATABASE 语句创建数据库。SHOW DATABASES 语句查看所有数据库。ALTER DATABASE 语句修改数据库的字符集和排序规则(但无法直接修改数据库名称)。DROP DATABASE 语句删除数据库。