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.* touserman@localhostidentified by userman;
(增加一个用户userman密码为userman,让其只可以在localhost上登录, 并可以对数据库 orcl进行查询、插入、修改、删除的操作(localhost指本地主机, 即mysql数据 库所在的那台主机),这样用户即使用知道userman的密码,也无法从internet上直 接访问数据库,只能通过mysql主机上的web页来访问了.)
3、用户的密码问题:
Oracle: 用户必须有密码
MySql: 用户可以没有密码,创建用户的时候设置又密码,但可以通过命令取消密码
grant select,insert,update,delete on orcl.* touserman@localhost
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
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 forschool@localhost=old_password('school');
(自动创建用户名: school)
mysql默认的是本地主机是localhost,对应的IP地址就是127.0.0.1,所以你用你的IP地址登录会出错,如果你想用你的IP地址登录就要先进行授权用grant命令。
mysql>grant all on *.* toroot@202.116.39.2identified 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 *.* touser@localhostidentified by 'something' with
增加新用户
格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
GRANT ALL PRIVILEGES ON *.* TOmonty@localhostIDENTIFIED BY 'something' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TOmonty@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;
删除授权:
mysql> revoke all privileges on *.* fromroot@"%";
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 forroot@'localhost';
show grants forfeier@localhost;
e.收回用户权限和删除用户
显示结果: (图收回用户权限和删除用户)
1.grant all privileges on students.* tofeier@localhost
收回权限:
2.revoke all privileges on students.* fromfeier@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相同)