1:Oracle:
2 : pl/sql: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') ; 将字符串转换为日期
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 ;