1.启动isqlplus:isqlplusctl start
2.控制台:http://localhost:1158/em
Oracle物理结构:
3.数据库test:包含*.log日志文件,*.ctl控制文件,和*.dbf数据文件,先启动控制文件,然后打开数据文件
4.日志文件:重做日志文件,归档日志文件
5.sqlplus “sys/test as sysdba”
6.查看控制文件:DESC v$controlfile
select status,name from v$controlfile
7.查看数据文件:DESC v$datafile
8.查看日志文件:DESC v$logfile
9.参数文件:控制文件是由参数文件来查找的,文件位置10.2.0\db_1\database\*.ora
Oracle内存结构
10.SGA:DB buffer,Redo buffer,固定SGA,大共享区,共享池
Oracle逻辑结构
11.块(block)盘区(extent)段(segment)表空间(tablespace)数据文件(datafile)
一个表空间对应多个段
一个表空间对应多个数据段
但是一个段可以跨越多个数据文件
一个段包括多个盘区
一个盘区包括多个块
块是最小单位
SQLPLUS基础
1.sqlplus “sys/test as sysdba”
sqlplus scott/tiger
2.如果实例没有打开
sqlplus/nolog
connect sys/test as sysdba
startup (先启动实例,然后启动控制文件)
3.
shutdown 正常关闭
shutdown immediate 执行完当前sql语句后关闭(最常用)
shutdown transactional 执行完当前事务后关闭
shutdown abort 强行关闭数据库
4.启动isqlplus
http://localhost:5560/isqlplus
不能以sys登录,因为sys登录一定要用sysdba身份
select * from books
select * from dept
5.help index:显示所有oracle支持的命令
? 命令名 可以查看帮助
6.SET SQLBLANKLINES ON 设置sql语句中可以使用空行
7.select * from dept where deptno=$tt
设置替代变量值,使用这种方法,只安排一个执行计划
8.list 可以查看缓冲区中的命令
l:list 的所写
l3查看第三行
9.change:改变缓冲区中的的命令
c:change的简写
c/要替换的地方/正确的内容
10.缓冲区里的命令使用/来执行
11.del 删除缓冲区中的命令
del 4删除第4行
del 2 4删除2到4行
12.保存缓冲区中的内容:save c:\test\
13.执行文件 @c:\test\test.txt
14.取得文件内容:get c:\test\test.txt
15.edit 会打开记事本
16.执行缓冲区命令用:/
17.column 缩写 col
18.列出当前用户下的所有表:select * from tab;
19.show all:显示所有报表命令
20.查看当前用户:select user from dual
21.
sqlplus /nolog
conn sys/oldpassword@ibmrfid as sysdba
alter user system identified by newpassword 修改密码
SQL语言基础
1.DDL:create alter drop
DCL:grant revoke
DML:select insert delete update
2.alter table test add c number;
3.grant select on dept to tt;
4.revoke select on dept from tt;
5.update abc set b=’ttt’ where a=’abc’;
6.delete from abc where a=’abc’;
7.select sysdate from dual;
select current_date from dual;
8.TO_DATE TO_CHAR TO_NUMBER
9.聚集函数:sum avg max min count
10.select user from dual;
11.select sum(decode(sex,’男’,1,0)) 男人数,sum(decode(sex,’女’,1,0)) 女人数 from e;
12.select a1,nvl(a2,’为输入’) a2 from aa;
13.select distinct a1 from aa;不先是重复语句
14.create view myview as select * from dept;
15.序列是数据库中提供顺序生成的整数的对象,通常序列是由DBA创建和命名的。创建序列时可以定义的属性有最大值,最小值,增量和初始数。
16.select * from aa where a1 like ‘a%’;
17.内连接标准写法:select a.id,a.name,b.dept from test1 a join test2 b on a.id=b.id;
18.左外连接:左边的无条件显示出来,右面的有匹配的就显示,没有匹配的用空值。
19.无关子查询:select * from e where id in (select id from d);
相关子查询:select * from e where id in (select id from d where id=e.id);
20.union合并 重复的数据只显示一条
安全管理
1.select user from dual;查看当前用户
2.grant select on scott.dept to test;
3.修改默认表空间:alter user table default tablespace users;
4.修改密码:alter user test identified by test1234;
5.锁定帐号:alter user test account lock;
alter user test account unlock;
6.创建用户:create user qqq identified by qqq123
default tablespace NEW_TS;
7.赋予connect权限: grant connect to qqq;
8.切换用户:conn / as sysdba;
9.允许用户授权给他人:grant select on scott.dept to test with grant option
10.grant all on scott.dept to test with grant option;
11.删除用户:drop user test;
12.系统授权:grant create user to test with admin option;
13.创建角色:create role myrole;
14.给用户分配角色:grant myrole to test;
表空间管理
1.create tablespace tabs datafile
‘c:\oracle\product\10.1.0\oradata\test\tabs.dbf’
size 10m;
alter user test default tablespace tabs;
grant unlimited tablespace, dba to test;
表管理
1.语法方式启动listener:lsnrctl status
lsnrctl start listener
2.完整性:实体完整性,参照完整性,域完整性
3.实体完整性:记录的唯一性,通过主键来保证
4.参照完整性:关联表中相关记录的完整性,通过外键来保证
5.check约束:alter table emp add constraint ck_emp_sex check(sex=’男’ or sex=”女”);
6.查看表的约束:desc all_constraints,desc user_constraints,desc dba_constraints
7.如果不建索引,数据是按照堆来存放
8.create index 索引名 on 表名(列名);
select * from 表名 where 列名=”abc”;
9.位图索引,值很单一,例如只有男女两种
create bitmap index bit_m on emp(sex);
视图·同义词·序列
1.视图:是一条存储起来的select语句
2.CREATE OR REPLACE VIEW myview AS SELECT * FROM books;
3.对视图操作就是对表操作
INSERT INTO myview VALUES(’0009′,’EBOOK’);
4.为视图加上限制条件
CREATE OR REPLACE VIEW myview AS SELECT * FROM books
where price>30 with check option
5. desc dba_views
desc user_views
desc all_views
6.select user from dual; 查看当前用户
7.同义词:有两种同义词,一种是公共的,需要dba来创建,一种是私有的
8.create synonym dept for scott.dept;
create public synonym dept for scott.dept;
9.desc dba_synonyms
10.create sequence myseq
start with 1
increment by 1
order
nocycle(会影响效率);
11.select myseq.nextval from dual;
select myseq.currval from dual 查询当前序列值
12.insert into auto values(myseq.nextval,
13.desc dba_sequences;
desc all_sequeneces;
desc user_sequeneces;
备份与恢复
1.逻辑备份,物理备份
2.逻辑备份:使用exp进行逻辑备份,然后使用imp进行逻辑恢复
导出文件为转储文件,结尾为dmp
3.exp scott/tiger@test
imp scott/tiger
4.物理备份:冷备份(脱机备份)热备份(联机备份)
5.冷备份:shutdown immediate
oradata目录下的所有文件
6.热备份:一定要将日志至于归档方式,查询命令:
archive log list;
日志文件在oradata/test下,联机重做日志,不归档
alter system set log_archive_start=true scope=spfile;(禁用改成启用)
shutdown immediate;
startup mount;(打开控制文件,但不打开数据文件)
alter database archivelog;(改成归档方式)
alter database open;
archive log list;(再次查看,启动归档方式,而且为自动归档)
alter tablespace users begin backup;(被备份的表空间被放在备份模式中)
手动拷贝
alter tablespace users end backup;
alter system archive log current;(确认所有在备份操作期间被建立的日志记录在随后已经被归档)
alter system switch logfile;
手动备份
select * from v$recover_file;查看文件是否丢失
alter database datafile 6 offline drop;(假设6号dbf文件丢失,使6号脱机,然后手动拷贝文件)
recover datafile 6;
alter database datafile 6 online
7.控制文件丢失:备份路径admin/test/udump/时间离的最近的一个
8.日志文件丢失:recover database until cancel;
alter database open resetlogs;
9.改为非归档方式:alter database noarchivelog;
备份与恢复2
1.Oracle中可执行三种基本的备份和恢复操作:
物理备份和恢复:所有的数据据文件被备份到一起,通常成为热备份或冷备份
逻辑备份和恢复:同学选择命名表,目录甚至模式之类的特定逻辑数据库结构来进行
Recovery Manager(RMAN):
2.应该进行备份的文件包括参数,控制,撤销,归档日志,数据,联机重做,转储和跟踪文件
3.init.ora参数文件以及可执行的服务器参数文件(spfile)含有一个一旦实例被启动,实例将如何进行操作的指令列表。
4.alter database backup controlfile to trace –text backup
alter database backup controlfile to ‘/directory/file’; –binary backup
5.Oracle Data Pump使用命令expdp impdp
查看expdp帮助 expdp help=y
Oracle数据库基础
1.实例:是运行在计算机内存中的一组进程,并给多个文件提供访问,这些文件统称Oracle Database 10g。
2.后台进程:支持对已经启动的Oracle的访问,启动数据库时会产生多种后台进程,每个进程执行几个任务直至数据库关闭。
3.表空间:Oracle对数据库文件的称呼,可以看作表驻留的空间。默认的表空间有system,sysaut,临时表空间,undo表空间
4.后台进程:dbwr:数据库写入
lgwr:日志写入
ckpt:检查点
smon:系统监视
pmon:进程监视
cjq0:作业队列协调
arc0:归档
5.Oracle基本数据类型
varchar2:最大长度4000字节,末尾不带无意义的空格。
数字:存储非整数的时候,小数点左边的部分称为精度,右边的部分称为刻度(scale)。最大精度是38,最大刻度是127。
日期:抽取日期字段时执行很多函数
时间戳:不需要to_char函数就可以随数据显示
clob:允许4g大小的对象,只是存储字母数字数据
blob:二进制对象
6.存储对象:Oracle提供在数据字典中存储用户定义的程序单元的能力,这些程序单元是用PL/SQL编写的。
7.触发器:是基于某种时间进行触发的存储对象。触发器不能脱离表而存在,表删除了,触发器也会被删除。触发器也是用PL/SQL编写的。
8.过程和函数的区别:过程调用时可以接受零个或者多个参数,并在代码片段结束前执行其任务。另一方面,函数在调用时接受零个或者多个参数,并在调用时返回给代码调用位置一个值,过程不向其调用者返回任何内容。
9.包:可以混合第包含一个或者多个函数或过程。
10.show all显示所有报表命令
SQL:结构化查询
1.DDL(Data Definition Language)数据定义语言
DML(Date Manipulation Language)数据操纵语言
2.DDL:create alter drop grant
truncate从表中删除所有行
revoke删除一个用户或角色的权限
analyze为基于代价的优化程序收集数据库对象的性能统计
describe 缩写为desc
3.DML:select insert update delete
4.where后面可以接and,or,!=,where可以与select,update,delete一起用,如果update,delete没有加where,将会更新所有记录。
5.rollback;可以回滚
6.update set where
7.连接分ANSI连接和Oracle连接两种,ANSI连接即带join,on,using连接词。
8.内部连接:也简称为连接,当要从两个表中选取记录时,如果第一个表中的某一列的值也有可能在第二个表中的相同列中找到,就称为两个表内部连接。
9.外部连接:内部连接是要返回在两个表中特定列的值匹配的记录,外部连接的返回结果是从一个表中找出对应于另一个表,没有匹配值的记录。
Oracle用符号(+)表示,(+)用于where子句中要返回无匹配行的表。
10.group by分组 having限制返回的组
11.create view as select * from dept;
数据库管理员
1.DBA日常操作:体系结构和设计 容量规划 备份和恢复 安全 性能和调整 管理数据库对象 存储管理 变化管理 调度任务 网络管理 排错
2.用客户端的sqlplus连接其他机器
sqlplus /nolog
conn sys/orcl@orcl as sysdba
3.OEM:Oracle Enterprise Manager
联网
1.监听器进程必须运行在数据库服务器上
2.数据库默认的字符集是US7ASCII
3.TNS:Transparent Network Substrate 是所有行于标准协议之间的通用接口。
4.Java两种链接方式:OCI Thin
5.JDBC OCI驱动程序需要远程平台和数据库服务器上驻留Oracle Net.
完全使用Java编写的JDBC Thin驱动程序使用JavaNet进行通信,只要求在服务器平台上驻留Oracle Net.
6.专用服务器和共享服务器的区别:专用服务器为每个用户进程使用一个“专用的”服务器进程。共享服务器体系结构为大量的用户提供增加的可扩展性。因为一个服务器进程能够在许多用户进程中被“共享”。
7.重设oem:
emctl start dbconsole
emctl stop dbconsole
set ORACLE_SID
emca -config dbcontrol db
8.Database Configuration Assistant (dbca)
9.授权可指定的四项内容:
被授权的用户
被准许的对象,例如表,过程或者角色
被准许的访问类型:如表的选择,插入,更新,或者删除,或者过程,函数或包的执行
该用户是否有权将相同权利授予其他用户,默认,不能,但可以通过使用with grant选项来增加此权利
10.准许的类型
系统权限和对象权限
系统权限是与定义的Oracle权限,针对所有系统对象而不是单个对象授权
对象权限是将命名对象授予一个用户的低级权利,因此,在特定的表上执行操作,或执行单个函数,包或过程的能力是对象权限。
11.创建重要对象:
创建表空间new_ts,设置表空间大小
创建用户new_user,设置默认表空间为new_ts
创建角色new_role,将create table,olap_user,select对象的权限赋予new_role
给new_user赋予new_role的角色,并设置在new_ts上有无限的配额
12.init.ora中设置了分派程序
13.Oracle Connection Manager:可以在命令行中输入cmctl
14.Oracle Net Listener:可以在命令行中输入lsnrctl,配置文件为listener.ora
15.命名方法:目录命名(集中配置),本地命名(客户配置),外部命名(外部配置),简单命名(手工配置)
16.本地命名方法:tnsnames.ora
17.sqlnet.ora:文件驻留在数据库服务器和本地平台上,配置文件信息被保存在sqlnet.ora文件中。该文件定义了有关服务名称,命名方法,外部命名信息,advanced security参数和数据库访问信息等方面的信息,TNS_ADMIN环境变量能够覆盖默认配置。