大型数据库技术(实验3)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
print dbo. get_sal(部门号)
(4)编写一存储过程proc_demo,计算emp表中指定部门的工资总和,并统计其中的职工数量,最后调用该存储过程。
create proc[edure] proc_demo
as
select sum(empsalary),count(empno)
from emp
create loginusera
with password='usera123'
default_database=testa
(2)将CREATE ANY TABLE,CREATE ANY VIEW系统权限授予用户USERA,并使用户USERA具有将所获得的系统权限授予其他用户。
grant create table,create view to usera
创建本地数据库名: testa,包含两个数据文件,数据文件位置d:\oracle\data\testa_1.mdf,初始大小50M,不允许自动扩充;日志文件e:\oracle\data\testa_2.ldf,初始大小5M,允许自动扩充,每次增加2M,最大大小为100M。
2. (1)创建用户USERA,密码为usera123,默认数据库为testa。
with admin option
(3)收回用户USERA的CREATE ANY TABLE权限。
revoke create table from usera
3.
(1)按下面emp表格中给定的条件创建表emp,并放入数据库testa中。
empsex char(2) default('男') PS:check(empsexin ('男','女'))
altertableemp
addseq_empnumber(3)identity(1000,2)
4.
(1)编写一存储过程proc_demo,计算emp表中指定部门的工资总和,并调用该过程。
create proc[edure]proc_demo
as
select sum(empsalary)
from emp
where deptno=’部门号’
exec proc_demo
printdbo.get_sal(部门号)
(3)编写一函数get_salary来获取emp表某部门的工资总和及人数,并调用该函数。
create function get_sal(@x number(6,2))
returns table
as
return(selectsum(empsalary),count(empno)from emp where deptno=’@x’)
where deptno=’部门号’
exec proc_demo
(2)编写一函数get_sal来获取emp表某部门的所有员工工资的平均值,并进行调用。
create function get_sal(@xnumber(6,2))
returnstable
ቤተ መጻሕፍቲ ባይዱas
return(select avg(empsalary)from emp wheredeptno=’@x’)
onemp(empsex)
(3)创建名为my_view的视图,通过该视图可以查看部门编号为20的所有员工的姓名和工资信息。
create view my_view
as
select empname, empsalary
from emp
where deptno=20
(4)为了方便产生员工编号信息而创建名为seq_emp的标识列,其起始值为1000,标识递增量为2。
birthdaysmalldatetimecheck(birthday<=getdate())null
floor(datediff(dy,birthday,getdate())/365.25)
(2)为emp表的empsex字段创建合适的索引,索引名为ind_empsex。
createindexind_empsex
(4)编写一存储过程proc_demo,计算emp表中指定部门的工资总和,并统计其中的职工数量,最后调用该存储过程。
create proc[edure] proc_demo
as
select sum(empsalary),count(empno)
from emp
create loginusera
with password='usera123'
default_database=testa
(2)将CREATE ANY TABLE,CREATE ANY VIEW系统权限授予用户USERA,并使用户USERA具有将所获得的系统权限授予其他用户。
grant create table,create view to usera
创建本地数据库名: testa,包含两个数据文件,数据文件位置d:\oracle\data\testa_1.mdf,初始大小50M,不允许自动扩充;日志文件e:\oracle\data\testa_2.ldf,初始大小5M,允许自动扩充,每次增加2M,最大大小为100M。
2. (1)创建用户USERA,密码为usera123,默认数据库为testa。
with admin option
(3)收回用户USERA的CREATE ANY TABLE权限。
revoke create table from usera
3.
(1)按下面emp表格中给定的条件创建表emp,并放入数据库testa中。
empsex char(2) default('男') PS:check(empsexin ('男','女'))
altertableemp
addseq_empnumber(3)identity(1000,2)
4.
(1)编写一存储过程proc_demo,计算emp表中指定部门的工资总和,并调用该过程。
create proc[edure]proc_demo
as
select sum(empsalary)
from emp
where deptno=’部门号’
exec proc_demo
printdbo.get_sal(部门号)
(3)编写一函数get_salary来获取emp表某部门的工资总和及人数,并调用该函数。
create function get_sal(@x number(6,2))
returns table
as
return(selectsum(empsalary),count(empno)from emp where deptno=’@x’)
where deptno=’部门号’
exec proc_demo
(2)编写一函数get_sal来获取emp表某部门的所有员工工资的平均值,并进行调用。
create function get_sal(@xnumber(6,2))
returnstable
ቤተ መጻሕፍቲ ባይዱas
return(select avg(empsalary)from emp wheredeptno=’@x’)
onemp(empsex)
(3)创建名为my_view的视图,通过该视图可以查看部门编号为20的所有员工的姓名和工资信息。
create view my_view
as
select empname, empsalary
from emp
where deptno=20
(4)为了方便产生员工编号信息而创建名为seq_emp的标识列,其起始值为1000,标识递增量为2。
birthdaysmalldatetimecheck(birthday<=getdate())null
floor(datediff(dy,birthday,getdate())/365.25)
(2)为emp表的empsex字段创建合适的索引,索引名为ind_empsex。
createindexind_empsex