Oracle与MySQL的区别

1、连接数据库(数据库名均为orcl)
Oracle: set oracle_sid=orcl
MySql:   user orcl
2、创建用户的语句:(用户名为userman 密码为userman)
Oracle:create user useman identified by userman
grant dba to userman;
MySql: grant select,insert,update,delete on InnoDB.* to[email protected]identified by userman;
(增加一个用户userman密码为userman,让其只可以在localhost上登录, 并可以对数据库 orcl进行查询、插入、修改、删除的操作(localhost指本地主机, 即mysql数据 库所在的那台主机),这样用户即使用知道userman的密码,也无法从internet上直 接访问数据库,只能通过mysql主机上的web页来访问了.)
3、用户的密码问题:
Oracle: 用户必须有密码
MySql: 用户可以没有密码,创建用户的时候设置又密码,但可以通过命令取消密码
grant select,insert,update,delete on orcl.* to[email protected]
identified by "";
4、数据库的开启/停止:
Oracle:alter databaser open;常用的关闭数据库:shutdown immediate;
MySql: net start mysql;   关闭数据库: net stop mysql;
5、数据库的登录:
Oracle: sqlplus sys/feier as sysdba/connect userman/userman
MySql: mysql -h localhost -u root -p
-h 是主机地址
-u 是用户名
root 是mysql的默认权限用户,即管理员权限...
你可以使用其他登录用户,但mysql中的用户不等于你系统的用户;如你登录QQ,不能使用你系统的用户名登录一样.
6、查询当前所有的表:
ORACLE: select * from all_tables
MYSQL:show tables.
7、改变连接用户(库):
ORACLE:conn 用户名/密码(@主机字符串)
MYSQL:use 库名
8、显示当前连接用户(库):
ORACLE:show user
MYSQL:connect
9、执行外部脚本命令:
ORACLE:@C:\a.sql(C:\a.sql指脚本文件的路径)
MYSQL:source C:\a.sql(C:\a.sql指脚本文件的路径)

 

 

1、在DOS下连接root用户(密码为mysql)
cd D:\Program Files\MySQL\MySQL Server 5.1\bin
mysql -u root -p
(下面会提示你输入密码)
修改用户密码的命令:
mysqladmin -u root -pmysqlpwd password mysql
mysql -u root -p
Enter password:mysql

Oracle与MySQL的区别

2、在Oracle和Mysql都是使用show errors 显示错误信息,但是Mysql中不提示具体的错误信息,只是之处错误大约在什么附近...

3、显示数据库:
Oracle: select dbid,name,log_mode from v$database;(显示当前连接的数据库)
MySql:   show databases(显示该系统中的所有数据库)
               select database()   (展示当前连接的数据库);(如图)

Oracle与MySQL的区别

4、创建数据库:(其中school为创建的数据库名称)
Oracle: a、图形化界面创建 b、手工创建数据库(略)
MySql:
create database school;
grant select,insert,update,delete,create,drop,alter on school.* to school(用户名)@localhost identified by 'school';(密码用单引号引起来)
set password for[email protected]=old_password('school');
(自动创建用户名: school)
mysql默认的是本地主机是localhost,对应的IP地址就是127.0.0.1,所以你用你的IP地址登录会出错,如果你想用你的IP地址登录就要先进行授权用grant命令。
mysql>grant all on *.* to[email protected]identified by '123456';
说明:grant 与on 之间是各种权限,例如:insert,select,update等
  on 之后是数据库名和表名,第一个*表示所有的数据库,第二个*表示所有的表
  root可以改成你的用户名,@后可以跟域名或IP地址,identified by 后面的是登录用的密码       ,可以省略,即缺省密码或者叫空密码。

5、删除数据库:
Oracle: shutdown immediate;
             startup mount restrict exclusive;(保证受限的独占模式)
             drop database;
MySql: drop database school;(school指的是数据库名称)
mysqladmin drop database
5、表的创建:(创建了students、courses、enrollment三个表)
创建表之前要定位到使用的数据库
use school;(用use命令切换数据库)
创建表:
Create table Students2(
Sno varchar(10) primary key,
Sname varchar(8) not null,
Ssex varchar(2) not null check (Ssex='F' or Ssex='M'),
Sage int,
Sdept varchar(20) default 'Computer'
);

create table courses(
Cno varchar(6) primary key,
Cname varchar(20) not null,
ProCno varchar(6),
Credits int
);

create table enrollment(
Sno varchar(10),
Cno varchar(6),
Grade int,
CONSTRAINT PK_SCNO PRIMARY KEY (Sno,Cno),
CONSTRAINT FK_SNO FOREIGN KEY (SNO) REFERENCES STUDENTS (Sno),
CONSTRAINT FK_CNO FOREIGN KEY (CNO) REFERENCES COURSES (Cno)
);

创建表时注意Mysql中的数据类型

