实训报告3: 数据操作语句实训

目录

1. (论述题) 数据库SQL语言基础编程

一、简单查询

查询员工表与部门表的笛卡尔积

在上述操作的基础上完成连接的选择操作和投影操作

对查询数据进行排序操作

编写查询语句,完成对员工信息、部门情况等的基本查询

查询工资超过2500的员工基本信息

查询月总收入超过2500的员工基本信息

查询工资超过2500的员工的姓名及其所在部门名称

查询所有员工的工资、奖金、总收入,并按部门编号排序

查询全公司的平均工资、最高工资、最低工资和总奖金数。

二、分组查询

编写分组查询语句,理解分组查询的意义

编写分组查询语句,实现分组查询的应用

查询各部门的平均工资和最高月收入和总资金数

查询部门号大于10且平均工资大于1500的部门名称、部门平均工资和部门人数

三、增删改语句

添加数据

在部门表中添加一个部门,编号为50,名称为 TRAIN  地点在  LOUDI

修改数据

将刚才添加了部门的编号修改为80

删除数据

删除刚才添加了部门 

1. (论述题) 数据库SQL语言基础编程
实验目的:

掌握数据库查询语句的编写方法

掌握利用查询语言完成基本查询

掌握利用SQL语句完成数据的添加、删除、修改操作

实验内容:

一、简单查询
编写简单查询语句,理解笛卡尔积、选择、投影的概念及其在SQL中的实现

查询员工表与部门表的笛卡尔积
笛卡尔积:Select *from table1,table2; ----表示显示了全部表一和表二的共有的同名不同值的表

代码:

prompt 笛卡尔积
select * from emp,dept;

在上述操作的基础上完成连接的选择操作和投影操作
选择操作

select 字段列表

from 表名

where 筛选条件;---解决了两个表中同名不同值的列

代码:

    select * from emp,dept where emp.deptno=dept.deptno;


投影:

Select 字段列表 from 表名; -----选择的是全部或部分列

代码:

select *from emp,dept;


对查询数据进行排序操作
升序排列:

Select 字段列表 from 表 order by  部分字段列表或全部字段列表;----部分进行升序排序

降序排序:

Select 字段列表 from 表 order by  部分字段列表或全部字段列表 desc;----部分进行降序排序

代码:

select emp.*,dept.dname,dept.loc 
from emp,dept 
where emp.deptno=dept.deptno
order by hiredate desc;


编写查询语句,完成对员工信息、部门情况等的基本查询
代码:
select * from emp;

查询工资超过2500的员工基本信息
代码:

select* from emp
where sal>2500;


查询月总收入超过2500的员工基本信息
代码:

select * from emp
where sal+comm>2500;


查询工资超过2500的员工的姓名及其所在部门名称
代码:

select ename ,dname
 from emp,dept
 where emp.deptno=dept.deptno
and sal>2500;


查询所有员工的工资、奖金、总收入,并按部门编号排序
代码:

 select sal,comm,sal+nvl(comm,0)
   from emp
   where 1=1
   order by deptno;


查询全公司的平均工资、最高工资、最低工资和总奖金数。
代码:

select AVG(SAL) 平均工资,
    MAX(sal) 最高工资,
    MIN(sal) 最低工资,
    SUM(nvl(comm,0)) 总奖金
    from emp;


二、分组查询
编写分组查询语句,理解分组查询的意义
分组查询是按照一定的规则进行分组,分组以后数据会聚合,需要使用聚合函数,但是使用聚合函数不一定要分组,分组的关键字是group by。

-聚合函数

count() ---统计

sum() ---求和

max() ---最大值

min() ---最小值

avg() ---平均值

round() ---四舍五入函数

例子:select max(age) from student group by sex;----分男女最大年龄

编写分组查询语句,实现分组查询的应用
代码:

select MAX(sal) from emp group by ename;

查询各部门的平均工资和最高月收入和总资金数
代码:

select 
round(AVG(emp.sal),2) as 平均工资,
max(emp.sal) as 最大工资,
min(emp.sal) as 最小工资,
sum(emp.comm) as 总资金
from emp;


查询部门号大于10且平均工资大于1500的部门名称、部门平均工资和部门人数
三、增删改语句
添加数据
在部门表中添加一个部门,编号为50,名称为 TRAIN  地点在  LOUDI
代码:

insert into dept
values (50,'TRAIN','LOUDI');

修改数据
将刚才添加了部门的编号修改为80
代码:

update dept
set deptno =80
where deptno=50;

删除数据
删除刚才添加了部门 
代码:

delete from dept
where deptno=80;


