ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle与MySQL的区别2

Oracle与MySQL的区别2

原创 Linux操作系统 作者:adrain_001 时间:2012-02-25 22:58:14 0 删除 编辑

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


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

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


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 school@localhost=old_password('school');
(自动创建用户名: school)
mysql默认的是本地主机是localhost,对应的IP地址就是127.0.0.1,所以你用你的IP地址登录会出错,如果你想用你的IP地址登录就要先进行授权用grant命令。
mysql>grant all on *.* to root@202.116.39.2 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 user@localhost identified by 'something' with
  增加新用户
  格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
  GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;
  GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;
  删除授权:
  mysql> revoke all privileges on *.* from root@"%";
  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 custom@ it363.com identified by ' passwd'

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



      d.查看用户权限:
         show grants for username(用户名)
         eg. show grants for root@'localhost';
               show grants for feier@localhost;
      e.收回用户权限和删除用户
         显示结果: (图收回用户权限和删除用户)
         1.grant all privileges on students.* to feier@localhost
          收回权限:
         2.revoke all privileges on students.* from feier@localhost(收回用户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:
       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;


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(第一个数字代表从第几行开始,第二个数字代表查询的记录数)

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26690043/viewspace-717151/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 编写PL/SQL代码
请登录后发表评论 登录
全部评论

注册时间:2012-02-13

  • 博文量
    113
  • 访问量
    259896