第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语句。
自学自检小问题
- 索引的作用是什么?是不是索引越多越好?
- 视图和表有什么区别?视图中的数据可以修改吗?
- 如何给一个用户只授予查询权限?
拓展学习资源
第9章 基础巩固练习
0/5
第1题
选择题
创建MySQL用户的命令是( )
答案解析
正确答案:B(CREATE USER)。语法:CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
第2题
选择题
索引的作用是( )
答案解析
正确答案:B(加速数据查询)。索引类似于书的目录,可以加快查找速度。
第3题
选择题
视图是( )
答案解析
正确答案:B(基于查询结果的虚拟表)。视图不实际存储数据,每次查询时执行定义的SQL。
第4题
选择题
授权用户查询权限的命令是( )
答案解析
正确答案:B(GRANT SELECT)。语法:GRANT 权限 ON 数据库.表 TO 用户;
第5题
选择题
关于索引,以下说法正确的是( )
答案解析
正确答案:B。索引虽然加快查询,但会降低INSERT/UPDATE/DELETE效率,且占用存储空间。
0/0