Oracle45道题测试你的SQL技能(oracle45道题)
Oracle45道题测试你的SQL技能
在Oracle数据库管理和开发中,熟练掌握SQL语言是必不可少的技能之一。通过编写SQL查询,可以从数据中提取需要的信息,并且对数据进行增删改查等操作。因此,测试自己的SQL技能非常重要。本文整理了Oracle45道题,涵盖了SQL语法、数据查询和数据操作等方面,供大家进行练习和测试。
一、SQL语法
1、查询所有表
“`sql
SELECT table_name FROM user_tables;
2、查询所有视图
```sqlSELECT view_name FROM user_views;
3、查询所有索引
“`sql
SELECT index_name, table_name FROM user_indexes;
4、查询所有用户
```sqlSELECT username FROM dba_users;
5、查询当前用户
“`sql
SELECT user FROM dual;
6、查询当前时间
```sqlSELECT SYSDATE FROM dual;
7、查询当前会话ID
“`sql
SELECT SYS_CONTEXT(‘USERENV’, ‘SID’) FROM dual;
8、查询当前用户的当前模式
```sqlSELECT SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') FROM dual;
9、查询当前数据库的版本
“`sql
SELECT * FROM v$version;
10、查询当前数据库的启动时间
```sqlSELECT startup_time FROM v$instance;
二、数据查询
1、查询员工姓名和部门名称
“`sql
SELECT e.ename, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno;
2、查询平均工资最高的部门名称
```sqlSELECT d.dname, AVG(e.sal)
FROM emp e, dept dWHERE e.deptno = d.deptno
GROUP BY d.dnameORDER BY AVG(e.sal) DESC
FETCH FIRST 1 ROW ONLY;
3、查询每个部门的工资总额
“`sql
SELECT d.dname, SUM(e.sal)
FROM emp e, dept d
WHERE e.deptno = d.deptno
GROUP BY d.dname;
4、查询每个部门有多少员工
```sqlSELECT d.dname, COUNT(e.empno)
FROM emp e, dept dWHERE e.deptno = d.deptno
GROUP BY d.dname;
5、查询工资排名前5的员工信息
“`sql
SELECT *
FROM (SELECT e.*, DENSE_RANK() OVER (ORDER BY e.sal DESC) AS sal_rank
FROM emp e)
WHERE sal_rank
三、数据操作
1、删除所有雇员记录
```sqlDELETE FROM emp;
2、清空表空间
“`sql
TRUNCATE TABLE emp;
3、更新所有雇员姓名
```sqlUPDATE emp
SET ename = 'NewName';
4、在表的末尾添加一条记录
“`sql
INSERT INTO emp(empno, ename, job, mgr, hiredate, sal, comm, deptno)
VALUES (8888, ‘NewEmployee’, ‘CLERK’, 7902, SYSDATE, 2000, NULL, 10);
5、在表的特定位置添加一条记录
```sqlCREATE SEQUENCE emp_seq START WITH 10000;
INSERT INTO emp(empno, ename, job, mgr, hiredate, sal, comm, deptno)VALUES (emp_seq.NEXTVAL, 'NewEmployee', 'CLERK', 7902, SYSDATE, 2000, NULL, 10);
以上就是Oracle45道题,希望对大家的SQL技能练习和提升有帮助。如果以上不够挑战你的SQL技能,可以去找更多的练习材料。同时,建议大家多写代码、多进行实践,以掌握更多的SQL语法和技巧。