sql语句
查看sql基础https://www.cnblogs.com/yangj-Blog/p/12976572.html
然后看看常见的sql语句
查询某个数据是否存在
传统的方法是使用count,他会统计具体的数据,但是显然需要遍历表中所以的数据,当数据量很大时,效率较低。
SELECT count(*) FROM table WHERE a = 1 AND b = 2
SQL不再使用count,而是改用 LIMIT 1,让数据库查询时遇到一条就返回,不要再继续查找还有多少条了
业务代码中直接判断是否非空即可
select 1 from user where id = xxx limit 1;
统计函数及分组统计的操作
统计函数主要有:
COUNT():用于统计数据数量
注意关于COUNT()函数,当数据表中没有数据时,COUNT()总是会返回一个数值,只是这个数值是“0”
SUM():用于统计数据和
AVG():统计平均值
MIN():得到最小值
MAX():得到最大值
select count(empno),sum(sal),avg(sal) from emp;
按照职位分组,求出每个职位的最高和最低工资:
select job,max(sal),min(sal) from emp group by job;
多表查询
select empno,ename,job,sal,dept.deptno,dname,loc
from emp,dept
where emp.deptno(+)=dept.deptno; -- (Oracle 8i 及以前的写法)
--另一种写法(右连接): -- (SQL 99的写法)
select empno,ename,job,sal,dept.deptno,dname,loc
from emp right join dept on (emp.deptno=dept.deptno);
多条件查询
select * from TABLE where USERID=a or USERID= b or USERID=c
但是有一种效率更高的
用in实现,比如
select * from TABLE where USERID in(a,b,c,d……)
或者普通的多列选项
SELECT * FROM T_Employee WHERE FNumber BETWEEN 'DEV001' AND 'DEV008' AND FName LIKE '%J%' AND FSalary BETWEEN 3000 AND 6000
多表多条件查询语句
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
例子
有5个结构相同的表,表1、表2、表3、表4、表5,对这5个表单条件查询Select * from 表1 where 入职日期='2014-04-20' union all Select * from 表2 where 入职日期='2014-04-20' union all..........union all Select * from 表5 where 入职日期='2014-04-20' 查询是成功的,如果再加上一个查询条件 ,岗位=普工,表达式该怎么写?
Select * from 表1 where 入职日期='2014-04-20' and 岗位='普工'
union all
Select * from 表2 where 入职日期='2014-04-20' and 岗位='普工'
union all
..........
union all
Select * from 表5 where 入职日期='2014-04-20 and 岗位='普工'
或者
select * from (select * from 表bai1 union all select * from 表2 union all select * from 表3 union all select * from 表4 union all select * from 表5)tb where 入职日du期='2014-04-20' and 岗位zhi='普工'
原文地址:https://www.cnblogs.com/yangj-Blog/p/13285308.html
- RFID入门:Mifare1智能水卡破解分析
- RecyclerView点击事件处理
- Python 实现一个火车票查询的工具
- HTTPS迎来春天:Chrome计划将所有HTTP标记为不安全
- View绘制流程
- Linux Rootkit系列一:LKM的基础编写及隐藏
- Swift基础语法(常量变量、数据类型、元组、可选、断言)
- 【实战】Python 读写 Excel 实例应用
- 10万WordPress网站沦陷:恶意软件SoakSoak来了
- 自己动手实现一个Android Studio插件
- Oracle数据库漏洞分析:无需用户名和密码进入你的数据库
- Android动态加载入坑指南
- ModSecurity技巧:使用ssdeep检测Webshell
- 装饰者模式
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 从源码分析常见集合的区别之List接口
- c++ 调用ffmpeg命令获取视频属性
- Kubernetes 1.19.0——网络策略
- TypeScript 参数简化实战(进阶知识点conditional types,中高级必会)
- 最简实现Promise,支持异步链式调用(20行)
- 40行代码把Vue3的响应式集成进React做状态管理
- 写给女朋友的中级前端面试秘籍(含详细答案,15k级别)
- 写给初中级前端的高级进阶指南
- 为什么 Vue 中不要用 index 作为 key?(diff 算法详解)
- Vue3 的响应式和以前有什么区别,Proxy 无敌?
- 腾讯云TKE-PV使用cos存储案例: 容器目录权限问题
- Vue3 究竟好在哪里?(和 React Hook 的详细对比)
- 前端「N皇后」递归回溯经典问题图解
- 深入 TypeScript 中的子类型、逆变、协变,进阶 Vue3 源码前必须搞懂的。
- Vue3 + TypeScript 实现递归菜单组件