数据库随笔11.20-11.26
oracle数据库判断某表是否存在
查询所有表
1 | select count(*) from user_tables where table_name =upper('表名') |
这个是查询当前登录用户中的所有表中是否存在该表。注意表名区分大小写,如果参数不限制,那这里就必须要加上upper
函数 。
查询指定用户下是否有某个表
1 | SELECT COUNT(*) |
这个是查询 user1
这个用户下的表中是否存在该表。比如你登录的是user2
这个用户,在它的查询面板上执行上边的sql,就可以查询user
这个用户下是否存在某表。
sql查询时添加一列为固定值
1 | //sql查询添加一列固定值 |
mysql查询每个部门的员工个数
内连接查询
首先最直观的思路就是两张表联表查询,如下
1 | SELECT e.department_id,COUNT(*) |
但这样会出现一个问题:查询结果中没有员工数为0的部门
子查询方式
为了解决上述问题,采用子查询的方式
1 | SELECT d.*,( |
外连接查询
出现问题的原因是采用了内连接查询,那么如果使用外连接呢
1 | SELECT d.*,COUNT(*) 部门人数 |
这样会出现一个问题:没有人员的部门count
是变为1,所以需要我们手动去纠正count
是0的记录
1 | SELECT d.*,IF(employee_id IS NULL,0,COUNT(*)) 部门人数 |
Oracle中case when then 中判断null的方法
正常来说,格式为
1 | SELECT |
上述语句在sex为’1’时,sex为’男’,否则为’女’,但是如果需要判断一个值是否为null
,如果使用下面的语句
1 | SELECT |
则不会报错,并且所有结果均为no
,正确形式应该为:
1 | SELECT |
VALIDATIONQUERY1=select 1
springboot 项目的database.properties
中定义了一个键值对
1 | VALIDATIONQUERY1=select 1 |
这个键值对的作用是,在启动项目时随便从数据库查一条数据、用来检测数据库连接是否有问题
select 1
是给postgresql
用的,select 1 from dual
是个oracle
用的
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hakurei Reimu!