订单表 orders(orderkey));实验二 SQL查询操作1.实验目的掌握SQL查询语句的基本语法,包括SELECT、FROM、WHERE子句的使用,以及简单的聚合函数和分组操作。2.实验内容和要求学习如何通过SQL语句从数据库中检索特定信息,如单一字段、多个字段的组合、使用WHERE子句过滤条件、使用聚合函数如SUM、AVG、COUNT、MAX、MIN等进行统计计算,以及使用GROUP BY进行数据分组。3.实验步骤1. 查询所有供应商的名称和电话:SELECT NAME, phone FROM supplier;2. 查询每个国家的平均供应商账户余额:SELECT nation.NAME, AVG(supplier.acctbal) FROM supplier JOIN nation ON supplier.nationkey = nation.nationkey GROUP BY nation.NAME;3. 找出订单总金额大于10000的订单:SELECT orderkey, SUM(totalprice) AS total_amount FROM orders GROUP BY orderkey HAVING total_amount > 10000;实验三 SQL更新与删除操作1.实验目的理解并掌握SQL中的UPDATE和DELETE语句,用于修改和删除数据。2.实验内容和要求学习如何更新单个或多个记录的值,以及如何安全地删除记录。3.实验步骤1. 更新所有零件供应联系表中的供应成本,增加10%:UPDATE partsupp SET supplycost = supplycost * 1.1;2. 删除所有订单状态为'X'的订单记录:DELETE FROM orders WHERE orderstatus = 'X';实验四 视图与索引1.实验目的掌握视图的概念,了解其在数据库设计中的作用,同时理解索引对查询性能的影响。2.实验内容和要求创建视图以简化复杂查询,并创建索引来提高查询速度。3.实验步骤1. 创建一个视图,显示每个国家的平均客户账户余额:CREATE VIEW avg_cust_bal AS SELECT nation.NAME, AVG(customer.acctbal) FROM customer JOIN nation ON customer.nationkey = nation.nationkey GROUP BY nation.NAME;2. 为零件基本表的`partkey`字段创建唯一索引,确保每个零件都有唯一的标识:CREATE UNIQUE INDEX idx_partkey ON part(partkey);实验五 存储过程与触发器1.实验目的了解存储过程和触发器的概念,学习如何编写和调用存储过程,以及如何创建和使用触发器。2.实验内容和要求创建存储过程来批量更新数据,创建触发器来自动跟踪数据变更。3.实验步骤1. 创建一个存储过程,用于批量更新供应商的电话号码:DELIMITER $$ CREATE PROCEDURE update_supplier_phone(IN new_phone CHAR(30)) BEGIN UPDATE supplier SET phone = new_phone; END $$ DELIMITER ;2. 创建一个触发器,每当订单表中的订单状态更改时,记录日志:CREATE TRIGGER order_status_change AFTER UPDATE ON orders FOR EACH ROW WHEN NEW.orderstatus <> OLD.orderstatus INSERT INTO order_log (orderkey, old_status, new_status) VALUES (NEW.orderkey, OLD.orderstatus, NEW.orderstatus);实验六事务处理与并发控制1.实验目的理解事务的基本概念,学习如何使用BEGIN、COMMIT、ROLLBACK语句进行事务管理,以及并发控制中的锁定机制。2.实验内容和要求模拟并发环境中可能出现的问题,学习如何解决这些问题。3.实验步骤1. 在事务中插入一条新订单:BEGIN; INSERT INTO orders (orderkey, custkey, orderstatus, totalprice, orderdate) VALUES (10000, 1, 'O', 100.00, NOW()); COMMIT;2. 使用SELECT ... FOR UPDATE语句锁定记录,避免并发更新冲突:SELECT * FROM customer WHERE custkey = 1 FOR UPDATE;实验七备份与恢复1.实验
- 粉丝: 65
- 资源: 27
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助