数据库零散知识点

1、插入日期型数据使用 TO_DATE函数
insert into 表名 (id,name,job,birth) values('1003','TOM','程序员',
TO_DATE('1991-09-08','yyyy-MM-dd'))
2 修改表中数据的语法
update 表名 SET 字段名=新值,字段名='新值' where 字段名=‘表中的值’

3 CONCAT函数:拼接函数
SELECT CONCAT(CONCAT(ename,'的工资是:'),sal) FROM 员工表
通常使用 || 来代替CONCAT函数来链接字符串 如 SELECT ename || ':' || sal FROM 员工表

4 SUBSTR(CHAR,开始位置,截取长度) 从给定字符串的 给定的起始位置开始,连续截取给定的长度

5 INSERT (char1 char2,[n,m]) 查找char2 在char1中的位置,n:从char1的第几个字符开始(不写为1)
m:查找第几次出现的位置(不写为1)
如:select INSERT ('thing in java','in',2,2) from dual dual :伪表,
MOD(m,n)求余函数

6 SYSDATE 时间上对应ORACLE内部的一个函数,返回的是一个DATE类型的当前系统时间
SYSTIMESTAMP 与SYSDATE一样,只不过返回的是事一个时间戳的值
查看 员工的入职时间
select ename || ':' ||(SYSDATE-hiredate) from emp

7 to_char 可以将给定的DATE 按照指定的日期格式转化为字符串

select ename ,to_char(hireDate,'YYYY-MM-DD') FROM emp
select to_char(SYSDATE,'YYYY"年"MM"月"DD"日"')

8 NVL(exp1,exp2)函数,如果exp1为null,返回exp2,否则返回exp1
NVL2(exp1,exp2.exp3) 如果exp1不为null,返回exp2,为null,返回exp3
例如有奖金的显示有奖金,没有奖金的显示没有奖金
select ename,NVL2(comn,'有奖金',‘没有奖金’) from emp

别名的使用规则:在表名或者字段名后面 隔一个空格 写别名
select empno,ename .sal*12 年薪 from emp

9 like 模糊匹配 其中 _ 表示单一的一个字符, %表示任意个字符(0-多个)
查看第二个名字信息是A的员工
select * from emp where ename like '_A%'

10 IN(list) 判断给定的内容是否等于括号内的任意一个
select ename job from emp where job in('程序员',‘C++’)

11 where 也可以使用函数或者表达式的结果作为过滤条件,where 过滤条件是在第一次查询表时过滤
HAVING 是查询的最后过滤
select ename ,job ,from emp where ename =UPPER('king')

DISTINCT 去重,必须紧跟在select 的后面

12 order by 自句用于排序查询出来的结果集 可以对指定的字段按照升序 或者降序排列,默认为升序
order by 必须写在 select 语句的最后面

select ename ,job from emp where empno='20' order by sal desc
order by 也可以根据多个字段排序,先按照第一个字段排序,

13 聚合函数,又称多行函数,分组函数,
select max(sal) '最高工资',min(sal) '最低工资' from emp

14 GROUP by 子句是为了配合聚合函数使用的,使用group by 子句后,分组可以更细致,就不用将整个表的所有
记录看做一组进行统计了,可以将表中指定的值相同的记录看做一组,在进行分组统计时没有使用聚合函数
就没有使用group by 的必要
select max(sal),min(sal) from emp gruop by depto

当select 语句中出现了分组函数,那么凡不在聚合函数的单独字段,必须出现在group by 子句中
因为聚合函数查询出来的是一条记录,没有聚合的字段查询出来的是多条,多条也有,一条也有,他会疯的

查询平均工资高于2000的部门的最高和最低工资
select max(sal),min(sal) depto from emp group by depto having avg>2000

having 和where 他们都是用于查询的过滤条件,但是时机不同,先where 后having
where 是第一次从表中查询数据的时候进行过滤,而having是在查询出来的数据中进行过滤
having 用来对group by 分组后的结果进一步限制,必须紧跟在group by 的后面不能单独使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欲将心事付瑶琴知音少弦断有谁听

欲将心事付瑶琴,知音少

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值