感谢观看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本文档为数据库上机实验报告,是自己认认真真一步一步写的,报告包含试验中的具体步骤,过程以及代码和实验结果截图,和实验总结。 实验一 实验题目: 数据库管理系统的使用 实验目的: 掌握SQL SERVER2005的使用和数据库设计的一般方法。 实验内容: (1)SQL SERVER2005的使用 (2)数据库的设计过程并利用SQL SERVER2005建立数据库。 实验二 实验题目: 数据库的定义 实验目的:掌握数据表建立、修改、删除、索引的SQL语句。 实验内容: (1)数据表的建立 (2)数据表的修改 (3)数据表的删除 (4)数据表的索引建立 为S表的DEPT建立唯一索引 (5)视图的建立与删除 建立一个计算机系学生基本信息视图CSV(SNO,SNAME,SEX,AGE) 查询1983年以后出生的计算机系学生基本信息。 建立一个计算机系学生成绩视图JSGV(SNO,CNO,GRADE)。 查询计算机系学生选课多于3门的学生学号。 查询计算机系学生2号课不及格的学生学号和成绩。 实验三 实验题目: 数据表的操作 实验目的: 掌握数据数据操作SQL语句。 实验内容: SQL语句插入数据操作 SQL语句修改数据操作 SQL语句删除数据操作 SQL语句查询数据操作 维护数据SQL语句: (1)在学生表中插入一新生信息(‘200213808’,’HUJING’,’女’,22,’计算机’) (2)删除数据库中学号为’200213801’的退学学生有关信息。 (3)将计算机系学生2号课成绩全部提高5%。 查询数据SQL语句: (4)统计有学生选修的课程门数。 (5)统计HU老师所授每门课程的学生平均成绩。 (6)统计所有选修人数多于20的课程号和选课人数,并按人数降序排列,若人数相等,则按课程号升序排列。 (7)检索所有缓考即成绩为NULL的同学学号、姓名和缓考课程号。 (8)检索‘OS’课成绩高于该课平均成绩的同学学号。 (1) 检索计算机系女生的学号和姓名。 (2) 检索全体学生姓名、出生年份和所在系。 (3) 检索未选修任何课程的学生学号。 (4) 检索WANG老师所授课程号、课程名。 (5) 检索所有姓LI同学的基本信息。 (6) 检索选修‘DATABASE’课程的学生学号。 (7) 检索年龄介于LIPING同学年龄和28岁之间的学生基本信息。 (8) 检索选修TIAN老师所授全部课程的学生学号。 实验四 实验题目: T-SQL编程 实验目的: 掌握T-SQL语句的使用。 实验内容: 1.定义一个表变量,用来存储两名学生的学号,姓名,所在系。 2.编写一个自定义的函数,该函数接受一个学生姓名,返回其学生表中基本信息及选课情况。 3.试用CASE语句输出学生表中各年龄段的学生人数。 4.编写存储过程,以系别作为参数,统计指定系别的人数,并作为存储过程的输出。 实验题目: 数据库的完整性 实验目的: 掌握数据库的完整性约束定义,完整性检查及违约处理方式。 掌握触发器的定义及使用。 实验内容: 1. 定义S, C表的完整性约束 2. 定义SC表的完整性约束,要求当其被参照表发生删除操作时,违约处理的方式为级联,当其被参照表发生修改操作时,违约处理的方式为拒绝。 3. 触发器 ☆ 建立一DML触发器,每当学生的成绩发生更新时,将更新的学号,成绩存入g-log表内 ☆ 建立一个INSTEAD OF触发器,每当修改课程表中记录时,利用触发器动作替代修改操作。 ☆ 建立一个DDL 触发器,不允许删除数据库中表,并作出响应。 实验六 实验题目: 数据库的安全性 实验目的: 掌握SQL SERVER 2005的安全控制机制 实验内容: 1. 创建登录 创建lg1,lg2,并设定口令 2. 定义用户 定义user1,user2,user1以lg1登录,user2以lg2登录,user1定义角色ddl_admin,datareader,datawriter 3. 掌握SQL SERVER 2005架构和用户分离的概念 为user1创建架构u1,并建立test表,通过授权模式的方法,授权给user2表访问test的权限 4. 数据库的授权、收权语句 ☆ 将查询SC表和修改GRADE属性的权限授予用户user1。 ☆ 将对表S的插入权限授予用户user2,并允许他将此权限授予其他用户。 ☆ 收回所有用户对表S的插入权限。 实验七 实验题目: 数据库的设计 实验目的: 掌握数据库的概念结构设计和逻辑结构与设计,掌握ER图的表示方法即如何将ER模型转化为关系模型 1.学校有若干系,每个系有若干班级和教研室,每个教研室有若干教师,其中有教授和副教授每人各带若干研究生,每个班有若干学生,每个学生选修若干课程,每门课有若干学生选修。 2.某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料组成,不同零件所用的材料可以相同。有些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值