首页 / 数据库原理与应用 / MySQL数据库管理

第9章 MySQL数据库管理

9.1 用户管理

-- 创建用户 CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password123'; -- 授权 GRANT SELECT, INSERT ON school.* TO 'testuser'@'localhost'; -- 刷新权限 FLUSH PRIVILEGES; -- 撤销权限 REVOKE INSERT ON school.* FROM 'testuser'@'localhost'; -- 查看用户权限 SHOW GRANTS FOR 'testuser'@'localhost';

9.2 索引(Index)

索引是加速数据查询的数据结构,类似于书的目录。常用类型:

  • 普通索引(INDEX):最基本的索引,无约束
  • 唯一索引(UNIQUE INDEX):值必须唯一
  • 主键索引(PRIMARY KEY):特殊的唯一索引,且不能为NULL
-- 创建索引 CREATE INDEX idx_name ON student(sname); -- 查看索引 SHOW INDEX FROM student; -- 删除索引 DROP INDEX idx_name ON student;

注意:索引不是越多越好,索引会降低INSERT/UPDATE/DELETE的效率,且占用存储空间。

9.3 视图(View)

视图是基于查询结果的虚拟表,可以简化复杂查询,提高安全性。

-- 创建视图 CREATE VIEW v_student_grade AS SELECT s.sno, s.sname, c.cname, sc.grade FROM student s JOIN sc ON s.sno=sc.sno JOIN course c ON sc.cno=c.cno; -- 查询视图(像查表一样) SELECT * FROM v_student_grade WHERE sname='张三'; -- 删除视图 DROP VIEW v_student_grade;

视图中的数据不是实际存储的,每次查询视图时都会执行其定义的SELECT语句。

自学自检小问题

  1. 索引的作用是什么?是不是索引越多越好?
  2. 视图和表有什么区别?视图中的数据可以修改吗?
  3. 如何给一个用户只授予查询权限?
第9章 基础巩固练习
0/5
第1题 选择题
创建MySQL用户的命令是( )
ADD USER
CREATE USER
NEW USER
INSERT USER
答案解析
正确答案:B(CREATE USER)。语法:CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
第2题 选择题
索引的作用是( )
节省存储空间
['加速数据查询']
保证数据完整性
限制数据类型
答案解析
正确答案:B(加速数据查询)。索引类似于书的目录,可以加快查找速度。
第3题 选择题
视图是( )
实际存储数据的表
['基于查询结果的虚拟表']
数据库的备份
一种索引
答案解析
正确答案:B(基于查询结果的虚拟表)。视图不实际存储数据,每次查询时执行定义的SQL。
第4题 选择题
授权用户查询权限的命令是( )
ALLOW SELECT
GRANT SELECT
PERMIT SELECT
GIVE SELECT
答案解析
正确答案:B(GRANT SELECT)。语法:GRANT 权限 ON 数据库.表 TO 用户;
第5题 选择题
关于索引,以下说法正确的是( )
索引越多越好
['索引会降低写入效率']
索引不需要维护
所有字段都应该建索引
答案解析
正确答案:B。索引虽然加快查询,但会降低INSERT/UPDATE/DELETE效率,且占用存储空间。
0/0