随笔分类 - DB
数据库:MSSql & MYSql & Oracle
摘要:查询用户数量 -- 查询用户数量 SELECT COUNT(*) AS user_count FROM DBA_USERS; SELECT COUNT(*) AS user_count FROM USER_TABLES; 查询表数量 -- 查询表数量 SELECT OWNER, COUNT(*) A
阅读全文
摘要:返回一个值 create or replace FUNCTION GET_KEY_BY_QUERY ( AAA IN VARCHAR2 ) RETURN NUMBER IS ITEM_VALUE NUMBER; BEGIN SELECT 'TEST' INTO ITEM_VALUE FROM DUA
阅读全文
摘要:使用REGEXP_SUBSTR SELECT REGEXP_SUBSTR(key, '[^,]+', 1, ROWNUM) AS VALUE FROM ( select '1,3,4,4' as key from dual ) CONNECT BY ROWNUM <= LENGTH(key) - L
阅读全文
摘要:SQL select 1 from dual WHERE xxx IN ('AAA&SSS') 编译器提示 原因和解决方法 在Oracle SQL查询中,如果查询条件包含特殊字符如&,通常需要进行转义处理,以确保查询语句能被正确解析 &在Oracle中可能被视作替换变量的一部分,因此直接使用
阅读全文
摘要:优化方向 1.使用合适的索引:确保查询中涉及的字段有适当的索引。索引可以帮助数据库引擎快速定位和检索数据,提高查询效率。 2.避免使用通配符查询:尽量避免在查询条件中使用通配符 '%',因为这样的查询会导致全表扫描,影响性能。 3.避免使用函数:在查询条件中避免使用函数,尽量在字段上使用函数,因为函
阅读全文
摘要:背景:直接like查询匹配不到数据 SELECT 1WHERE '["List":[]}]' LIKE '%[]%' 解决方案: 1.用方括号([])处理特殊字符 SELECT 1WHERE '["List":[]}]' LIKE '%[[]]%' 2.用转义符:escape SELECT 1 WH
阅读全文
摘要:语法: STRING_SPLIT(string , separator) 参数说明: string: 任何字符类型(例如 nvarchar、varchar、nchar 或 char)的表达式 separator: 任何字符类型(例如 nvarchar(1)、varchar(1)、nchar(1) 或
阅读全文
摘要:1.初始数据 2.合并数据 3.完整SQL WITH V AS ( SELECT 'No-1' AS No, 'Name-1' AS Name, 'Remark-1' AS Remark UNION ALL SELECT 'No-1' AS No, 'Name-1' AS Name, 'Remark
阅读全文
摘要:Sql SELECT ITEM_DATE, TO_CHAR(ITEM_DATE, 'YYYY-MM-DD') CURRENT_DATE_STR, CURRENT_YEAR, CASE TO_CHAR(ITEM_DATE, 'MM') WHEN '01' THEN 'JAN' WHEN '02' TH
阅读全文
摘要:简单删除 DELETE TABLE_NAME WHERE KEY = 1; DELETE TABLE_NAME WHERE KEY IN (1, 2, 3); DELETE TABLE_NAME WHERE KEY IN (SELECT 1 FROM DUAL); 多条件删除 1.EXISTS DE
阅读全文
摘要:查询所有表对应的数据量 1.GROUP SELECT A.NAME AS 表名, MAX(B.ROWS) AS 记录条数 FROM SYS.SYSOBJECTS AS A INNER JOIN SYS.SYSINDEXES AS B ON A.ID = B.ID AND (A.XTYPE = 'U'
阅读全文
摘要:定义 /** * 参数1:文本 * 参数2:需要替换文本 * 参数3:替换后的文本 */ TRANSLATE(参数1,参数2,参数3) demo:替换对应字符 -- ab4567 SELECT TRANSLATE('1234567','123' ,'ab') FROM DUAL; -- AA-BB,
阅读全文
摘要:定义 制表符 chr(9) 换行符 chr(10) 回车符 chr(13) 查询 SELECT 'AA' || chr(9) || 'BB' || chr(10) || 'CC' || chr(13) || 'DD' as A FROM DUAL; 替换 SELECT 'AA BB CC DD',
阅读全文
摘要:核心代码 SET SERVEROUTPUT ON BEGIN -- 逻辑代码 ... EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('SQLCODE:' || SQLCODE || ' SQLERRM:' || SQLERRM); END; 单个异常
阅读全文
摘要:交集 WITH V_List1 AS ( SELECT 1 AS NUM FROM DUAL UNION ALL SELECT 3 AS NUM FROM DUAL UNION ALL SELECT 5 AS NUM FROM DUAL UNION ALL SELECT 7 AS NUM FROM
阅读全文
摘要:定义: DBMS_OUTPUT.PUT_LINE (item IN VARCHAR2); 使用: -- 必须有,不然无法显示会报错 SET SERVEROUTPUT ON DECLARE NUM INT := 0; num_max INT := 3; BEGIN dbms_output.put_li
阅读全文
摘要:脚本 SELECT TRUNC(SYSDATE, 'mm') 月初, LAST_DAY(TRUNC(SYSDATE)) 月底, TRUNC(ADD_MONTHS(TRUNC(SYSDATE), -1), 'mm') 上月初, LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE), -
阅读全文
摘要:背景 数据库迁移时,新数据库的 Collocation 和 就数据库 Collocation 不相同,直接修改 Collocation 失败且出现异常:5030 SQL --1.修改为单用户模式 ALTER DATABASE CustDbName SET SINGLE_USER WITH ROLLB
阅读全文
摘要:背景: 根据 特定字段 分组,获取第一次和最后一次的时间,同时要求获得最后一次的其他信息 数据 结果 脚本 语法 LAST_VALUE (expression) OVER ( [partition_clause] [order_clause] [frame_clause] ) PARTITION B
阅读全文
摘要:假定已经成功安装Oracle,此时只需要下载一个第三方驱动就可以连接访问MySql 1.下载驱动:Link 8.0版本的jar包下载地址,点击直接下载。 https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.
阅读全文