1. 查询练习

a. 查询“学生”表中所有学生的姓名和年龄。

```sql SELECT 姓名, 年龄 FROM 学生; ```

b. 查询“学生”表中年龄大于18岁的学生信息。

```sql SELECT FROM 学生 WHERE 年龄 > 18; ```

c. 查询“课程”表中所有课程的名称和学分。

```sql SELECT 课程名称, 学分 FROM 课程; ```

2. 聚合函数练习

a. 查询“学生”表中学生的平均年龄。

```sql SELECT AVG AS 平均年龄 FROM 学生; ```

b. 查询“课程”表中所有课程的平均学分。

```sql SELECT AVG AS 平均学分 FROM 课程; ```

3. 排序练习

a. 查询“学生”表中所有学生信息,按年龄降序排序。

```sql SELECT FROM 学生 ORDER BY 年龄 DESC; ```

b. 查询“课程”表中所有课程信息,按学分升序排序。

```sql SELECT FROM 课程 ORDER BY 学分 ASC; ```

4. 分组练习

a. 查询“学生”表中不同年龄的学生人数。

```sql SELECT 年龄, COUNT AS 人数 FROM 学生 GROUP BY 年龄; ```

b. 查询“课程”表中不同学分段(例如:05, 610, 1115)的课程数量。

```sql SELECT CASE WHEN 学分 BETWEEN 0 AND 5 THEN '05' WHEN 学分 BETWEEN 6 AND 10 THEN '610' WHEN 学分 BETWEEN 11 AND 15 THEN '1115' ELSE '其他' END AS 学分段, COUNT AS 课程数量 FROM 课程 GROUP BY 学分段; ```

5. 子查询练习

a. 查询“学生”表中年龄大于平均年龄的学生信息。

```sql SELECT FROM 学生 WHERE 年龄 > FROM 学生qwe2; ```

b. 查询“课程”表中学分高于平均学分的课程信息。

```sql SELECT FROM 课程 WHERE 学分 > FROM 课程qwe2; ```

6. 连接查询练习

a. 查询“学生”表和“课程”表中的所有学生信息和他们所选的课程信息。

```sql SELECT 学生., 课程. FROM 学生 JOIN 课程 ON 学生.课程ID = 课程.课程ID; ```

b. 查询“学生”表和“课程”表中的所有学生信息和他们所选的课程信息,只显示选了课程的学生信息。

```sql SELECT 学生., 课程. FROM 学生 JOIN 课程 ON 学生.课程ID = 课程.课程ID WHERE 学生.课程ID IS NOT NULL; ```

7. 事务处理练习

a. 添加一个新的学生记录到“学生”表中。

```sql INSERT INTO 学生 VALUES ; ```

b. 更新“学生”表中学生的年龄。

```sql UPDATE 学生 SET 年龄 = 21 WHERE 学生ID = 1; ```

c. 删除“学生”表中某个学生记录。

```sql DELETE FROM 学生 WHERE 学生ID = 1; ```

这些练习题涵盖了Oracle数据库的基本操作,如查询、聚合函数、排序、分组、子查询、连接查询和事务处理。你可以根据自己的需求进行修改和扩展。

Oracle练习题:巩固数据库基础知识

单选题

1. 以下哪个选项描述了B-Tree索引的特点?( )

- A. 索引值按照升序排列

- B. 索引值按照降序排列

- C. 索引值随机排列

- D. 索引值按照哈希值排列

多选题

2. 以下哪些操作会触发索引的重建?( )

- A. 对表进行重命名

- B. 对表进行添加列操作

- C. 对表进行删除列操作

- D. 对表进行添加索引操作

SQL语句与数据操作

单选题

3. 以下哪个SQL语句可以查询当前日期?( )

- A. SELECT CURRENT_DATE FROM DUAL;

- B. SELECT GETDATE() FROM DUAL;

- C. SELECT NOW() FROM DUAL;

- D. SELECT DATE FROM DUAL;

多选题

4. 以下哪些SQL语句可以更新表中的数据?( )

- A. UPDATE table_name SET column_name = value WHERE condition;

- B. INSERT INTO table_name (column1, column2) VALUES (value1, value2);

- C. DELETE FROM table_name WHERE condition;

- D. SELECT FROM table_name;

视图与存储过程

单选题

5. 以下哪个SQL语句可以创建视图?( )

- A. CREATE VIEW view_name AS SELECT column1, column2 FROM table_name;

- B. CREATE PROCEDURE procedure_name AS SELECT column1, column2 FROM table_name;

- C. CREATE FUNCTION function_name AS SELECT column1, column2 FROM table_name;

- D. CREATE TRIGGER trigger_name AS SELECT column1, column2 FROM table_name;

多选题

6. 以下哪些操作可以修改视图中的数据?( )

- A. 通过视图插入数据

- B. 通过视图更新数据

- C. 通过视图删除数据

- D. 通过视图查询数据

数据库安全与权限管理

单选题

7. 以下哪个命令可以查看当前用户的权限?( )

- A. SELECT FROM DBA_PRIVILEGES;

- B. SELECT FROM USER_PRIVILEGES;

- C. SELECT FROM ALL_PRIVILEGES;

- D. SELECT FROM SYS_PRIVILEGES;

多选题

8. 以下哪些操作可以设置数据库用户权限?( )

- A. GRANT SELECT ON table_name TO user_name;

- B. REVOKE SELECT ON table_name FROM user_name;

- C. GRANT ALL PRIVILEGES TO user_name;

- D. REVOKE ALL PRIVILEGES FROM user_name;