mysql和Oracle的区别应用

Oracle:表里一行叫一条数据,列叫字段
在这里插入图片描述
在这里插入图片描述
1.连字运算符:||
select empno||ename from emp;
2.select 1+1 from dual(虚表)必须有from
3.无函数,是关键字获取当前(数据库)时间sysdate
select sysdate from dual;
4.向表中添加数据:select *from emp for update
5.commit;(提交)
6.select
7
根据字段deptno 去除重复行先显示出来
:select distinct deptno from emp;

MYSQL:
连字运算符 concat
select 1+1
获取当前(数据库)时间now();
select now()
select concat(empno,ename) from emp;(连字符)

相同的:
1select * from emp where
empno^=22;不等于
ename like‘%n%’;名字中包含n
不为空:conm is not null;
&& || !
and or not
2 操作数据库:
隐式:不给值默认为空
显式:给出值为空null
3
给一个表插入时间
insert into emp表(empno,hiredate)
value(88,sysdate);
给一个表插入指定的时间
value(444,to_date(‘2017-01-01’,‘yyyy-mm-dd’));
value(444,to_date(‘指定日期’,‘格式’));
4.从旧表emp中复制多行数据插入到新表emp2中
insert into emp2 select empno,ename from emp;
emp2共两个字段,emp多个字段,选择
5.update emp set ename=‘赵’ where empno=66;
6.delete from emp where empno=555;
Oracle单行函数:
1.转为大写:select upper(‘ass’) from dual;
2.转为小写:select lower(ename字段)from emp表;
3.首字母大写:select initcap(ename)from emp;
4.截取:select substr(‘12345678’,5,2)from dual;下标从1开始,从下标为5开始截取2个
5.select instr(‘12345’,‘23’,3)from dual;从下标为3开始找有无字符串23,没有则返回0
区别index 下标从0开始,,没有返回-1;
6.替换:select replace(ename,‘s’,’*’)from emp;
将s替换为**
7.
从左/右补齐:左补齐select empno from emp;

rpad :select lpad(empno,6,‘0’)from emp;要补齐6位,用0补,在左面补。
中文占2位。

8.round四舍五入:.后留下几位
select round(1000.243,3)from dual;
select round(199.243,-1)from dual;200.

9.截断去掉 trunc:点后保留几位无进位
select trunc(199.254,2)from dual;
10.这一天的下个星期几:
select next_day(sysdate,‘星期一’)from dual;
11.
select next_day(hiredate时间字段,‘星期一’)from emp;

12.两个日期间有几个月
select months_between(hiredate,sysdate)from emp;
.两个日期之间有几年:
select months_between(hiredate,sysdate)/12 from emp;

13.当前日期加几个月后是哪一天
select add_months(sysdate,3)from dual;
14.查出当月的最后一天
select last_day(sysdate)from dual;
15某人入职那一天的当月而最后一天
.select last_day(hiredate)from emp;
16.
在这里插入图片描述

1)9:表示一个数字,9的个数决定显示的宽度,如小数点后显示的小于实际数字,那么实际数字按照显示的位数四舍五入
2)$:显示美元符号
3)L:浮动本地货币符号(这个与字符集有关系,如果是中文字符集,那么会显示¥)
4).:小数点位置指定
5),:显示逗号位置

STR_TO_DATE(‘2018-01-01’,’%Y-%m-%d’)
DATE_FORMAT(now(),’%Y-%m-%d’)

插入日期,需要规定好日期的格式
insert into emp (empno,hiredate) values (123,to_date(‘2018-01-01’,‘yyyy-mm-dd’));

执行:commit;

日期转为字符串显示钱的格式,L:当地的货币,9:表示一个数字
点之后,保留几位

17. select to_char(hiredate,‘mm’) from emp;
18.查看01部门每个人的入职时间在几月
select * from emp where to_char(hiredate,‘mm’) = ‘01’;

  1. 每三位一个逗号
    select to_char(‘54545454123.456789523’,‘L999,999,999,999.999999’) from dual;

20.通用函数
在这里插入图片描述
mysql中同一加减
select comm+500 from emp;但是select中null+500=null;
Oracle中同一加减:nvl
select **nvl(**comm,0)+500 from emp;
给comm+500,如果comm为空则将空当做第二个对待即为0;
select nvl2(comm,不为空时的值,为空时的值)from emp;

创建一个表格dept:
create table dept(
deptno number(3) primary key,
dname varchar2(30),
loc varchar2(30)
);

表联查
1 select emp.ename,dept.dname from emp,dept where emp.deptno = dept.deptno;
2. select e.ename,d.dname from emp e,dept d where e.deptno = d.deptno;

3 select emp.ename,dept.dname from emp,dapt where emp.deptno = dept.deptno;
4 select e.ename,d.dname from emp e,dept d where e.deptno = d.deptno;

5 select e.ename,d.dname from emp e inner join dept d on e.deptno = d.deptno;
6 select e.ename,d.dname from emp e left join dept d on e.deptno = d.deptno;
7 select e.ename,d.dname from emp e right join dept d on e.deptno = d.deptno;
等值连接(功能相同*inner join)(on——where)

区别:只有等值连接可以用(+),inner join不可以

  1. select e.ename,d.dname from emp e,dept d where e.deptno = d.deptno(+);

全外链接
9 select e.ename,d.dname from emp e full join dept d on e.deptno = d.deptno;

  1. select ename,mgr from emp;

select e1.ename,e2 ename from emp e1,empe2 where e1.mgr = e2.empno**(+);**

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
大于最小的一个在这里插入图片描述
大于其中的任何一个
在这里插入图片描述

在这里插入图片描述
any= <=>in

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值