1 准备工作+复习:
1.1 用户scott下创建表student,内容和emp一样
create table student as select * from emp;
1.2 创建用户zhangsan
conn system/123;
create user zhangsan identified by 111;
1.3 为用户zhangsan赋予角色connect,resource
grant connect,resource to zhangsan;
1.4 为用户zhangsan赋予查看scott用户下student表的权限
grant select on scott.student to zhangsan;
1.5 在zhangsan中创建表stu,内容和scott下的student一样;创建表dept,内容和scott下的dept一样(以下题目都来自于stu和dept表)
conn system/123;
grant select on scott.dept to zhangsan;
conn zhangsan/111;
create table stu as select * from scott.student;
create table dept as select * from scott.dept;
2 块:
2.1 输出数值2*3的结果、输出hello、输出日期5-5月-2015
set serveroutput on;
begin
dbms_output.put_line('hello');
dbms_output.put_line(2*3);
dbms_output.put_line('5-5月-2015');
end;
/
2.2 为数据表stu添加、修改、删除记录,并为每句话添加相应注释
begin
insert into stu(ename) values(’Eric’); /*增加*/
update stu set empno=8888 where ename=’Eric’; /*修改 */
delete from stu where ename=’Eric’; /*删除*/
end;
/
3 变量
3.1 定义和使用变量
3.1.1 在块中分别定义:
3.1.1.1 数值型变量v_temp,数据长度(2,1),赋值1.56
declare
v_temp number(2,1):=1.56;
begin
dbms_output.put_line('v_temp values is: '||v_temp);
end;
/
3.1.1.2 整型变量v_count,赋值1.65
declare
v_count integer:=1.65;
begin
dbms_output.put_line('v_count values is: '||v_count);
end;
/
3.1.1.3 日期型变量v_date,赋值当天日期
declare
v_date date:=sysdate;
begin
dbms_output.put_line('v_date values is: '||v_date);
end;
/
3.1.1.4 字符型变量v_name,赋值“MyName”
declare
v_name char(10):= 'myname ';
begin
dbms_output.put_line('v_name values is: '||v_name);
end;
/
3.1.2 定义变量v_a为数值型,值为12;变量v_b为数值型,值为v_a的2倍,并输出v_a和v_b的值
declare
v_a number:=12;
v_b number;
begin
v_b:=v_a*2;
dbms_output.put_line('v_a values is: '||v_a);
dbms_output.put_line('v_b values is: '||v_b);
end;
/
3.2 有变量的块
3.2.1 输出编号为7499的姓名
declare
v_name char(5);
begin
select ename into v_name from stu where empno='7499';
dbms_output.put_line('v_name values is: '||v_name);
end;
/
3.2.2 随机输入编号,输出其用户名
--运行时输入aa的值:7900
declare
v_name char(5);
begin
select ename into v_name from stu where empno=&aa;
dbms_output.put_line('姓名是: '||v_name);
end;
/
3.2.3 随机输入编号,输出用户名、职位和工资
declare
v_name char(5);
v_job char(10);
v_sal number;
begin
select ename,job,sal into v_name,v_job,v_sal from stu where empno=&aa;
dbms_output.put_line('姓名是: '||v_name||'职位是: '||v_job||'工资是: '||v_sal);
end;
/