服务器搭建网站数据库,沈阳有几家正规男科医院,网站模板内容页在哪,做gif动图的素材网站数据库相关操作 RedisKey#xff08;键#xff09;操作 MySQL查看表已有索引创建/删除索引是否命中索引 Oracle备份/恢复/删除表REGEXP_SUBSTRINSTR(string, substring)ROWNUMDBMS_RANDOM.VALUE()判空两个日期间隔 Redis
Key#xff08;键#xff09;操作
命令描述例子DE… 数据库相关操作 RedisKey键操作 MySQL查看表已有索引创建/删除索引是否命中索引 Oracle备份/恢复/删除表REGEXP_SUBSTRINSTR(string, substring)ROWNUMDBMS_RANDOM.VALUE()判空两个日期间隔 Redis
Key键操作
命令描述例子DEL key删除指定键支持多键如 DEL key1 key2 DEL sys_dict:hangup_cause 删除指定键KEYS pattern按模式匹配查询键* 通配符如 sys_dict:* KEYS sys_dict:* 查所有 sys_dict: 开头的键
MySQL
查看表已有索引
SHOW INDEX FROM 表名 IN 数据库名;结果说明
Key_name索引名称PRIMARY 为主键索引。
Column_name索引包含的列名。
Non_unique是否为非唯一索引0 表示唯一索引1 表示非唯一索引。
Index_type索引类型如 BTREE、HASH 等。
创建/删除索引
-- 创建索引
CREATE INDEX idx_record ON record (from_user, -- 优先放置等值查询或前缀模糊查询的字段start_time DESC, -- 范围查询 排序字段DESC 与 ORDER BY 一致end_time -- 若查询中需要过滤 end_time可加入索引但范围查询后字段无法再利用索引
);
-- 删除索引
DROP INDEX idx_record ON record;是否命中索引
EXPLAIN SELECT ... -- 你的原始查询语句结果说明
key实际使用的索引。若为NULL则表示未使用索引
possible_keys 可能使用的索引列表
type 连接类型常见值
ALL全表扫描未命中索引index索引扫描range范围扫描如LIKE ‘abc%’ref使用非唯一索引查找
Extra额外信息常见值
Using index使用了覆盖索引性能最佳Using where使用了 WHERE 过滤Using filesort需要文件排序性能较差
Oracle
备份/恢复/删除表
--备份
CREATE TABLE table_t_backup AS
SELECT *
FROM table_t
WHERE t_flag 0
AND t_CODE IN(8AP57,8AP51);
--恢复
MERGE INTO table_t t
USING table_t_backup s
ON (t.ID s.ID)
WHEN MATCHED THENUPDATE SET t.NUMBER s.NUMBER,t.PAPT_NUMBER s.PAPT_NUMBER,
AND s.CODE IN(8AP57,8AP51);
--删除
DROP TABLE table_t_backupREGEXP_SUBSTR
从字符串中提取与正则表达式匹配的子串
REGEXP_SUBSTR(source_string, -- 源字符串必填pattern, -- 正则表达式模式必填[position], -- 开始搜索的位置可选默认 1支持负数从右向左[occurrence], -- 匹配第几次出现的结果可选默认 1[match_param], -- 匹配参数可选控制大小写、换行等[subexpression] -- 提取第几个子匹配项可选默认 0 表示整个匹配
)参数描述source_string要搜索的字符串可以是列名或字符串字面量pattern正则表达式模式支持标准正则语法如 \d、*、 等position搜索起始位置 - 正数从左到右第 position 个字符开始默认 1- 负数从右到左第 abs(position) 个字符开始occurrence指定返回第几次匹配的结果默认为 1第一次匹配match_param匹配参数可选多个参数可组合使用 ‘i’不区分大小写‘c’区分大小写默认‘n’允许 . 匹配换行符‘m’多行模式^ 和 $ 匹配行首尾‘x’忽略模式中的空白字符 nullsubexpression提取正则表达式中第 n 个括号内的子匹配项()0返回整个匹配结果默认1返回第 1 个括号内的子串2返回第 2 个括号内的子串依此类推
SELECT REGEXP_SUBSTR(userexample.com, ^([^])) AS username FROM DUAL;
-- 正则解析^([^]) 表示以非 字符开头的第一个子串
-- 输出userINSTR(string, substring)
Oracle 的内置函数用于查找 substring 在 string 中首次出现的位置。如果找到返回位置索引从 1 开始如果未找到返回 0。
一个字符串含多个符号时只返回第一个的位置
INSTR(‘ABC-DEF’, ‘-’) → 返回 4连字符 - 在第 4 个位置
INSTR(‘ABCDEF’, ‘-’) → 返回 0没有连字符
WHERE INSTR(HARDWARE_NUMBER, -) 0结果这个条件等价于 “字段中包含 -”
WHERE INSTR(ms.SOFTWARE_NUMBER, -, INSTR(ms.SOFTWARE_NUMBER, -) 1) 0结果判断字段中是否至少包含两个 -
ROWNUM
ROWNUM是 Oracle 的行号伪列用于标识结果集中的行顺序
ROWNUM必须在结果集生成后才能使用故必须用子查询
SELECT *
FROM (SELECT * FROM t_table
)
WHERE ROWNUM 20;结果返回的是满足条件的前 20 行但顺序是未定义的通常按数据在磁盘中的物理存储顺序或索引顺序
DBMS_RANDOM.VALUE()
DBMS_RANDOM.VALUE() 是 Oracle 内置函数会为结果集中的每一行生成一个随机数。
按这些随机数排序后结果集就会呈现随机排列的状态。
SELECT *
FROM (SELECT * FROM INVOKE_LOGORDER BY DBMS_RANDOM.VALUE()
)
WHERE ROWNUM 20;结果随机前20条数据
判空
AND (ms.ECU_PAPT_NUMBER IS NULL OR ms.ECU_PAPT_NUMBER )两个日期间隔
SELECT *
FROM LOG pl
WHERE pl.NAME add AND pl.TIME BETWEEN TO_DATE(2021-09-06 00:00:00, YYYY-MM-DD HH24:MI:SS)AND TO_DATE(2025-09-06 23:59:59, YYYY-MM-DD HH24:MI:SS)