- 单表查询主要格式为 :
select 列名(多个列用逗号分隔,可有别名,常量)
from 表名
where 筛选条件
order by 排序(asc升序,desc降序)
group by 分组(注意分组后只能查询分组和被分组的列)
· Harving 筛选条件(注意,此处的条件是分组后使用函数后的筛选)
例子:
select sal,avg(sal) from emp where deptno=10 order by group by sal having avg(sal)>1000
含义:查询emp表下10号部门中平均工资大于1000的工资和平均工资并以升序的格式书写下来。
注意别名和常量的区别,
别名格式:列名 (空格或as) 别名
常量格式:列名,常量, 列名
你可以这样理解:
别名是一个列的另一个名字,其实查询的实质还是那个列,所以这里不能使用逗号
常量:常量可以想成查询了全为常量值的一列,而列之间用逗号隔开。
<1>单表的嵌套
即要查询某个要求前必须先查询另一个要求
select ename,sal from emp where deptno=(select deptno from emp where ename=‘andy’) and sal>1600;
含义:查询andy所在部门工资大于1600的员工姓名,工资。
<2>模糊化搜索like
通配符%代表任意0或多个字符。
通配符_代表任意单个字符。
例子:
select ename,sal from emp where ename like ‘%C%’;
含义:查询名字带有C的雇员名和工资
多表查询主要格式:
第一种,where连接
select 列名(和单表查询基本相同,但是必须指定是那个表中的那个列)
from 表名(多个表用逗号隔开)
where 连接条件(必须写)+筛选条件(根据实际需要选择)
第二(三/四)种
select 列名(同上)
from 表1 inner (right/left/full) join 表2
on 连接条件
where 筛选条件
常用的数据类型及函数:
算数逻辑运算
1. 加减乘除
函数:
1. 常用数值型函数:
Ceil(n) 大于等于数值n的最小整数
Floor(n) 小于等于数值n的最大整数
Mod(m,n) M除以n的余数,若n=0,则返回m
Power(m,n) M的n次方
Round(n,m) 将n四舍五入,保留小数点后m位
Sign(n) 若n=0,返回0;否则n>0,返回1;n<0,返回-1
Sqrt(n) N的平方根
2. 常用字符函数
Initcap(char) 把每个字符串的第一个字符换成大写
Lower(char) 整个字符串换成小写
Replace(char,str1,str2) 字符串中所有str1换成str2
Soundex(char) 字符串的语音表示,常用于名字的模糊查询,可查找发音相似拼写不同的字符串
Substr(char,m,n) 取出从m字符开始的n个字符的子串
Length(char) 求字符串的长度
3. 常用日期型函数
Sysdate 当前日期和时间
Last_day 本月最后一天
Add_months(d,n) 当前日期d后推n个月
Months_between(f,s) 日期f和s间相差月数
Next_day(d,day) d后第一周指定的day日期
todate(day,'YYYY-MM-DD') 表明输入的day是一个日期,是使用年月日的格式书写的,注意格式可根据day的写法不同而更换。
注意:此处查询是向系统(dual)查询
例子:select sysdate from dual;查询当前日期
4. 最常用的分组函数
avg(column_name) Column_name表的所有值的平均值
Count(*) 表中的数据行数目
Max(column_name) 存放在column_name表列中的最大值
min(column_name) 存放在column_name表列中的最小值