暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle跟Mysql的区别和联

鑫海方圆 2021-07-13
439

一、主键自增长:
1)oracle:
       使用序列实现,比如创建序列,起点是1000,步进是1:
  create sequence myseq increment by 1 start with 1000
  增加记录:
 insert into student(stuId,stuName) values(myseq.nextval,'peter')

2) mysql:
  在建表时指定主键自增长
  create table student(stuId int auto_increment primary key,stuName char(20))
  增加记录:
  insert into student(stuName) values ('peter')

二、命令行工具:
  Oracle 的官方命令行工具是SQLPlus
 mysql 的命令行工具是mysql:

输入标题输入标题

三、关于用户的概念:
1)Oracle
  在Oracle中有一个用户的概念,用来登录到数据库,比如openlab用户。用户拥有一定的权限,可以创建表、视图等。用户名下的数据表,视图等对象的集合叫Schema。
  数据库安装好后。建立的默认用户是:sys.system.scott。
  创建用户:create user 用户名 identified by 密码(一般是DBA来创建,普通用户没有创建用户的权限)
  在SQLPLus工具中切换用户:conn 用户名/密码@主机字符串
  查看当前用户:show  user
  显示所有的用户:select  *  from  all_users
  显示用户下的表:select  *  from  tab

2) mysql
  mysql中对应于oracle中用户的概念是database。登陆后要先建立database,才能建表。默认创建的database是mysql , test。
  创建数据库:create  databases 库名
  切换用户:use  database 库名
  查看当前用户:connect
  显示所有数据库:show  databases
  显示用户下的表:show  tables

输入标题输入标题
四、假设有外部脚本文件 C:\script.sql,执行外部脚本文件的方式:
1)Oracle:
  @  script.sql
2) mysql:
  source  script.sql

五、SQL语句中的表达式:
1)Oracle:
  select 12 * 10 from dual
2) mysql:
  select 12 * 10


六、取系统时间
1)Oracle:
  select sysdate from dual
2) mysql:
  select now()
  select sysdate()
  select curdate()
  select select current_date
  select curtime()
  select current_time

输入标题输入标题
七、日期格式转换:
1)Oracle:
  select to_char(sysdate,'yyyy-mm-dd') from dual;
  select to_char(sysdate,'hh24-mi-ss') from dual;
2) mysql:
  select date_format(now(),'%Y-%m-%d')
  select time_format(now(),'%H-%i-%S')
1、直接在数据库 用sql语句就把 日期时间处理好
2、Java代码里 把日期处理好(框架)
3、页面 用JavaScript代码 处理好
4、标签(C S)

输入标题输入标题
八、日期函数:6个月以后
  1)Oracle:
  select add_months(sysdate,6) from dual
  2) mysql:
  select date_add(now(),interval 6 month)

九、字符函数:从‘helloworld’中截取hello
1)Oracle:
  select substr('helloworld',1,5) from dual;
2) mysql:
  select substring('helloworld',1,5)

十、修改表名:
1)Oracle:
  rename oldname to newname
  也可以用来修改各种对象名称
2) mysql:
  alter table oldname to newname

输入标题输入标题

十一、关于组函数
  select deptno,count(*) from emp
  这种语法,在mysql中是正常的,而在oracle中是会报错的,select列表中的deptno列必须跟在group by 短语后:
  select deptno,count(*) from emp group by deptno

十二、分页语句
1)Oracle:
  select * from (select t.*,rownum rn from (select * from emp) t where rownum < 11) where rn > 5
  查到的是第6~10条记录
2) mysql:
  select * from emp limit 5,5
  查到的是第6~10条记录
  
十三、计算每个员工的年薪:工资 * 12 + 奖金 * 12
  select ename,sal*12 + nvl(comm,0)*12 from emp
  nvl :单行函数,如果为空,返回0
  Oracle : nvl
  Mysql : ifnull
  Sqlserver  :  isnull



文章转载自鑫海方圆,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论