Oracle 学习笔记
一、创建 oracle 数据库
利用 已经创建完了数据库 car1 ,
二、利用 语句创建一个新的用户,赋予用户新的权限。
(创建一个用户,对应的给这个用户创建一个方案,里面存储着这个用户的东西)
创建用户 create user ,一般是具有dba权限的用户才可以进行创建
Create user admin identified by wqhadmin;
(密码要以字母开头,用数字开头是不允许的)
但是创建完后,用户没有任何权限
Grant connect to admin;
二、对数据库数据进行导入、导出
导出分为三种:导出数,导出方案(把一个用户的所有东西都导出),导出数据库
使用exp命令来完成。该命令的常用的选项有:
导出、导出的时候,使用的不是在SQL 中直接进行导入导出,而是在CMD打开的DOS窗口下进行
而是要在 oracle目录的 bin 目录下 (使用的是bin文件夹里的exp.exe)
(具体过程:
Cmd,打开命令行,
d: 切换到d盘下,
cd oracle,切换到oracle目录下,
d:oracle>cd product
一直到
D:oracleproduct10.1.0Db_1BIN>emp ………
使用的是该目录下系统自带的导出工具。
导出表:
(1)导出自己的表
Exp userid=scott/tiger@myoral tables=(emp) file=d:e1.dmp
(不一定非用dmp的后缀名,可以用别的后缀名,要导出多个表,则在tables=(emp,。。。,。。。))
(2)导出其他方案的表
如果用户要导出其他方案的表,则需要dba的权限或是exp_full_database的权限,比如system就可以导出scott的表:exp userid=system/manager@myoral tables=(scott.emp) file=d:e2.dmp
(3)导出表的结构
Exp userid=scott/tiger@accp tables=(emp) file=d:e3.dmp rows=n
(4)使用知道导出方式
Exp userid=scott/tiger@accp tables=(emp) file=d:e3.dmp direct=y
这种方式比默认的常规方式速度要快,当数据量大时,可以考虑使用这样的方法。这时需要数据库的字符集要与客户端字符集完全一致,否则会报错。
导出方案:
导出方案使用export工具导出一个方案或是多个方案中的所有对象(表,索引,约束。。。)和数据,并存放到文件中。
(1)导出自己的方案
Exp scott/tiger@myoral owner=scott file=d:scott.emp
(2)导出其他方案
如果用户要导出其他方案,则需要dba的权限或是exp_full_database的权限,例如用system用户就可以导出任何方案
Exp system/manager@myorcl owner=(system,scott) file=d:system.dmp
这个是同时导出了两个方案,system,scott的
导出数据库:
导出数据库是之利用export导出所有数据库中的对象及数据。
要求该用户具有dba的权限或是exp_full_database权限,
Exp userid=system/manager@myor full=y inctype=complete file=d:e6.dmp
(如果不写,盘符,就会导出到bin目录下,)
Inctype:增量备份,第二次备份的时候要快一些,检查有没有新的数据,速度要快一些,但是具体怎么样,不知道
导入:
导入就是使用import将文件中的对象和数据导入到数据库中,但是导入要使用的文件必须是export所导出的文件,与导出相似,导入也分为导入表,导入方案,导入数据库三种方式:
Imp常用的选项有:
Userid:用于指定知道导入操作的用户名,口令,链接字符串,
Tables:用于指定执行导入操作的表
Fromuser:用于指定源用户
Touser:用于制定目标用户
File:用于指定导入文件名
Full=y:用于指定执行导入整个文件
Inctype:用于指定执行导入操作的增量类型
Rows:指定是否要导入表行(数据)
Ignore:如果表存在,则只导入数据
导入表:
(1)导入自己的表
Imp userid=scott/tyger@myor tables=(emp) file=d:xx.dmp
导出的一是导出全部,二是导出表结构,导入的时候一定要注意
Drop table emp
这张表是scott 自己的表,而且这张表和别的表有主外键的关系,所以如果这个语句换成了
Imp userid=system/manager@myor talbes=(emp) file=d:e6.dmp
是不能成功的,但是如果emp单单就是一张数据表格,不存在主外键的关系,是可以成功的,因为它就是一张数据表,,
换了另外一张dept,就把它导入到了system,
但是在登陆查询的时候,如果是登陆system as sysdba,这时候其实进入的是sys的账户,是查不到这张表的,只有登陆 system ,(as normal),才能查到这张表。
(2)导入表到其他用户
要求该用户具有dba的权限,或是imp_full_database
Imp userid=system/manager@myor tables=(emp) file=d:xx.dmp touser=scott
(3)导入表结构
之导入表的结构而不导入数据
Imp userid=scott/tiger@myor tables=(emp) file=d:xxx.dmp rows=n
(4)导入数据
如果对象(如此表)已经存在可以只导入表的数据
Imp userid=scott/tiger@myor tables=(emp) file=d:xxx.dmp ignore=y
导入方案:
导入方案是指使用import工具将文件中的对象和数据导入到一个或是多个方案中。如果要导入其他方案,要求该用户具有dba的权限,或是 imp_full_database
(1)导入自身的方案
Imp userid=scott/tiger@myor file=d:xxx.dmp
(2)导入其他方案,
要求该用户具有dba的权限
Imp userid=system/manger@myor file=d:xx.dmp fromuser=system touser=scott
把system的方案 导入到 scott中去
导入数据库
在默认情况下,当导入数据库,会导入所有对象结构和数据,案例如下
Imp userid=system/manager full=y file=d:xxx.dmp
数据库实例@myor 都不要写了,系统会自动创建一个实例