oracle与mysql的差用语句的区别

以下是oracle和mysql常用语法上的不同,大家有补充的可以留言,我会加上去!!!!


/*
  数据库:
    mysql可以自己创建数据库,oracle不能创建数据库,只能创建的是实例。
    sql语句创建:
      create database 数据库名;
      create database 数据库名 character set 字符集;
*/
create database j0815_2;
create database j0815_3 CHARACTER set utf-8;
--查看数据库
show databases;
show CREATE database j0815_2;

--删除数据库
drop database j0815_3;
--切换数据库
use j0815_1;

--查看正在使用的数据库
select database();

/*
  表:
  mysql:
    1、mysql 没有number、varchar2()类型;
    2、mysql是可以自定义自动增长:auto_increment;
    3、mysql有double
  oracle:
    1、oracle没有double,有int类型,但是number来取代
    2、oracle不允许自定义自动增长:auto_increment; 主键自带了自增长,序列。
    3、oracle只能float类型
*/
mysql:
create table emp(
  eno int primary key auto_increment,
  ename varchar(20) not null unique,
  job varchar(10) default '员工',
  mgr int(10),
  hiredate date,
  comm double
);
oracle:
CREATE TABLE empemp(
  eno number PRIMARY KEY,
  ename VARCHAR(20) NOT NULL UNIQUE,
  job VARCHAR(10) DEFAULT '员工',
  mgr number(10),
  hiredate DATE,
  comm float
);

/*
  删除表:
   mysql:
    drop table 表名;
    drop table if exists 表名;
   oracle:  
    drop table 表名;
*/
mysql:
DROP TABLE IF EXISTS user1;
DROP TABLE emp;
oracle:
DROP TABLE emp;

/*
  列:
   mysql:
    1、alter table 表名 add column 字段 数据类型;
    2、alter table 表名 add column 字段1 数据类型,
      add column 字段2 数据类型,add column 字段3 数据类型,...;

  oracle:
    1、alter table 表名 add 字段 数据类型;
    2、alter table 表名 add (字段 数据类型);
    3、alter table 表名 add  (字段1 数据类型, 字段2 数据类型, 字段3 数据类型,...);

*/
mysql:
  alter table emp add column marriage varchar(2);
  alter table emp add  marriagdate date;
  alter table emp add column lovename varchar(20),add column loveage int;

oracle:
  alter table emp add marriage varchar2(2);
  alter table emp add (marriagdate date);
  alter table emp add  (lovename varchar2(20), loveage int);

/*
  删除字段:
    mysql:
      1、alter table 表名 drop column 字段;
      2、alter table 表名 drop column 字段1,drop column 字段2,...;
      
    oracle:
      1、alter table 表名 drop column 字段;
      2、alter table 表名 drop (字段);
      3、alter table 表名 drop (字段1,字段2,...);
*/
mysql:
alter table emp drop column marriage;
alter table emp drop column marriagdate,drop column lovename,drop column loveage;

oracle:
alter table emp drop column marriage;
alter table emp drop (marriagdate);
alter table emp drop (lovename,loveage);
desc emp;

/*
  修改列名:
    mysql:alter table 表名 change column 原来的字段 新的字段名字 字段类型(必须);
    oracle:alter table 表名 rename column 原来的字段 to 新的字段名字; -- 字段类型(不能有类型)
*/
mysql:
 alter table emp change column mgr manager varchar(20);
oracle:
alter table emp rename column mgr to manager; -- 字段类型(不能有类型)

/*
  修改类型:
  mysql:alter table 表名 modify column 字段名 类型;--无论是否有记录,都可以修改
    (如果要改成新的字段,就把原来的记录存到新的字段中,把旧字段里的记录清空,再把保存的记录还原回去)
  oracle:alter table 表名 modify (字段名 类型 约束条件);--已经有记录存在了,不允许修改
*/
mysql:
alter table emp modify column manager int(10);
oracle:
alter table emp_copy modify (mgr  varchar2(30) default 'null');
select * from emp_copy;
desc emp_copy;

/*
  索引:
    1、创建索引相同: create index 索引名 on 表名(字段名);
    2、删除索引:
      mysql: alter 表名 drop index 索引名;
      oracle: drop index 索引名;
    3、查询索引:
      mysql:show index from 表名;
      oracle:select 索引名,表名 ,字段名 from 表名 where 索引条件;
      

 create index idx1 on emp(comn);      
 select * from emp where comn = 300;  
 drop index idx1;
      
*/
mysql:
CREATE INDEX idx1 ON emp(comm);     
ALTER TABLE emp DROP INDEX idx1;
SHOW INDEX FROM emp;

oracle:
CREATE INDEX idx1 ON emp(comn);
select * from emp where comn = 300;  
drop index idx1;




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值