湘潭大学数据库实验5
《数据库原理》
实验教学指导书
实验五数据查询
撰写人:郭云飞
湘潭大学
信息工程学院
二○一四年十月五日
实验五数据查询
一.上机目的
1. 掌握Select 语句的运用。
2. 掌握一些函数的应用。
3. 掌握子查询的运用。
4. 连接和分组的应用。
二.预备知识
1.Select 语句
Select 命令用于从 Oracle 数据库中检索数据。读者利用 select 命令告诉数据库要检索什么样的信息。
Select 是读者看到的最常用的SQL 语句,select 命令(如下)有六个基本部分构成:
SELECT [DISTINCT] {*,COLUMN [ALIAS] ,„„}
FROM table
WHERE condition(s)
ORDER BY {column,exper} [ASC|DESC]
GROUP BY {column,exper}
HAVING having_condtions;
i. Select 后跟用户需要检索的信息(如下一部分将要提到的表中表列的名字)。这是 select 命令必不可少
的部分。
ii. From 后跟检索对象(如存放数据的一个或多个表的名称),from 部分也是必不可少的。
iii. Where 后跟检索条件(如限制检索内容的条件),where 部分是可选的。
iv. Order by 后跟分类准则(如取自空值数据如何给出的第一部分的表列名称表),order by 部分是可选的。
v. Group by 后跟分组的字段或准则。
vi. Having 后跟分组的查询条件。
下面我们首先使用select 语句操作名为user_tables 的数据字典视图:
SQL>select *
• from user_tables
• where table_name = ‘customer ’;
2 .选择指定的列
我们可以在select 关键字后跟一个或多个表列。星号指示Oracle 显示表中的所有字段。我们使用同样
的select 语句,但指定了需要查看的一个表的某些字段:
SQL>select table_name from user_tables
3 .条件查询
到目前为止,我们看到了 select 命令可用来查看表中所有表列(select *) 或部分表列(select
column1,column3 )。如果读者只想看特定的数据行,怎么办呢?这就需要用 wherer 子句来解决了。例如:
我们想要查看雇员SMITH 的编号与工资,可以用命令:
select empno, sal from emp where ename = 'SMITH';
结果如下:
EMPNO SAL
7369 800
1)带and/or 的Where 子句
where 子句指示 Oracle 查找表中数据,并只返回满足条件的行。在上面的例子中,要求 Oracle 仅返
回state_cd 等于MA 的数据行。这是通过where state_cd = ‘MA’;来实现的。
有时用户要求返回同时满足多个条件的行。例如:找出 20 号部门且工资不少于 3000 的编号与雇佣日期。
可以用命令:
select empno, hiredate from emp where deptno = 20 and sal >= 3000;
结果如下:
EMPNO HIREDATE
7788 19-4 月-87
7902 03- 12 月-81
上面的例子中,我们需要返回满足所有条件的行。如果用户要求检索满足其中两个条件之一的行应
该怎么办呢?可以用命令:
select empno, hiredate from emp where deptno = 20 or