教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高中教育 >

精通SQL【经典SQL语句大全】(3)

来源:网络收集 时间:2026-09-22
导读: 5 FROM s_emp); 实例2: SQL【经典SQL语句大全】 选择出工资最高的员工的家庭住址: select emp_addr from employees where salary = (select max(salary) from employees); 这是一个简单实用的例子,可以衍生出很

5 FROM s_emp);

实例2:

SQL【经典SQL语句大全】

选择出工资最高的员工的家庭住址:

select emp_addr from employees where salary =

(select max(salary) from employees);

这是一个简单实用的例子,可以衍生出很多情况,在实际应用经常出现,请大家多多思考。

实例3:

SQL> SELECT dept_id, AVG(salary)

2 FROM s_emp

3 GROUP BY dept_id

4 HAVING AVG(salary) >

5 (SELECT AVG(salary)

6 FROM s_emp

7 WHERE dept_id = 32);

子查询被多次执行,因为它出现在HAVING 子句中。

SQL> SELECT title, AVG(salary)

2 FROM s_emp

3 GROUP BY title

4 HAVING AVG(salary) =

5 (SELECT MIN(AVG(salary))

6 FROM s_emp

7 GROUP BY title);

对子查询,我们了解这么多在理论上已经覆盖了所有的知识点,对于UPDATE 和DELETE的子查询,不作为重点,但也要练习掌握。今天到这,谢谢大家。

课程 六 运行时应用变量

本课重点:

1、创建一个SELECT语句,提示USER在运行时先对变量赋值。

2、自动定义一系列变量,在SELECT运行时进行提取。

3、在SQL PLUS中用ACCEPT定义变量

注意:以下实例中标点均为英文半角

一、概述:

SQL【经典SQL语句大全】

变量可以在运行时应用,变量可以出现在WHERE 字段,文本串,列名,表名等。

1、我们这里的运行时,指的是在SQL PLUS中运行。

2、ACCEPT :读取用户输入的值并赋值给变量

3、DEFINE:创建并赋值给一个变量

4、在做REPORT时经常使用,比如对某个部门的销售信息进行统计,部门名称可以以变量代替。

SQL PLUS不支持对输入数据的有效性检查,因此提示要简单且不模棱两可。

二、应用实例:

1、SQL> SELECT id, last_name, salary

2 FROM s_emp

3 WHERE dept_id = &department_number;

2、可以在赋值前后进行比较:

SET VERIFY ON

.....

1* select * from emp where lastname='&last_name'

输入 last_name 的值: adopt

原值 1: select * from emp where lastname='&last_name'

新值 1: select * from emp where lastname='adopt'

----如果在原语句中没有单引号,那么在输入值的时候要手工加上单引号。一般字符和日期型要在语句中加上单引号。

SET VERIFY OFF 之后,原值和新值这两句消失。这在ORACLE8I中是默认为ON。

3、子句为变量:WHERE &condition; 要注意引号

三、DEFINE和ACCEPT的应用:

1、SET ECHO OFF //使内容不 显示在用户界面

SQL【经典SQL语句大全】

ACCEPT p_dname PROMPT ’Provide the department name: ’

SELECT , r.id, ”REGION NAME”

FROM s_dept d, s_region r

WHERE d.region_id = r.id

AND UPPER() LIKE UPPER(’%&p_dname%’)

/

SET ECHO ON

存为文件:l7prompt.SQL

SQL> START l7prompt

Provide the department name: sales

2、SQL> DEFINE dname = sales

SQL> DEFINE dname

DEFINE dname = ”sales” (CHAR)

SQL> SELECT name

2 FROM s_dept

3 WHERE lower(name) = ’&dname’;

可以正常执行了。

SQL> DEFINE dname 主要是显示当前的变量是否赋值,值是什么。当然,我们可以用UNDEFINEGO 来使变量恢复初始,不然它会一直保持下去。

3、如果变量在SQL SCRIPT文件中确定 :可以SQL> START l7param President 来赋值。

SQL【经典SQL语句大全】

总结:本课主要针对较古老的SQLPLUS方法,在REPORT和结果集生成方面使用变量,达到方便操作,动态修改的目的。

课程 七 其他数据库对象

SEQUENCE

创建实例:

SQL> CREATE SEQUENCE s_dept_id

2 INCREMENT BY 1

3 START WITH 51

4 MAXVALUE 9999999

5 NOCACHE

6 NOCYCLE;

Sequence created.

1、NEXTVAL和CURRVAL的用法

只有在INSERT 中,才可以作为子查询出现。

以下几个方面不可用子查询:

SELECT 子句OF A VIEW

有DISTINCT的出现的SELECT。

有GROUP BY,HAVING,ORDER BY的SELECT

SELECT 或DELETE,UPDATE 中的子查询。

DEFAULT选项中不能用。 子句。

SQL【经典SQL语句大全】

2、编辑SEQUENCE

只有OWNER或有ALTER权限的用户才能修改SEQUENCE

未来的NUMBER受修改的影响。

不能修改START WITH,如果变,则要RE-CREATE。

修改会受到某些有效性检验的限制,如MAXVALUE

3、删除:

DROP SEQUENCE sequence;

ORACLE对象之INDEX

一、INDEX概述:

是ORACLE的一种数据对象,用POINTER来加速查询行。通过快速路径存取方法定位数据并减少I/O。 INDEX独立于表。INDEX由ORACLE SERVER来使用和保持。

二、索引如何建立?

1、自动:通过PRIMARY KEY和UNIQUE KEY约束来建立。

2、用户手工建立非唯一性索引。

三、创建方法:

语法:CREATE INDEX index

ON table (column[, column]...);

何时建立INDEX:

此列经常被放到WHERE字段或JOIN来作条件查询。

此列含有大量的数据。

此列含有大量的空值。

SQL【经典SQL语句大全】

两个或几个列经常同时放到WHERE字段进行组合查询

表很大而且只有少于2-4% 的ROW可能被查询的时候。

以下情况不要建立索引:

表很小;

表被更新频繁。

四、查看已经存在的索引:

1、USER_INDEXES可以查询索引名和类型。

2、USER_IND_COLUMNS包含索引名、表名、列名。

实例:

SQL> SELECT ic.index_name, ic.column_name,

2 ic.column_position col_pos, ix.uniqueness

3 FROM user_indexes ix, user_ind_columns ic

4 WHERE ic.index_name = ix.index_name

5 AND ic.table_name = ’S_EMP’;

五、删除索引:

< …… 此处隐藏:2750字,全部文档内容请下载后查看。喜欢就下载吧 ……

精通SQL【经典SQL语句大全】(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/132467.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)