操作
Oracle
MySQL
创表指定表空间
create table…tablespace x
没有表空间,使用默认存储引擎
CTAS建表
create table…as select…不能新增字段和改变字段属性
create table t1(a int,b int) as select a,b,a,b from t2可以选择新的字段和字段属性
表结构复制
create table t1 as select * from t2 where 1=0,只复制字段定义,不包括约束
create table t1 like t2,复制包括约束
全局分区索引
create index…global partition by
无
重命名列
alter table t1 rename c1 to c2
alter table t1 change c1 c2
修改列类型
alter table t1 modify c1 integer
alter table t1 change c1 c1 int
修改列缺省值
alter table t1 modify c1 default 0
alter table t1 change c1 c1 int default 0
修改列非空
alter table t1 modify c1 not null
alter table t1 change c1 c1 int not null
重命名表
rename t1 to t2
alter table t1 rename t2
rename table t1 to t2
删除索引
drop index idx1
alter table t1 drop index idx1
drop index idx1 on t1
重命名索引
alter index idx1 rename to idx2
删除重建
重建索引
alter index idx1 rebuild
无
禁用索引
alter index idx1 unusable
无
删除表
drop table t1,如果表不存在报错
drop table if exists t1,判断表是否存在,存在删除,不存在不报错
重命名视图
rename v1 to v2
rename view v1 to v2
左右连接
select * from t1,t2
where t1.c1=t2.c2(+);
select * from t1,t2
where t1.c1(+)=t2.c2;
select * from t1 left join t2
on t1.c1=t2.c2;
select * from t1 right join t2
on t1.c1=t2.c2;
交集
select intersect select
select inner join select;使用inner join代替
差集
Select minus select
select left join where,使用left join where代替
获取固定值
select 1 from dual
select 1
字段连接
select c1||c2 from t1
select concant(c1,c2) from t1
结果子查询
select * from (select * from t)
select * from (select * from t) t1 结果集需要有别名
Merge
merge into
replace into
行号
rownum
无,需要使用用户变量来实现
分析函数
max() over()
min() over()
……
无,需要自行实现
位图索引
create bitmap index
无
Top查询
select * from (select rownum from t1 order by c1)
where rownum>=1 and
rownum<=5
select * from t1 order by c1 limit 5
语句内部临时表
with as
无
创建存储过程/
create or replace procedure
create procecure
创建函数
create or replace function
create function
创建视图
create or replace view
create view
创建触发器
create or replace trigger
create trigger
创建包
create or replace package
无
创建用户
create user u1 identified by p1 default tablespace x temporary tablespace y
create user u1 identified by p1
修改密码
alter user u1 identified by p2
mysqladmin -u u1 -p p1 password p2
大小写
不区分
缺省数据库、表名区分大小写,列名不区分;
可以设置lower_case_table_names=1都不分区