用MySQL workbench完成 写出具体过程
时间: 2024-10-25 13:13:28 浏览: 28
### 使用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;
```
通过以上步骤,你可以完成数据库的创建、表的创建和修改、数据的插入以及表的删除等操作。希望这些步骤对你有所帮助。如果有任何问题或需要进一步的帮助,请随时联系我。
阅读全文