一、实验目的: 理解SQL数据库查询语言的基本概念和用法。 学会从数据库中检索、过滤和分析数据。 熟练使用SQL语句执行各种数据查询任务。 练习数据分析和报告生成。 实验的预习和准备工作。 二、预习数据库基本知识: 理解什么是数据库、表、列和行。 学习SQL查询语言的基本语法,包括SELECT、FROM、WHERE、GROUP BY等关键字。 理解SQL查询的结果集和如何从中提取所需的信息。 安装数据库管理系统,确保数据库服务正在运行,并能够连接到数据库。 三、实验报告要求: 1、 修改“employee “员工表中“emplid”员工号数据类型为“char(10)”,修改“deptid”部门号数据类型为“char(20)”。根据表1-表5的表结构和样本数据创建“员工表”、 “订单表”、“订单详细表” 、“商品表”和“部门表”。 2、添加自己的个人信息到表最后一行(其中:员工号为学号后四位,部门号为班级号,工资在3500元至5000元之间) 3、进行如下实验: (1)对 sales 数据库中的 employee 表,查询所有员工的员工号、姓名和部门号。 (2)对employee 表查询emplid, emplname, ses, deptid列,并将结果中各列的标题分别修改为员工号、姓名、性别和部门号。 (3)对employee 表,列出员工的姓名和性别,并列出其所属部门号,在记录中,1表示属于该部门,0表示不属于该部门。 (4)对emploee表,列出月工资在3500元至5000元之间的员工。 (5)对 employee 表,列出部门号为D002、D003、D004的员工。 (6)对 employee 表,列出和自己同姓的员工。 (7)列出D001部门员工的最高工资、最低工资、平均工资。 (8)列出部门号为D001的员工总人数。 (9)统计各部门的平均工资和人数。 (10)统计各部门男员工和女员工的人数。 四、代码及实验截图:
时间: 2025-06-25 10:00:45 浏览: 9
### 如何使用SQL语句修改表结构
在SQL中,`ALTER TABLE` 是用于修改现有表结构的关键字。通过该命令可以实现多种操作,例如修改字段的数据类型、重命名字段以及调整其他属性。
以下是具体方法:
#### 修改字段数据类型
假设有一个名为 `employees` 的表,其中包含两个字段 `emplid` 和 `deptid`。现在需要将 `emplid` 改为 `CHAR(10)` 类型,`deptid` 改为 `CHAR(20)` 类型,则可以通过以下 SQL 语句完成此任务[^1]:
```sql
ALTER TABLE employees MODIFY emplid CHAR(10);
ALTER TABLE employees MODIFY deptid CHAR(20);
```
以上两条语句分别完成了对 `emplid` 和 `deptid` 数据类型的修改。
---
### 插入个人信息到员工表
向已有的表中插入新记录通常会用到 `INSERT INTO` 命令。假设有如下需求:向 `employees` 表中插入一条新的员工信息,其字段包括 `emplid`, `name`, `salary`, 和 `deptid`。则可编写如下 SQL 语句来完成插入操作[^4]:
```sql
INSERT INTO employees (emplid, name, salary, deptid) VALUES ('E001', 'John Doe', 5000, 'D001');
```
这条语句表示向 `employees` 表中新增了一位名叫 John Doe 的员工,他的薪资为 $5000,并隶属于部门 ID 为 `D001` 的部门。
---
### 执行复杂查询任务
#### 按条件过滤数据
为了筛选特定条件下的数据,可以利用 `SELECT ... WHERE` 子句。比如,我们希望找出所有工资超过 6000 的员工名单及其所属部门ID,可以用下面的 SQL 查询语句[^4]:
```sql
SELECT emplid, name, salary, deptid FROM employees WHERE salary > 6000;
```
#### 重命名列标题
当执行查询时,可能需要临时改变某些列显示的名字以便更直观理解结果集中的含义。这可通过 `AS` 关键词达成。例如,在上面的例子基础上进一步美化输出结果:
```sql
SELECT emplid AS Employee_ID, name AS Full_Name, salary AS Monthly_Salary, deptid AS Department_Code
FROM employees WHERE salary > 6000;
```
这里我们将原始列名替换成了更具描述性的别名。
#### 统计部门工资信息
对于汇总分析类的任务,如计算各部门总薪酬支出情况,需要用到聚合函数配合 GROUP BY 子句共同作用。示例代码如下所示[^4]:
```sql
SELECT deptid, SUM(salary) AS Total_Department_Salary FROM employees GROUP BY deptid ORDER BY Total_Department_Salary DESC;
```
这段脚本不仅实现了按部门分类求和的功能,还按照总计金额降序排列最终得到的结果集合。
---
### 性能优化注意事项
针对大规模数据检索场景下可能出现的速度瓶颈问题,合理设计索引策略至关重要。特别是涉及分页读取大量连续记录的情况下,应尽量减少不必要的偏移量运算开销。推荐做法之一就是引入辅助列保存最近访问批次标记值从而加速后续定位过程;另外也可以考虑借助覆盖索引来预先锁定目标范围内的候选对象群组进而降低全表扫描频率[^5].
---
阅读全文
相关推荐

















