随笔分类 -  SQL

摘要:一、开窗函数 开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化,举例如下: 1、over(order by salary) 按照salary排序进行累计,order by是个默认的开窗函数。 SELECT EMPLOYEE_ID, SALARY, MANAGER_I 阅读全文
posted @ 2023-03-08 17:09 胖大海527 阅读(179) 评论(0) 推荐(0)
摘要:PLSQL ROW_NUMBER() OVER()函数的使用语法格式:row_number() over(partition by 分组列 order by 排序列 desc) row_number() over()分组排序功能: 在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where 、group by 阅读全文
posted @ 2023-02-28 15:22 胖大海527 阅读(1327) 评论(0) 推荐(0)
摘要:PLSQL 有返回值的存储过程的调用存储过程: CREATE OR REPLACE PROCEDURE stu_proc(v_name IN VARCHAR2 DEFAULT '张三', v_id OUT NUMBER) AS --声明语句段 BEGIN --执行语句段 SELECT id INTO v_id FROM student 阅读全文
posted @ 2023-02-17 15:04 胖大海527 阅读(302) 评论(0) 推荐(0)
摘要:PLSQL 利用触发器来实现插入数据时更新某字段的值需求:设置一个触发器,当EMP_NAME是'ACE'的数据插入时,更新EMP_DESC为'我被触发器更新了'。 --建立测试表 create table TEST1124 ( EMP_ID NUMBER, EMP_NAME VARCHAR2(20), EMP_DESC VARCHAR2(20)); 阅读全文
posted @ 2023-02-15 16:25 胖大海527 阅读(263) 评论(0) 推荐(0)
摘要:PLSQL MON-YY日期格式转换日期格式为MON-YY, 是不能用字符“MON-YY”比较日期大小的。 需要将字符“MON-YY”转换为日期格式 --报错:ORA-01843:非有效的月份 select to_date('JUL-20', 'MON-YY') from dual; 报错原因:PLSQL客户端使用的中文环境,“JUL 阅读全文
posted @ 2023-02-15 16:17 胖大海527 阅读(337) 评论(0) 推荐(0)
摘要:PLSQL 查询的默认排序分析ORACLE对无order by的语句返回的结果不进行排序,ORACLE此时的处理方式是按照数据的物理存储顺序来读取数据。因为rowid是每行数据的地址,所以有时候看起来会像是使用rowid排序的。 但这个顺序是可能被打乱的,在表的数据被删除后,rowid会被新插入的数据占用,所以一个无order 阅读全文
posted @ 2023-02-15 15:46 胖大海527 阅读(198) 评论(0) 推荐(0)
摘要:PLSQL 暂停执行在PLSQL编写中,需要程序暂停一段时间后继续运行,可使用Oracle内置功能dbms_lock.sleep(10); 如果找不到此功能可自己安装。 SQL> conn /as sysdba SQL> @?/rdbms/admin/dbmslock.sql 测试: begin dbms_output 阅读全文
posted @ 2023-02-15 15:40 胖大海527 阅读(320) 评论(0) 推荐(0)
摘要:PLSQL 记录某个表中新增、更改、删除的数据LOG日志应用场景:当我们需要追踪某个表中新增、更改、删除的数据时,可以在该表上建立一个触发器,将新增、更改、删除的数据,另包括DML操作类型、DML操作时间等记录到TEMP表。 --建立测试表 create table TEST1123 ( EMP_ID NUMBER, EMP_NAME VARCHAR2( 阅读全文
posted @ 2023-02-15 15:27 胖大海527 阅读(228) 评论(0) 推荐(0)
摘要:PLSQL 删除表中重复行删除表中重复行 DELETE FROM table_name a WHERE ROWID < (SELECT MAX(ROWID) FROM table_name b WHERE a.col1 = b.col1 AND a.col2 = b.col2); -- 遍历所以数据,以确定重复纪录 阅读全文
posted @ 2022-12-20 10:22 胖大海527 阅读(122) 评论(0) 推荐(0)
摘要:PLSQL 触发器中的NEW和Old关键字说明触发器中经常会用到NEW和OLD两个关键字,这是系统默认的吗?只要带上NEW或者OLD,系统就知道是新数据还是老数据? CREATE OR REPLACE TRIGGER trg_del_emp_info BEFORE DELETE ON emp FOR EACH ROW DECLARE -- lo 阅读全文
posted @ 2022-12-07 11:20 胖大海527 阅读(673) 评论(0) 推荐(0)
摘要:PLSQL 查询视图的列类型选中视图VIEW -> 右击选中描述 -> 查看列类型 阅读全文
posted @ 2022-11-30 17:17 胖大海527 阅读(376) 评论(0) 推荐(0)
摘要:SQL 索引失效的几种情况分析正文 基础数据准备 联合索引 sname, s_code, address 主键索引 id 普通索引 height SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- -- Table structure for student -- DROP TAB 阅读全文
posted @ 2022-11-17 10:00 胖大海527 阅读(93) 评论(0) 推荐(0)
摘要:PLSQL PLS-00103: 出现符号 &quot;TABLE&quot;在需要下列之一时: := . ( @ % ; 符号 &quot;:=在 &quot;TABLE&quot; 继续之前已插入。PLSQL ORACLE存储过程直接删除表数据,报错:PLS-00103: 出现符号 "TABLE"在需要下列之一时: := . ( @ % ; 符号 ":=在 "TABLE" 继续之前已插入。 解决: 阅读全文
posted @ 2022-11-15 15:15 胖大海527 阅读(577) 评论(0) 推荐(0)
摘要:PLSQL Oracle出现&quot;PLS-00103: 出现符号&quot;(&quot;在需要下列之一时&quot; 错误如上图 错误原因:包里面的存储过程没有参数,不需要添加括号的,把括号去掉重新编译即可 阅读全文
posted @ 2022-11-15 10:27 胖大海527 阅读(139) 评论(0) 推荐(0)