1.在ORACLE中用select * from all_users显示所有的用户,而在MYSQL中显示所有数据库的命令是show databases。对于我的理解,ORACLE项目来说一个项目就应该有一个用户和其对应的表空间,而MYSQL项目中也应该有个用户和一个库。在ORACLE(db2也一样)中表空间是文件系统中的物理容器的逻辑表示,视图、触发器和存储过程也可以保存在表空间中。而MYSQL并没有使用表空间来进行管理。
        2.查询当前所有的表。ORACLE: select * from tab,MYSQL:show tables。
        3.改变连接用户(库)。ORACLE:conn 用户名/密码@主机字符串,MYSQL:use 库名。
        4.显示当前连接用户(库)。ORACLE:show user,MYSQL:connect。
        5.执行外部脚本命令。ORACLE:@a.sql,MYSQL:source a.sql。

比版本

Personal Oracle 10 

mysql 5.1

默认安装目录

可选择

C:/program files/MYSQL

各种实用程序所在目录

可选择

C:/program files//BIN

控制台工具

SVRMGR.EXE

SVRMGR23.EXE

mysqladmin.exe

数据库启动程序

0start73.exe screen

mysqld-shareware.exe

关闭数据库命令

ostop73.exe

mysqladmin.exe -u root shutdown

客户程序

SQL*Plus

mysql

启动命令

c:/orawin95/bin/sqlplus.exe

c:/mysql/bin/mysql.exe

带用户启动方式

(直接连库方式)

c:/orawin95/bin/sqlplus.exe system/manager@TNS

c:/mysql/bin/mysql.exe test

c:/mysql/bin/mysql.exe -u root test

安装后系统默认用户(库)

sys

system

scott

mysql

test

显示所有用户(库)

SQL >select * from all_users;

C:/mysql/bin>mysqlshow

C:/mysql/bin>mysqlshow --status

mysql> show databases;

退出命令

SQL> exit

SQL> quit

mysql> exit

mysql> quit

改变连接用户(库)

SQL> conn 用户名/密码@主机字符串

mysql> use 库名

查询当前所有的表

SQL> select * from tab;

SQL> select * from cat;

mysql> show tables;

c:/mysql/bin>mysqlshow 库名

显示当前连接用户(库)

SQL> show user

mysql> connect

查看帮助

SQL> ?

mysql> help

显示表结构

SQL> desc 表名

SQL> describe 表名

mysql> desc 表名;

mysql> describe 表名;

mysql> show columns from 表名;

c:/mysql/bin>mysqlshow 库名 表名

日期函数

SQL> select sysdate from dual;

mysql> select now();

mysql> select sysdate();

mysql> select curdate();

mysql> select current_date;

mysql> select curtime();

mysql> select current_time;

日期格式化

SQL> select to_char(sysdate,'yyyy-mm-dd') from dual;

SQL> select to_char(sysdate,'hh24-mi-ss') from dual;

mysql> select date_format(now(),'%Y-%m-%d');

mysql> select time_format(now(),'%H-%i-%S');

日期函数

(增加一个月)

SQL> select to_char(add_months(to_date('20000101','yyyymmdd'),1),'yyyy-mm-dd') from dual;

结果:2000-02-01

SQL> select to_char(add_months(to_date('20000101','yyyymmdd'),5),'yyyy-mm-dd') from dual;

结果:2000-06-01

mysql> select date_add('2000-01-01',interval 1 month);

结果:2000-02-01

mysql> select date_add('2000-01-01',interval 5 month);

结果:2000-06-01

别名

SQL> select 1 a from dual;

mysql> select 1 as a;

字符串截取函数

SQL> select substr('abcdefg',1,5) from dual;

SQL> select substrb('abcdefg',1,5) from dual;

结果:abcde

mysql> select substring('abcdefg',2,3);

结果:bcd

mysql> select mid('abcdefg',2,3);

结果:bcd

mysql> select substring('abcdefg',2);

结果:bcdefg

mysql> select substring('abcdefg' from 2);

结果:bcdefg

另有SUBSTRING_INDEX(str,delim,count)函数

返回从字符串str的第count个出现的分隔符delim之后的子串。

如果count是正数,返回最后的分隔符到左边(从左边数) 的所有字符。

如果count是负数,返回最后的分隔符到右边的所有字符(从右边数)。

执行外部脚本命令

SQL >@a.sql

1:mysql> source a.sql

2:c:/mysql/bin>mysql <a.sql

3:c:/mysql/bin>mysql 库名 <a.sql

导入、导出工具

exp.exe

exp73.exe

imp.exe

imp73.exe

mysqldump.exe

mysqlimport.exe

改表名

SQL> rename a to b;

mysql> alter table a rename b;

执行命令

;<回车>

/

r

run

;<回车>

go

ego

distinct用法

SQL> select distinct 列1 from 表1;

SQL> select distinct 列1,列2 from 表1;

mysql> select distinct 列1 from 表1;

mysql> select distinct 列1,列2 from 表1;

注释

--

#

--

当作计算器

SQL> select 1+1 from dual;

mysql> select 1+1;

限制返回记录条数

SQL> select * from 表名 where rownum<5;

mysql> select * from 表名 limit 5;

新建用户(库)

SQL> create user 用户名 identified by 密码;

mysql> create database 库名;

删用户(库)

SQL> drop user 用户名;

mysql> drop database 库名;

外连接

使用(+)

使用left join

查询索引

SQL> select index_name,table_name from user_indexes;

mysql> show index from 表名 [FROM 库名];

通配符

“%”

“%”和“_”

SQL语法

SELECT selection_list 选择哪些列

FROM table_list 从何处选择行

WHERE primary_constraint 行必须满足什么条件

GROUP BY grouping_columns 怎样对结果分组

HAVING secondary_constraint 行必须满足的第二条件

ORDER BY sorting_columns 怎样对结果排序

SELECT selection_list 选择哪些列

FROM table_list 从何处选择行

WHERE primary_constraint 行必须满足什么条件

GROUP BY grouping_columns 怎样对结果分组

HAVING secondary_constraint 行必须满足的第二条件

ORDER BY sorting_columns 怎样对结果排序

LIMIT count 结果限定


在Oracle中写子查询,只需要将子查询用括号括起即可

(select A, B,?C from TABLE?where CONDITION)

在MySql中写子查询,需要在括号后面写上关键字 as Alias (假名)

(select A, B,?C from TABLE?where CONDITION)as table1


如果在MySql中不写后面的关键字,则会有以下的错误信息

Every derived table must have its own alias


行号 rownum?的书写规范

在Oracle中查询行号,直接写rownum就可以,还能起别名

select?ROWNUM row from TABLE where CONDITION

在MySql中查寻行号,需要在rownum前加@,且不能起别名

select @ROWNUM from TABLE where CONDITION


否则会有以下错误信息

Unknown column 'rownum' in 'field list'