MySQL和Oracle的异同(2012.07.30)

同事shirly和alan整理

1数据类型

MySQL

Oracle

Note

int/double

number

数值型

varchar

varchar2

小文本型

text

varchar2

对于普通文本大于255,且小于4000的列

text

blob

对于comment

longblob

blob

2

2.1创建表(同)

create table tableName(

columnName1 int,

columnName2 int

)

2.2删除表(异)

MySQL:

drop table if exists tableName

Oracle:

drop table tableName

注:Oracle没有if exists关键字,也没用类似if existsSQL语法。

3

3.1添加列(异)

MySQL:

A.altertable tableName add columncolumnName1 int;

B.alter tabletableName add column columnName1 int, add column columnName2int;

注:其中关键字column可有可无。

Oracle:

A.alter tabletableName add columnName1 int;

B.alter tabletableName add (columnName1 int);

C.alter tabletableName add (columnName1 int, columnName2 int);

注:对于A,只有添加单列的时候才可使用,对于添加多列时需要使用C,不能像MySQL那样重复使用add column关键字。

3.2删除列(异)

MySQL:

A.alter tabletableName drop column columnName1

B.alter tabletableName drop column columnName1, drop column columnName2

注:其中关键字column可有可无。

Oracle:

A.alter tabletableName drop column columnName2

B.alter tabletableName drop (columnName1)

C.alter tabletableName drop (columnName1,columnName2)

注:对于A,只有删除单列的时候才可使用,对于删除多列时需要使用C,不能像MySQL那样重复使用drop column关键字。

3.3修改列名(异)

MySQL:

alter tabletableName change column columnNameOldcolumnNameNew columnType;

Oracle:

alter tabletableName rename column columnNameOld tocolumnNameNew;

3.4修改列类型(说明)

A.MT中修改列的类型并非使用SQL语句进行一步到位的修改,而是通过以下流程:

B.添加临时列

C.将需要更改的列的值经过类型转换的验证后,赋值给临时列

D.删除原有列

E.将临时列的列名修改为原有列列名

4索引

在整个数据库内,MySQL的索引可以同名,也就是说MySQL的索引是表级别的;但是Oracle索引不可以同名,也就是说Oracle的索引是数据库级别的。

4.1创建索引(同)

create indexindexName on tableName (columnName);

4.2删除索引(异)

MySQL:

alter tabletableName drop index indexName

Oracle:

drop indexindexName

4.3查询表的索引(异)

MySQL:

show index fromtableName

Oracle:

select index_name, table_name,column_namefrom user_ind_columns where table_name=' tableName '

5其他

Oracle用户名解锁

Alter userscottaccount unlock;

授权用户

Grant connect ,resource,create session,create view toscott;

创建用户

Create user sha indetifiedby admin 用户名:sha密码:admin

修改用户system密码为manager

SQL> alter user systemidentified by manager;

你可能感兴趣的:(oracle)