mysq,oraclel复杂SQL操作汇总
一.对数据库原有字段默认值的设置
1.删除原有字段默认值
alter table 表名 alter column 字段 drop default;
2..重写原有字段默认值
alter table 表名 alter column 字段 set default 0;
二.存储过程函数f_lookup(),计数函数count(1),GROUP BY只对SELECT后包含的字段有意义,日期函数TIMESTAMPDIFF(DAY,sys_shrq,SYSDATE())
2.1MySQL操作
//超过一天未做的事情
SELECT
f_lookup(1137,mdjlx) as mdjlx ,count(1) as ncount
FROM
表名
WHERE
*******
and TIMESTAMPDIFF(DAY,sys_shrq,SYSDATE())>1
GROUP BY mdjlx;
通过mdjlx group 之后,select 这边就不要出现mdjlx之外的字段了,没意义的,也不符合规范,你看到的这些其他字段的信息,只是对应mdjlx的第一条数据而已
2.2oracle数据库
SELECT
cname AS cname,
count( 1 ) AS ncount
FROM
表名a,表名b
WHERE
******
AND ROUND(TO_NUMBER(sysdate - to_date(jhdksrq,'yyyy-mm-dd'))) > 1
GROUP BY
cname
3..mysql包含之in
SELECT count(1) as count FROM 表名 a,表名 b WHERE a.主键 = b.外键 and a.字段 in('1','2,'3') and a.字段<> 1;
4..and与or的结合使用
update 表名SET 字段1= 99,s字段2 = 1 WHERE (字段3= '1' and 字段4 <> '99') OR (s字段5<>1 AND 字段6 = 99) ;
5..instr与in
update sr表名 set sys_spzt = 0 where mhzsfz in (342623199709098090 , 3301026410244561245 , 33010252 , 3301120252);
update sr_main_ww set sys_spzt = 0 where INSTR('33011203022252,3301120252', mhzsfz) >= 1
SELECT * FROM 表名 WHERE 字段1= 1 AND 字段2 = 0 and (字段3= '' or 字段4 is null or 字段5 = '' or 字段6 is null or 字段7= '' or 字段8 is null) and instr('db_jz,kn_jz,wb_jz',字段9) > 0;
6..not in的使用
select 学生学号 from 表名 where 学生学号 not in(SELECT 学生学号 FROM 表名2 A,表名3 B WHERE A.主键= B.外键 AND A.学生学号= B.学生学号);
最新文章
- JS产生随机数的几个用法!
- Js 遍历json对象所有key及根据动态key获取值
- 【python 下载】-各种版本都有!
- USACO 3.2 kimbits DP
- 【转】hive简介安装 配置常见问题和例子
- Xamarin Crack
- 解决打包时IsCmdBld.exe出错的问题
- Unity3D 表对象分类中的实现(C#)
- Hive查询结果批量插入分区
- GCC/G++ 学习笔记
- java集合框架工具类Collections,集合的操作
- tolua之wrap文件的原理与使用
- Java中static的用法解析
- 数据结构--图 的JAVA实现(下)
- (三)MongoDB数据库注意
- [转帖]2019 简易Web开发指南
- Android启动流程
- 开始使用 Vuejs 2.0 --- 组件间数据传递
- 06.搭建kafka集群环境并测试
- Ubuntu下搭建FTP服务器图解