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;