使用mysql workbench进行数据表操作实验总结
时间: 2023-05-23 11:07:07 浏览: 311
A:MySQL Workbench是一款官方提供的免费数据库管理工具,能够方便地进行数据库设计、建模、管理和查询等操作,并且非常适合初学者使用。
在使用MySQL Workbench进行数据表操作的实验过程中,需要遵循以下步骤:
1. 连接数据库:通过MySQL Workbench连接到要操作的数据库,输入正确的主机名、用户名和密码等参数,建立连接。
2. 创建数据表:通过MySQL Workbench提供的数据建模工具,可以自定义表的结构和字段、设置约束条件和默认值等属性,创建数据表。
3. 插入数据:在查询面板中执行INSERT INTO语句,可以向指定的数据表中插入数据。
4. 更新数据:使用UPDATE语句,可以修改数据表中的已有数据。
5. 删除数据:使用DELETE语句,可以删除数据表中的指定数据。
6. 查询数据:使用SELECT语句,可以通过多种条件对数据表进行筛选、排序等操作,得到需要的数据结果。
在实验过程中,需要掌握数据库的基本概念,如表、字段、主键、外键、索引等,并且需要熟悉MySQL Workbench提供的各种功能和操作方式。同时,还需要注意数据表的设计合理性和数据操作的规范性,以保证数据库的性能和数据的完整性、一致性和安全性。
相关问题
用MySQL workbench完成 写出具体过程
### 使用MySQL Workbench完成实验的具体过程
#### 1. 启动MySQL Workbench
1. 打开MySQL Workbench应用程序。
2. 在欢迎界面,点击“MySQL Connections”下的“+”按钮,添加一个新的连接。
3. 输入连接名称(如“Localhost”),主机名为“localhost”,端口号为“3306”,用户名为你在MySQL服务器上的用户名(通常是“root”),密码为对应的密码。
4. 点击“Test Connection”测试连接是否成功。
5. 如果连接成功,点击“OK”保存连接设置。
6. 双击刚刚创建的连接,进入MySQL Workbench的主界面。
#### 2. 登录MySQL Workbench
1. 进入MySQL Workbench后,你会看到一个SQL编辑器窗口。
2. 在左侧的导航栏中,可以看到所有的数据库和表。
3. 如果需要切换到其他数据库,可以在SQL编辑器中输入 `USE database_name;` 并运行该命令。
#### 3. 创建数据库
1. 在SQL编辑器中输入以下SQL语句来创建一个以自己“姓名拼音”命名的数据库:
```sql
CREATE DATABASE linfeiyu;
```
2. 运行上述SQL语句。
3. 在左侧的导航栏中,刷新列表,确认新的数据库已经创建成功。
#### 4. 创建表
1. 选择刚创建的数据库作为当前数据库:
```sql
USE linfeiyu;
```
2. 创建学生信息表 `student`:
```sql
CREATE TABLE student (
sno CHAR(8) NOT NULL,
sname VARCHAR(20) NOT NULL UNIQUE,
ssex CHAR(2),
sbirthdate DATE,
smajor VARCHAR(40),
PRIMARY KEY (sno)
);
```
3. 创建课程表 `course`:
```sql
CREATE TABLE course (
cno CHAR(5) NOT NULL,
cname VARCHAR(40) NOT NULL,
ccredit SMALLINT,
cpno CHAR(5),
PRIMARY KEY (cno),
FOREIGN KEY (cpno) REFERENCES course(cno)
);
```
4. 创建学生选课表 `sc`:
```sql
CREATE TABLE sc (
sno CHAR(11) NOT NULL,
cno CHAR(3) NOT NULL,
grade SMALLINT CHECK (grade BETWEEN 0 AND 100),
semester CHAR(5),
teachingclass CHAR(8),
PRIMARY KEY (sno, cno),
FOREIGN KEY (sno) REFERENCES student(sno),
FOREIGN KEY (cno) REFERENCES course(cno)
);
```
#### 5. 查看数据库和表
1. 查看当前MySQL服务实例上已创建的数据库:
```sql
SHOW DATABASES;
```
2. 选择“linfeiyu”数据库为当前数据库:
```sql
USE linfeiyu;
```
3. 查看当前数据库中已创建的表:
```sql
SHOW TABLES;
```
4. 显示 `student` 表的结构信息:
```sql
DESCRIBE student;
```
#### 6. 修改表结构和完整性约束
1. 将 `course` 表的 `cname` 列的数据类型改为 `VARCHAR(50)`:
```sql
ALTER TABLE course MODIFY cname VARCHAR(50);
```
2. 为 `student` 表增加一个新列 `totalcredit`:
```sql
ALTER TABLE student ADD totalcredit INT DEFAULT NULL;
```
3. 删除 `student` 表中的列 `totalcredit`:
```sql
ALTER TABLE student DROP COLUMN totalcredit;
```
#### 7. 向数据表中插入数据
1. 向 `student` 表插入数据:
```sql
INSERT INTO student (sno, sname, ssex, sbirthdate, smajor) VALUES ('20231063148', '林飞宇', '男', '2001-01-01', '计算机科学与技术');
```
2. 按照外键约束要求,向 `course` 表插入数据:
```sql
-- 插入没有先修课的课程
INSERT INTO course (cno, cname, ccredit, cpno) VALUES ('C0001', '数据库原理', 4, NULL);
-- 插入有先修课的课程
INSERT INTO course (cno, cname, ccredit, cpno) VALUES ('C0002', '数据结构', 4, 'C0001');
```
3. 向 `sc` 表插入数据:
```sql
INSERT INTO sc (sno, cno, grade, semester, teachingclass) VALUES ('20231063148', 'C0001', 90, '2023-1', '001');
```
#### 8. 删除数据表
1. 直接删除 `student` 表是否会成功?
- **不能**直接删除 `student` 表,因为 `sc` 表中有引用 `student` 表的外键。
- SQL 语句:
```sql
DROP TABLE student;
```
- 错误信息会提示存在外键约束。
2. 先删除 `sc` 表再删除 `student` 表是否会成功?
- **可以**先删除 `sc` 表,然后再删除 `student` 表。
- SQL 语句:
```sql
DROP TABLE sc;
DROP TABLE student;
```
通过以上步骤,你可以完成数据库的创建、表的创建和修改、数据的插入以及表的删除等操作。希望这些步骤对你有所帮助。如果有任何问题或需要进一步的帮助,请随时联系我。
用MySQL Workbench 完成,写出具体过程和代码
### 使用 MySQL Workbench 完成数据库安全管理实验的具体过程和代码
#### 一、实验目的
1. 掌握 MySQL 数据库的自主存取控制机制。
2. 掌握创建用户、修改密码、删除用户等用户管理功能。
3. 掌握对用户授予或收回权限的权限管理功能。
4. 掌握利用数据库角色简化授权管理操作的方法。
#### 二、实验平台
- **硬件配置**:
- 处理器:Intel(R) Core(TM)i5-13500HX 2.5GHz
- 内存:16.0GB
- **软件配置**:
- 操作系统:Windows 11
- 数据库:MySQL 8.0 及 MySQL Workbench
#### 三、实验内容
##### 1. 创建登录用户
1. **创建用户**:
```sql
USE linyufei; -- 将数据库名换成自己的姓名拼音
CREATE USER 'huangxiaoming'@'localhost' IDENTIFIED BY '123456';
```
2. **验证用户**:
- 在 MySQL Workbench 中,选择 "Database" -> "Connect to Database"。
- 在 "Connect to Database" 窗口中,输入 "Stored Connection" 和 "Username" 为 "huangxiaoming",点击 "OK"。
- 在 "Connect to MySQL Server" 窗口中,输入黄晓明的登录密码,点击 "OK"。
##### 2. 修改用户密码
```sql
SET PASSWORD FOR 'huangxiaoming'@'localhost' = 'newpassword';
```
##### 3. 检验用户查询权限
```sql
SELECT * FROM student;
```
- 分析:黄晓明用户默认没有查询权限,因此会报错。
##### 4. 授予用户查询权限
```sql
GRANT SELECT ON linyufei.student TO 'huangxiaoming'@'localhost';
```
##### 5. 再次检验用户查询权限
```sql
SELECT * FROM student;
```
- 分析:此时黄晓明用户应该能够成功查询 `student` 表。
##### 6. 检验用户插入权限
```sql
INSERT INTO student (Sno, Sname, Ssex, Sbirthdate, Smajor)
VALUES ('20180033', '王宁', '男', '2000-5-28', '信息安全');
```
- 分析:黄晓明用户默认没有插入权限,因此会报错。
##### 7. 授予用户插入和删除权限
```sql
GRANT INSERT, DELETE ON linyufei.student TO 'huangxiaoming'@'localhost' WITH GRANT OPTION;
```
##### 8. 再次检验用户插入权限
```sql
INSERT INTO student (Sno, Sname, Ssex, Sbirthdate, Smajor)
VALUES ('20180033', '王宁', '男', '2000-5-28', '信息安全');
```
- 分析:此时黄晓明用户应该能够成功插入数据。
##### 9. 利用视图和授权实现安全控制
1. **创建视图**:
```sql
CREATE VIEW csView AS
SELECT s.Sno, s.Sname, c.Cno, c.Cname, sc.Grade, sc.Term
FROM student s
JOIN sc ON s.Sno = sc.Sno
JOIN course c ON sc.Cno = c.Cno
WHERE s.Smajor = '计算机科学与技术';
```
2. **授予视图查询权限**:
```sql
GRANT SELECT ON linyufei.csView TO 'huangxiaoming'@'localhost';
```
##### 10. 检验视图查询权限
```sql
SELECT * FROM sc;
SELECT * FROM csView;
```
- 分析:黄晓明用户能够查询 `csView`,但不能查询 `sc` 表。
##### 11. 收回用户删除权限
```sql
REVOKE DELETE ON linyufei.student FROM 'huangxiaoming'@'localhost';
```
##### 12. 创建角色并授予权限
1. **创建角色**:
```sql
CREATE ROLE CourseAdmin;
```
2. **授予角色权限**:
```sql
GRANT SELECT, INSERT, DELETE, UPDATE ON linyufei.course TO CourseAdmin;
```
##### 13. 测试角色权限
```sql
SELECT * FROM course;
```
- 分析:黄晓明用户没有 `CourseAdmin` 角色,因此无法查询 `course` 表。
##### 14. 授予角色给用户
```sql
GRANT CourseAdmin TO 'huangxiaoming'@'localhost';
```
##### 15. 再次测试角色权限
```sql
SELECT * FROM course;
```
- 分析:此时黄晓明用户应该能够成功查询 `course` 表。
#### 四、实验总结
1. **做什么**:
- 创建和管理数据库用户。
- 授予和收回用户权限。
- 利用视图和角色简化权限管理。
2. **用什么技术**:
- MySQL 数据库。
- MySQL Workbench。
3. **怎么做**:
- 使用 SQL 语句创建用户、修改密码、授予和收回权限。
- 利用视图和角色实现细粒度的权限控制。
4. **做成怎么样**:
- 成功创建了用户并管理了其权限。
- 利用视图和角色实现了安全控制。
5. **学到了什么**:
- 掌握了 MySQL 的用户管理和权限控制机制。
- 了解了视图和角色在权限管理中的应用。
阅读全文