oracle基础学习

oracle基础学习
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;



你可能感兴趣的:(oracle基础)