sql查询语句
select distinct *|字段|表达式 as 别名 from 表 表别名
SELECT * FROM 表名; 查询某个表中所有的记录的所有字段信息
SELECT 列名 FROM 表名; 查询某个表中所有的记录的指定字段信息
SELECT 列名1,列名2 FROM 表名; 查询某个表中所有的记录的字段1 字段2
SELECT distinct 列名 FROM 表名; 去除重复记录
SELECT 表达式 FROM 表名; 查询表达式
SELECT xxx as 别名 FROM 表名 表别名 使用别名
--别名 select 字段1 as 别名,字段2 as 别名, 字段3 别名.. from 表名 别名;
--别名如果是英文默认大写,如果想要原样使用|中文带空格,在别名的前后""
''代表字符串 ""原样输出 结果字段名和值原样字符串输出
字符串的拼接 ||
--虚表: oracle中不是真是存在的表,其中没有任何数据 dual
where比较
select 数据名 from 表名 where 条件
如
select ename from emp where SAL >2000
比较符号:
大于
<小于
=大于等于 <=小于等于
= 等于
!= 和 <> 不等于
between A and B 在A 于B之间
tip nvl(字段A,值B)
如果字段A不为null 则为字段A,否则为字段B,
有点像java里的 字段A==null ? 字段A : 值B 三目语句
and or not 与 或 非
如
select ename from emp where SAL >2000 and DEPTNO =30
tip null 不能用于上述的判断,null的判断用关键字is
如
select ename from emp where comm is null; select ename from emp where comm is not null;
两条select合并的集合相关操作:
select语句A union select 语句B
对A和B选择出的结果取并集 (A和B中重复的条目只保留一个)
select语句A union All select语句B
对A和B选择出的结果取并集并且保留重复条目(如果数据C不仅满足A,也满足B,则结果里有两条C)
select语句A Intersect select语句B
对A和B选择出的结果取交集
select语句A Minus select语句B
对A和B选择出的结果取差集(A和B中不重复的部分)
like 模糊匹配
%:零个及以上(任意个数的)的字符
_:一个字符
遇到内容中包含 % _ 使用escape('单个字符')指定转义符
select ename where ename like '%A%' --选择出名字中有字符A的数据 select ename where ename like 'A%' --选择出名字中第二个字符为A的数据(占据了第一个字符位) select ename where ename like '%B%%' escape('B'); --选择出名字中有字符%的数据,escape('B')把B%转义成了%
in exists 语句
tip:
where 语句的执行是在select之后的,
select ename from emp where SAL >2000
上面的语句执行是先在emp表中选出所有的ename,再根据每一条数据逐步判断该数据是否判断条件,相当于java里的
for(ename : emp){ if(SAL >2000){ select ename; }else{ 舍弃 ename; } }
select A from 表名 in(B,C,D)
select A from 表明 where exists(select语句B) --当括号里的语句B结果不为null时exists为true,保留值A,为null时数据A舍弃
https://blog.csdn.net/baidu_37107022/article/details/77278381
组函数
1)、 count :统计记录数 count() -->* 或一个列名
tip在SQL Server中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的。本文会阐述这三者的作用,关系以及背后的原理。
往常我经常会看到一些所谓的优化建议不使用Count(* )而是使用Count(1),从而可以提升性能,给出的理由是Count( *)会带来全表扫描。而实际上如何写Count并没有区别。
Count(1)和Count(*)实际上的意思是,评估Count()中的表达式是否为NULL,如果为NULL则不计数,而非NULL则会计数。
2)、 max min: 最大值 最小值
3)、 sum:求和
4)、 avg:平均值
group by 语句
select A from 表名 group by B
其中A只能为组函数或者每组中相同的数据(如果每个组内部的数据的name一样,则A可以为name)
group by 语句后面可接 Having 来分类
语句运行顺序
from ---> where ---> group ----> having-----> select ---->order by