ORACLE 10G数据库练习题 (oracle10g数据库习题)
Oracle 10G是一个广泛使用的关系型数据库管理系统。它通过可扩展性、可靠性和高性能来提供数据存储和访问的解决方案。为了深入理解Oracle 10G,我们需要进行一些练习题,从而更好地掌握Oracle 10G的技能。
以下是一些针对Oracle 10G数据库的练习题,帮助你提高你的技能并检查你的理解能力。
练习题1:创建表
在Oracle 10G中创建一个名为“employees”的表。该表应具有以下属性:
| EmployeeID | FirstName | LastName | Eml | HireDate |
其中,EmployeeID,FirstName和LastName应该使用VARCHAR2数据类型,Eml应该使用VARCHAR2(50)数据类型,HireDate应该使用DATE数据类型。
答案:
CREATE TABLE employees (
EmployeeID VARCHAR2(10),
FirstName VARCHAR2(30),
LastName VARCHAR2(30),
Eml VARCHAR2(50),
HireDate DATE
);
练习题2:插入数据
在employees表中插入以下数据:
| EmployeeID | FirstName | LastName | Eml | HireDate |
| 1 | John | Smith | john@abc.com | 01-JAN-02 |
| 2 | Jane | Doe | jane@abc.com | 01-FEB-03 |
| 3 | Tim | Jones | tim@abc.com | 01-MAR-04 |
| 4 | Sarah | Lee | sarah@abc.com | 01-APR-05 |
答案:
INSERT INTO employees(EmployeeID, FirstName, LastName, Eml, HireDate)
VALUES (1, ‘John’, ‘Smith’, ‘john@abc.com’, TO_DATE(’01-JAN-02′, ‘DD-MON-YY’));
INSERT INTO employees(EmployeeID, FirstName, LastName, Eml, HireDate)
VALUES (2, ‘Jane’, ‘Doe’, ‘jane@abc.com’, TO_DATE(’01-FEB-03′, ‘DD-MON-YY’));
INSERT INTO employees(EmployeeID, FirstName, LastName, Eml, HireDate)
VALUES (3, ‘Tim’, ‘Jones’, ‘tim@abc.com’, TO_DATE(’01-MAR-04′, ‘DD-MON-YY’));
INSERT INTO employees(EmployeeID, FirstName, LastName, Eml, HireDate)
VALUES (4, ‘Sarah’, ‘Lee’, ‘sarah@abc.com’, TO_DATE(’01-APR-05′, ‘DD-MON-YY’));
练习题3:查询数据
如何从employees表中查询所有员工的FirstName和LastName?
答案:
SELECT FirstName, LastName FROM employees;
练习题4:更新数据
如何在employees表中将员工号为3的雇员姓氏更改为“Brown”?
答案:
UPDATE employees SET LastName = ‘Brown’ WHERE EmployeeID = 3;
练习题5:删除数据
如何从employees表中删除姓名为“Lee”的员工?
答案:
DELETE FROM employees WHERE LastName = ‘Lee’;
练习题6:创建索引
在employees表中创建一个名为“employees_idx”的索引,以加快FirstName列的查询速度。
答案:
CREATE INDEX employees_idx ON employees(FirstName);
练习题7:GROUP BY查询
如何从employees表中查询每个雇员的雇用年限?
答案:
SELECT FirstName, LastName, (SYSDATE – HireDate)/365 AS YearsOfService FROM employees;
练习题8:关联查询
如何从employees表和orders表中查询FirstName和LastName,以及他们的订单数?
答案:
SELECT e.FirstName, e.LastName, COUNT(o.OrderID) AS OrderCount
FROM employees e LEFT JOIN orders o ON e.EmployeeID = o.EmployeeID
GROUP BY e.FirstName, e.LastName;
练习题9:嵌套查询
如何从employees表中查询雇用年限最长的雇员的FirstName和LastName?
答案:
SELECT FirstName, LastName
FROM employees
WHERE HireDate = (SELECT MAX(HireDate) FROM employees);
练习题10:子查询
如何从orders表中查询所有总金额大于平均金额的订单?
答案:
SELECT * FROM orders WHERE TotalAmount > (SELECT AVG(TotalAmount) FROM orders);
练习题结束语
Oracle 10G是一个强大的数据库系统,为我们提供了管理数据的可靠和高效的解决方案。通过这些练习题,我们可以更深入地了解Oracle 10G,并更好地掌握其功能和技能。希望这些问题对你有所帮助,并加强你对Oracle 10G的理解。