Oracle和pl/sql语句

1:Oracle:

1) Ocacle的几个服务:

Listener : oracle 的监听服务,在服务器需要被远程操作时,启动,

ServerORCL: oracle的核心服务,只有这个服务启动,数据库才能正常启动,

 2) 常用命令:

conn scott/123456  : 用户登陆   conn system/123456 as sysdba  :  超级用户的登陆

show user :  显示当前的用户,  password scott : 修改scott用户的密码,(需要一定的权限,一般都是超级用户才有),

exit : 退出,

3) 创建表空间:

创建临时表空间:  create temporary tablespace 表空间名 tempfile  '文件位置/文件名.dbf' size 文件大小;

创建永久表空间:  create tablespace 表空间名 datafile '文件位置/文件名.dbf' size 文件大小;

4) 创建用户:

create user 用户名 identity by 密码  default tablespace 永久表空间名 temporary tablespace 临时表空间名

quota 文件大小  on 表空间名 ;

grant connect to  用户名;  给用户授权连接,

grant create session to 用户名 ; 用户也可以连接,

revoke connect from 用户名 ;  收回连接权限,

grant create table to 用户名 ; 创建表的权利,  grant select on scott.emp to 用户名; 查看scott下的emp表的权利

授权时, 可以是某一个功能或者是一个角色(角色则是有很多权限的集合),

grant select on scott.dept to 用户名 with admin option :  表示这个用户可以将这个权限授予其他用户,

5) 修改用户: 

alter user 用户名 identity by 密码 default tablespace 永久表空间 temporary tablespace 临时表空间

quota 文件大小 on 表空间; 

修改这个用户的状态: 是否被锁,

alter user 用户名 account unlock ;  将用户解锁,可以连接的状态

alter user 用户名 account lock;   将用户锁定

drop user 用户名 cascade ; 删除用户,以及将其存在的级联关系也会删除

6) 序列和触发器:

创建一个序列: create sequence 序列名

increment by 1 (每次加一)  start with 1 (从1开始)  nomaxvalue (没有最大值)

nocycle(不循环) nocache(不建缓冲区) ;

触发器: create or replace trigger 触发器名 before insert on 表名 for each row

begin  select 序列名.nextval into  :new.id from dual ;       end;   /

通过触发器和序列来实现自增长;

7) 分页和常用函数:

分页是通过rownum 来进行划分的,rownum都是从1开始进行算起,每次当rownum符合规则,则会自动减1,

比如 :  rownum between 2 and 10 , 则会是一直都是1,不会到2 ,

而且在取的时候,需要先将最大的都取出来,然后在将小的舍去,

常用函数: concat(a,b) 将a和b连接起来 ;  substr(X,start )  从start位置开始将X截取 数据库中都是从1开始

to_char(sysdate,'yyyy-MM--dd') ; 将日期转换为字符串

to_date(X,'yyyy-MM-dd') ; 将字符串转换为日期

2 : pl/sql:

1) pl/sql格式:

declare 

变量或者常量,

begin

要执行的部分,

end;

/

2) 变量定义的类型:

number ,int , varchar2(20) , emp.ename%type(定义一个和emp.ename一样的类型)

定义多个类型: type test is record( id  int, name varchar2(20));    t test ;

定义表的一行类型: test emp%rowtype ; 

3) 流程控制和循环语句

if 条件语句 then

执行的内容;

elsif 条件语句 then     执行的内容;

else    执行的内容;

end if ;      

case 变量 

when 值 then 执行的内容;

when 值 then 执行的内容;

end case;

loop 循环语句:   loop        循环体 ; exit when 条件语句;  end loop;

while 循环语句:   while 条件语句 loop       循环体;       end loop;

for 循环语句:  for 变量 in 1..100(条件)  loop         循环体;  end loop ;


你可能感兴趣的:(JavaEE)