数据库操作与PL/SQL语法学习笔记

需积分: 9 2 下载量 71 浏览量 更新于2024-09-13 收藏 29KB TXT 举报
"这篇文档是关于数据库学习的笔记,涵盖了SQL SERVER和ORACLE数据库的基础知识,包括权限管理、PL/SQL编程以及DML操作。" 在数据库领域,SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言。文档中提到了SQL的一些基本操作,如权限管理、数据查询、数据插入、更新和删除。 1. 权限管理: - `REVOKE SELECT ON scott.emp FROM scott;` 这条语句是撤销用户scott对scott.emp表的SELECT权限。 - `GRANT EXECUTE ON p_test TO scott;` 这行代码则是授予scott执行名为p_test存储过程的权限。 2. PL/SQL编程: - PL/SQL是Oracle数据库中的过程式语言,用于编写数据库块。示例展示了声明记录类型(emp_record_type),并定义了一个记录变量(emp_record)来存储查询结果。 - `DECLARE` 开始一个PL/SQL块,`TYPE`用于定义自定义数据类型,如emp_record_type,它包含emp表中的ename、sal和job字段。 - `BEGIN...END;` 包含了SQL查询和输出,通过`DBMS_OUTPUT.PUT_LINE`将结果打印到控制台。 3. DML(Data Manipulation Language)操作: - `INSERT INTO emp(hiredate) VALUES(TO_DATE('1980-10-2', 'yyyy-mm-dd'));` 插入一条新的雇员记录,设置hiredate为指定日期。 - `INSERT INTO emp SELECT * FROM emp1;` 复制emp1表的所有记录到emp表。 - `UPDATE emp SET sal=sal*1.1, comm=comm*1.1 WHERE deptno=20;` 更新部门编号为20的员工薪水和佣金,增加10%。 - `UPDATE emp SET (job, sal, comm) = (SELECT job, sal, comm FROM emp WHERE ename='SMITIH') WHERE ename='SCOTT';` 将SCOTT的职位、薪水和佣金设置为与SMITIH相同的值。 - `DELETE FROM emp WHERE ename LIKE '__a%';` 删除名字以'a'开头且第二个字符为空格的员工记录。 - `TRUNCATE TABLE emp;` 清空emp表的所有数据,但不记录在事务日志中,比DELETE更快。 4. 数据分析: - 使用`GROUP BY`进行分组统计,`ROLLUP`和`CUBE`提供了更复杂的分组选项。`GROUP BY ROLLUP(deptno, job)`生成所有可能的deptno和job的子集,包括总的汇总。`GROUP BY CUBE(deptno, job)`则包含所有可能的子集和单个汇总。 - `AVG(sal)`计算平均薪水,`ROUND(avg(sal), 2)`将平均薪水四舍五入到两位小数。 这些笔记内容对于初学者来说非常有用,涵盖了数据库基础操作的各个方面,是理解SQL和PL/SQL编程的良好起点。在实际工作中,掌握这些技能可以有效地管理数据库,执行查询,以及进行数据维护和分析。