sqlplus登陆oracle:
法1:1.cmd -> 2.输入 sqlplus "sys/123 as sysdba"
法2:打开oracle 运行sql命令:
SQL> connect sys as sysdba
输入口令:[输入密码,我此处为123]
已连接。
-------------------------------------------------
SQL>
desc v$controlfile [控制文件]
select * from v$controlfile;
[数据文件]
select name from v$datafile;
select file#,status,name from v$datafile;
[日志文件]
select * from v$logfile;
参数文件
SPFILEXE.ORA
oracle的物理结构:
参数文件->控制文件->(数据文件/日志文件)
->=找到
-------------------------------------------------
内存结构
实例的SGA(系统全局区域):
包括:
DB buffer,共享池,大共享区,Redo buffer,固定SGA;
1.DB高速缓存池(默认缓存池,保持缓存池,再生缓存池)
2.共享池:库缓存池(共享sql区,PL/SQL区),字典缓存区
-------------------------------------------------
oracle数据库逻辑结构:
tablespace>segment>extent>block;
[图]
-------------------------------------------------
sqlplus/nolog
connect sys/test1234 as sysdba
startup
startup mount (启动实例,控制文件,但不启动数据文件,
便于热备份)
startup nomout (只启动实例,在控制文件丢失时)
shutdown immediate 关闭
shutdown
shutdown transactional
浏览器中使用isqlplus
e.g.:
http://machine-name:5560/isqlplus
常用命令:
help index
? @
? set
list查看缓冲的命令
/ 执行缓冲区中的命令
save c:\test.sql --保存缓冲区中的命令到磁盘文件
@ c:\test.sql --执行sql文件
SQL> show sga
Total System Global Area 285212672 bytes
Fixed Size 1287016 bytes
Variable Size 104860824 bytes
Database Buffers 176160768 bytes
Redo Buffers 2904064 bytes
-------------chapter 3: sql basic-----------------------------
1.DDL(create,alter,drop)
2.DCL(grant,revoke)
3.DML(select,insert,delete,update)
grant select on dept to [user_name]
revoke select on dept from tt;
------------------------------------------------------
常用系统函数
1.字符
length,ltrim,replace,rtrim,substr,trim
SQL> select length('中国abc') from dual;
SQL> select lengthb('中国abc') from dual; --字节数
2.日期
sysdate,current_date,next_day
SQL> alter session set nls_date_format='dd-mon-yyyy hh:mi:ss';
会话已更改。
3.转换
to_char,to_date,to_number
4.聚集函数
sum,avg,max,min,count
5.其它
user,decode,nvl
select user from dual;--当前用户
--decode使用方法:当字段为'x'值时,计数1,否则计数0
select sum(decode(sex,'男',1,0)) 男人数,sum(decode(sex,'女',1,0))
女人数 from e;
nvl相当于sqlserver里的isnull(column_name,'')
select a1,nvl(a2,'未输入') from table_name;
select * from aa where a2 is null;
--交集
select id from e
intersect
select id form d;
--从select 语句创建表
create table t as
select eid,ename from e where eid='001';
-------------chapter 4:pl/sql---------------------------------
PL/SQL,oracle对sql语言的扩展.pl/sql借助于pasal的语法.不区分大小写
pl/sql 块结构
pl/sql块结构如下:
declare
...
begin
...
exception
...
end;
/
e.g.:
set serveroutput on size 10000 -- 开启output
--行注释
/*块注释*/
DECLARE
X VARCHAR2(10);
xxX VARCHAR2(10):='abcde';
BEGIN
X:='THIS IS ..';
DBMS_OUTPUT.PUT_LINE('XX的值:'|| x);
DBMS_OUTPUT.PUT_LINE('XxX的值:'|| xxx);
END;
/
可以使用integer,string(10)
-----------------------
分支
1.
if .. then
...
elsif .. then
...
else
...
end if
2.case语句
case
when a=1 then ...;
when a=2 then ...;
when a=3 then ...;
else
...;
end case;