"深入学习MySQL的第十四天,主要探讨了数据控制语言(DCL)以及各种数据类型"
在MySQL数据库管理系统中,DCL(Data Control Language)主要用于管理用户的权限,确保数据的安全性。在今天的课程中,我们学习了如何创建用户、赋予和撤销权限,以及如何处理编码问题。
首先,创建用户是数据库管理的基础。使用`CREATE USER`语句可以创建新的数据库用户,例如创建名为'hhy'的用户,允许其从本地主机('localhost')登录,并设置密码为'123123':
```mysql
CREATE USER 'hhy'@'localhost' IDENTIFIED BY '123123';
```
接着,我们需要为用户分配权限。`GRANT`语句用于赋予用户特定的权限,如允许'hhy'用户在'2113javaee'库中的所有表上执行查询操作:
```mysql
GRANT SELECT ON 2113javaee.* TO 'hhy'@'localhost' IDENTIFIED BY '123123';
```
当用户不再需要某些权限时,可以使用`REVOKE`语句撤销。例如,收回'hhy'用户的查询权限:
```mysql
REVOKE SELECT ON 2113javaee.* FROM 'hhy'@'localhost' IDENTIFIED BY '123123';
```
处理编码问题时,可以使用`SET CHARSET`命令来更改会话的字符集。在示例中,将字符集设置为GBK:
```mysql
SET CHARSET gbk;
```
此外,我们还讨论了MySQL中的各种数据类型,这是理解数据存储和操作的关键。数据类型大致分为以下几类:
1. **数值类型**:包括整型(tinyint, smallint, mediumint, int, bigint)和浮点型(float, double, decimal)。整型根据大小占用不同的字节,浮点型则根据精度(m和d表示的总位数和小数位数)决定存储空间。
- `TINYINT`:1字节,-128到127
- `SMALLINT`:2字节,-32768到32767
- `MEDIUMINT`:3字节,-8388608到8388607
- `INT`:4字节,-2147483648到2147483647
- `BIGINT`:8字节,±9.22*10^18
浮点型中,`FLOAT`和`DOUBLE`用于存储浮点数,`DECIMAL`则保留了更高的精度,存储为字符串形式。
2. **字符类型**:包括固定长度的`CHAR`和可变长度的`VARCHAR`,以及二进制字符串`TINYBLOB`等。
- `CHAR`:0-255字节,长度固定的字符串
- `VARCHAR`:0-255字节,长度可变的字符串,节省存储空间
- `TINYBLOB`:0-255字节,存储不超过255个字符的二进制数据
3. **日期时间类型**:如`DATE`, `TIME`, `DATETIME`, `TIMESTAMP`等,用于记录日期和时间信息。
4. **复合类型**:如`ENUM`和`SET`,用于存储有限的预定义值集合。
掌握这些数据类型对于有效地设计数据库表结构和优化数据存储至关重要。通过深入学习和实践,我们可以更好地管理和操纵MySQL数据库。