在创建表时Oracle和Mysql命令基本相同,只是要注意数据类型的差异
6、表的删除以及有关数据的操纵均与Sql语句符合(基本没有什么区别)
7、导入.sql文件
Oracle: @ C:/mysql.sql(在相应的方案下)
Mysql:   use databasename
             source C:/mysql.sql

8、用文本方式将数据装入数据表中;
mysql>load data local infile "D:\mysql.txt" into table tablename(首先得创建一个名为tablename的表名)

注意:文本数据应符合的格式: 字段之间用tab键隔开,null值用\n来代替;
1 feier F Computer
2 shuang F IS
假设你把这两组数据存为student.txt文件
数据库传入命令load data local infile “D:\mysql.txt” into table students

注意:你最好将文件复制到\mysql\bin 目录下,并且要先用use名林打开表所在的数据库.


9、用户问题:
MySql:
      a.修改用户密码:
         update mysql.user set password          =PASSWORD('password') where User='root';
         flush privileges;
        
      b.创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个
  mysql> grant all privileges on *.* to[email protected]identified by 'something' with
  增加新用户
  格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
  GRANT ALL PRIVILEGES ON *.* TO[email protected]IDENTIFIED BY 'something' WITH GRANT OPTION;
  GRANT ALL PRIVILEGES ON *.* TO[email protected]"%" IDENTIFIED BY 'something' WITH GRANT OPTION;
  删除授权:
  mysql> revoke all privileges on *.* from[email protected]"%";
  mysql> delete from user where user="root" and host="%";
  mysql> flush privileges;
  创建一个用户custom在特定客户端it363.com登录,可访问特定数据库fangchandb
  mysql >grant select, insert, update, delete, create,drop on fangchandb.* to [email protected] it363.com identified by ' passwd'

      c.查看【所有】用户信息:
         describe mysql.user;(mysql.user为系统表)
         select user,host from mysql.user;(select user,host password from mysql.user;)但密码是加密的;

Oracle与MySQL的区别

      d.查看用户权限:
         show grants for username(用户名)
         eg. show grants for[email protected]'localhost';
               show grants for[email protected];
      e.收回用户权限和删除用户
         显示结果: (图收回用户权限和删除用户)
         1.grant all privileges on students.* to[email protected]
          收回权限:
         2.revoke all privileges on students.* from[email protected](收回用户feier对student数据库              的所有操作权限)
         注意删除用户之前,必须收回他的权限,而在Oracle删除用户直接就可以删除它被授予的 权限(Connect sys/feier as sysdba;   drop user feier)
         因为用户信息是存储在系统表mysql.user
         删除用户:
         3.delete from mysql.user where user='username' (and host='hostname')(这里的username指你要删除的用户名);
         4.Flush privileges (当授权信息发生变化时,就用flush告诉服务器重载授权表)

Oracle与MySQL的区别


Oracle:
       a.创建用户
          create user username identified by userman;
       b.删除用户
          connect sys/feier as sysdba
          drop user userman;

        c.给用户授予权限和收回权限均符合SQL的语法
10、备份数据库:
         cd D:\Program Files\MySQL\MySQL Server 5.1\bin(命令在bin目录下执行)
         a.导出整个数据库
            导出文件默认是存在安装目录下的\bin目录
            mysqldump -u 用户名 -p 数据库名 > 导出的文件名
            mysqldump -u user_name -p123456 database_name > outfile_name.sql

         b.导出一个表
            mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
            mysqldump -u user_name -p database_name table_name > outfile_name.sql

         c.导出一个数据库结构
            mysqldump -u user_name -p -d --add-drop-table database_name > outfile_name.sql
            -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

          d.带语言参数导出
            mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt             database_name > outfile_name.sql

11、显示表的具体结构:
mysql>describe tablename;
( in mysql “describe” can't describe database(DB) information)

或者desc tablename;
或者show columns from tablename;

Oracle与MySQL的区别

12、不同的DBMS的授权方式的不同!
Oracle: 是在一个数据库下创建多个用户,再对不同的用户授予操作这个数据库的不同权限
MySql:   可以创建多个数据库,创建多个用户,对不同的用户授予不同的数据库操作.

13、数据查询方面的区别:
   a.查询前几行数据:
      Oracle:select * from students rownum<=3 order by Sno DESC;
                  select * from (select * from students order by Sno DESC) where rownum<=3
                  注意在Oracle中这两个句子返回的结果是相同的,都代表先排序再筛选出前3条记录
      MySql: select * from students limit 0,2(第一个数字代表从第几行开始,第二个数字代表查询的记录数)
Oracle与MySQL的区别

    b.更改表名:
      Oracle: alter table oldtablename rename to newtablename;
      MySql:   rename table oldtablename to newtablename;
                     或者alter table oldtablename rename to newtablename;与(Oracle相同)