【数据库】(三)数据库的查询与视图

【实验目的】

  1. 掌握SELECT语句的基本语法;
  2. 掌握子查询和连接查询等多表查询的表示;
  3. 掌握视图的创建;
  4. 掌握视图的查询和修改。

【实验内容摘要】

1. SELECT命令的基本操作:

(1)查询表Employees中的部门号和性别,要求结果没有重复行;

select distinct dno,ssex from employees;

(2)查询月收入高于2000元的员工号码;

select sno from salary where income>2000;

(3)查询财务部所有员工的号码和姓名,并将显示的列名用其中文含义表示;

select sno as '编号',sname as '姓名' from employees where dno=(select dno from departments where dname='财务部')

(4)查询员工的姓名、住址和收入水平,2000元以下的显示为低收入,2000~3000元的显示为中等收入,3000元以上的显示为高收入;

SELECT sname,address, CASE WHEN income<2000 THEN '低收入'

WHEN income BETWEEN 2000 AND 3000 THEN '中等收入'

WHEN income>3000 THEN '高收入' END AS 收入水平

FROM employees,salary WHERE employees.sno=salary.sno;

(5)查询财务部员工的最高和最低实际收入。

select max(actincome) as '最高实际收入',min(actincome) as '最低实际收入' from employees,departments,salary where employees.sno=salary.sno and employees.dno=employees.dno and dname='财务部';

 2. SELECT命令的高级操作:

(1)使用INTO子句,创建“男员工”表,包括编号和姓名;

-- 男员工表

CREATE TABLE 男员工表 (

  sno char(6) NOT NULL primary key,

  sname varchar(10) NOT NULL

);

-- Records of 男员工表

INSERT INTO 男员工表 VALUES ('000001', '王林'),

 ('010008', '伍容华'),('020010', '王向容'),('102201', '刘明'),

('102208', '朱俊'),('111006', '张石兵'),('210678', '林涛'),

('302566', '李玉珉'),('308759', '叶凡');

(2)查询所有年龄比研发部员工年龄都大的员工的姓名;

select sname from employees where dno in(select dno from departments where dname!='研发部') and bir<= ALL (select bir from employees where dno in(select dno from departments where dname='研发部'))

(3)查询每个员工的情况及其具体工作部门名的情况,并按出生时间从小到大排列;

select employees.*,departments.dname from employees,

departments where employees.dno=departments.dno

order by bir asc;

(4)按员工的学历分组,列出不同学历的员工人数。

select edu,count(edu) as '人数' from employees group by edu;

3. 视图的操作:

(1)创建视图DS_VIEW,视图包含Departments表的全部列;

(2)创建视图Employees_VIEW,视图包含员工号码、姓名和实际收入(RealIncome)三列;

(3)向视图DS_VIEW中插入一个行数据“6,广告部,广告业务”,并使用SELECT命令查看视图DS_VIEW和表Departments中发生的变化。

(4)对视图Employees_view执行插入和删除数据的操作,观察结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值