Note/数据库导论/试题/综合案例1——数据表的基本操作.md

211 lines
5.9 KiB
Markdown
Raw Normal View History

2023-08-31 11:30:31 +08:00
# 综合案例1——数据表的基本操作
在全面介绍了MySQL中数据表的各种操作如创建表、添加各类约束查看表结构以及修改和删除表同学们应该掌握这些基本操作为以后的学习打下坚实的基础。在这里给出一个综合案例让同学们全面回顾一下本章的知识要点并通过这些操作来检验自己是否已经掌握了数据表的常用操作。
## 1、案例目的
创建、修改和删除表,掌握数据表的基本操作。
创建数据库company按照表1和表2给出的表结构在company数据库中创建两个数据表offices和employees按照操作过程完成对数据表的基本操作。
### 表1 offices表结构
| 字段名 | 数据类型 | 主键 | 外键 | 非空 | 唯一 | 自增 |
| ---------- | ------------- | ---- | ---- | ---- | ---- | ---- |
| officecode | int10 | 是 | 否 | 是 | 是 | 否 |
| city | int11 | 否 | 否 | 是 | 否 | 否 |
| address | varchar50 | 否 | 否 | 否 | 否 | 否 |
| country | varchar50 | 否 | 否 | 是 | 否 | 否 |
| postalcode | varchar25 | 否 | 否 | 否 | 是 | 否 |
### 表2 employees表结构
| 字段名 | 数据类型 | 主键 | 外键 | 非空 | 唯一 | 自增 |
| -------------- | -------------- | ---- | ---- | ---- | ---- | ---- |
| employeenumber | int11 | 是 | 否 | 是 | 是 | 是 |
| lastname | varchar50 | 否 | 否 | 是 | 否 | 否 |
| firstname | varchar50 | 否 | 否 | 是 | 否 | 否 |
| mobile | varchar25 | 否 | 否 | 否 | 是 | 否 |
| officecode | int10 | 否 | 是 | 是 | 否 | 否 |
| jobtitle | varchar50 | 否 | 否 | 是 | 否 | 否 |
| birth | datetime | 否 | 否 | 是 | 否 | 否 |
| note | varchar255 | 否 | 否 | 否 | 否 | 否 |
| sex | varchar5 | 否 | 否 | 否 | 否 | 否 |
## 2、案例操作过程
### 1登录MySQL数据库。
```mysql
mysql -h local -u root -p
```
截图:
2023-08-31 12:43:36 +08:00
![img](https://lsky.hhdxw.top/imghub/img/wpsD882.tmp.jpg)
2023-08-31 11:30:31 +08:00
### 2创建数据库company并选择使用此数据库。
```mysql
create database company;
use company;
```
截图:
2023-08-31 12:43:36 +08:00
![img](https://lsky.hhdxw.top/imghub/img/wpsD883.tmp.jpg)
2023-08-31 11:30:31 +08:00
### 3创建表offices创建成功后用desc查看表结构。
```mysql
create table offices(
officecode int(10) not null unique primary key,
city int(11) not null ,
address varchar(50) null ,
country varchar(50) not null,
postalcode varchar(25) null unique
);
desc offices;
```
截图:
2023-08-31 12:43:36 +08:00
![img](https://lsky.hhdxw.top/imghub/img/wpsD884.tmp.jpg)
2023-08-31 11:30:31 +08:00
### 4创建表employees创建成功后用desc查看表结构。
```mysql
create table employees(
employeenumber int(11) not null unique auto_increment primary key,
lastname varchar(50) not null,
firstname varchar(50) not null,
mobile varchar(25) null unique,
officecode int(10) not null ,
birth datetime not null,
note varchar(255) null,
sex varchar(5) null,
foreign key(officecode) references offices(officecode)
);
```
截图:
2023-08-31 12:43:36 +08:00
![image-20220308170243379](https://lsky.hhdxw.top/imghub/img/image-20220308170243379.png)
2023-08-31 11:30:31 +08:00
### 5使用show tables命令查看数据库中的表。
```mysql
show tables
```
截图:
2023-08-31 12:43:36 +08:00
![image-20220308170414341](https://lsky.hhdxw.top/imghub/img/image-20220308170414341.png)
2023-08-31 11:30:31 +08:00
### 6将表employees的mobile字段修改到officecode字段后面成功后使用desc查看修改后的表结构。
```mysql
alter table employees modify mobile varchar(25) after officecode;
desc employees;
```
截图:
2023-08-31 12:43:36 +08:00
![image-20220308170720963](https://lsky.hhdxw.top/imghub/img/image-20220308170720963.png)
2023-08-31 11:30:31 +08:00
### 7将表employees的birth字段名改为employee_birth成功后使用desc查看修改后的表结构。
```mysql
alter table employees change birth employees_birth datetime;
desc employees;
```
截图:
2023-08-31 12:43:36 +08:00
![image-20220308171008325](https://lsky.hhdxw.top/imghub/img/image-20220308171008325.png)
2023-08-31 11:30:31 +08:00
### 8修改sex字段数据类型为char(1)非空约束成功后使用desc查看修改后的表结构。
```mysql
alter table employees modify sex char(1) not null;
desc employees;
```
截图:
2023-08-31 12:43:36 +08:00
![image-20220308171528384](https://lsky.hhdxw.top/imghub/img/image-20220308171528384.png)
2023-08-31 11:30:31 +08:00
### 9删除字段note成功后使用desc查看修改后的表结构。
```mysql
alter table employees drop note;
desc employees;
```
截图:
2023-08-31 12:43:36 +08:00
![image-20220308171326509](https://lsky.hhdxw.top/imghub/img/image-20220308171326509.png)
2023-08-31 11:30:31 +08:00
### 10增加字段名favoriate_activity数据类型为varchar(100) 成功后使用desc查看修改后的表结构。
```mysql
alter table employees add favoriate_activity varchar(100);
desc employees;
```
截图:
2023-08-31 12:43:36 +08:00
![image-20220308171746485](https://lsky.hhdxw.top/imghub/img/image-20220308171746485.png)
2023-08-31 11:30:31 +08:00
### 11删除表offices操作成功后用show tables查看数据库中的表。
```mysql
drop table offices;
alter table employees drop foreign key employees_ibfk_1;
drop table offices;
show tables;
```
截图:
2023-08-31 12:43:36 +08:00
![image-20220308172132982](https://lsky.hhdxw.top/imghub/img/image-20220308172132982.png)
2023-08-31 11:30:31 +08:00
### 12修改表employees存储引擎为myisam执行成功后用show create table语句查看表结构。
```mysql
alter table employees engine = myisam;
show create table employees;
```
截图:
2023-08-31 12:43:36 +08:00
![image-20220308172645359](https://lsky.hhdxw.top/imghub/img/image-20220308172645359.png)
2023-08-31 11:30:31 +08:00
### 13将表employees名称修改为employees_info执行成功后用show tables查看数据库中的表。
```mysql
alter table employees rename employees_info;
show tables;
```
截图:
2023-08-31 12:43:36 +08:00
![image-20220308172838692](https://lsky.hhdxw.top/imghub/img/image-20220308172838692.png)