SQL标准语言内容大全(10)

2019-08-31 00:14

演示 - FOREIGN KEY(外键)约束

1. 演示设置不同的关键约束,对操作有一定的影响。

? ON DELETE SET NULL:将相关外键值转换为空值。

演示 - CHECK约束

1. 用于定义每行都必须满足的一个条件。 2. 以下表达式是不允许出现的:

? 各伪列的引用。

? 对一些内部函数的调用。

练习 - 创建表时增加约束

1. 创建一张学生表hr.student,要求包括学生的学号、姓名、年龄、出生日期、性别、

身份证号、联系电话、住址。约束条件如下:

? ? ? ? ? ?

学号:主键约束 姓名:Not null约束

年龄:check约束必须大于0 性别:check约束必须为男或女 身份证号:UNIQUE约束 出生日期:not null约束

11-3添加约束

1、使用ALTER TABLE可以执行以下任务:

?

添加或删除约束,但不修改它的结构。

2、添加约束语法

ALTER TABLE table

ADD [CONSTRAINT constraint] type (column);

3、删除约束语法

ALTER TABLE table

DROP constraintname | primary key;

演示 - 用ALTER TABLE 添加约束

1. 2. 3. 4.

向表hr.new_emp添加PRIMARY KEY约束。 向表hr.new_emp的salary列添加CHECK约束。 向表hr.new_emp的email列添加UNIQUE约束。 向表hr.new_emp的department_id列添加外键约束

练习 - 使用ALTER TABLE增加约束

1. 创建一张学生表hr.student,要求包括学生的学号、姓名、年龄、出生日期、性别、

身份证号、联系电话、住址。约束条件如下:

o 学号:主键约束 o 姓名:Not null约束

o 年龄:check约束必须大于0 o 性别:check约束必须为男或女 o 身份证号:UNIQUE约束

o 要求:用ALTER TABLE方式来增加约束

12-1视图-概念

1、什么是视图?

通过创建表的视图可以显示数据的逻辑子集或组合。

2、视图的优点:

? 视图能够选择性地显示表中的行,因而可以限制对数据的访问。

? 视图可以用来进行简单的查询,从而检索复杂查询的结果。如用户可以通过视图

查询多个表中的信息,而无需了解如何编写多表联结语句。 ? 视图可以提供数据独立性。 ? 可提供相同数据的不同视图。

3、视图分类:简单视图和复杂视图

简单视图特点:

? 只从一个表中获取数据。 ? 不包含函数或分组。

? 可以通过该视图执行DML操作。 复杂视图特点:

? 从多个表中获取数据。 ? 包含函数或分组

? 不一定能通过该视图执行DML操作。

12-2视图-创建

1、语法

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view [(alias[, alias]...)] AS subquery

[WITH CHECK OPTION [CONSTRAINT constraint]] (ORACLE的语法)

[WITH READ ONLY [CONSTRAINT constraint]](ORACLE的语法);

2、规则:视图的子查询可以包含复杂的SELECT语法,包括联结、分组和子查询。

? 视图的子查询不能包含ORDER BY子句。ORDER BY是在从视图中检索数据时指定

的。

? 可以使用OR REPLACE选项更改视图定义,而不必先删除再重新创建它。

演示 - 创建视图

1. 在子查询中使用别名来创建视图。

2. 创建一个视图,其中包含部门50中每位员工编号、姓名和年薪;员工编号、姓名和

年薪分别使用了别名。

演示 - 修改视图

1. 使用CREATE OR REPLACE VIEW子句修改视图。为每个别名添加一个别名。 2. CREATE VIEW子句中的列别名与子查询中的列排列顺序相同。

演示 - 创建复杂视图

1. 创建包含分组函数的复杂视图以显示两个表中的值。

练习 - 创建简单视图

1. 根据hr.EMPLOYEES表中的员工编号、员工姓名和部门编号,创建名

为hr.EMPLOYEE_VE的视图.将员工的姓名标题更改为EMPLOYEE。

练习 - 创建复杂视图

1. 根据所有员工的员工姓氏、部门名称、薪金和薪金级别,创建一个名为SALARY_VU

的视图。使用hr.EMPLOYEES、hr.DEPARTMENTS和hr.JOBS表。分别将这些

列标记为Employee、Department、Salary和Title。

12-3删除视图

1、可以使用DROP VIEW视图。删除视图不会影响该该视图所基于的表。 2、语法

DROP VIEW view;

演示 - 删除视图

1. 使用DROP VIEW删除视图

12-4执行排序Top-N分析

1、排序Top-N查询结构:

? 子查询用于生成排序的数据列表。子查询可以包含ORDER BY子句。

? 外部查询,用于限制最终结果集的行数。条件包括

- ROWNUM伪例,为子查询返回的每一行指定一个顺序值,值从1开始 - WHERE子句,指定返回n行。使用<或<=运算符

2、语法

SELECT [column_list], ROWNUM FROM (SELECT [column_list] FROM table

ORDER BY Top-N_column) WHERE ROWNUM <= N;

演示 - Top-N

1. 显示hr.EMPLOYEES表中收入最高的三个人的姓名和薪金

13-1索引概念

1、索引的特点:

? 索引是一个数据库里的对象。

? 可以通过访问快速路径访问方法来快速查找数据,从而减少磁盘I/O操作 ? 与它索引的表无关

注:当删除表时,相关的索引也会被删除。

13-2索引创建

1、自动创建

如果在表定义中定义了PRIMARY KEY或UNIQUE约束,则系统会自动创建一个唯一索引。

2、手动创建

用户可以在列上创建非唯一的索引,以加速对行的访问。

建议:为联结创建一个FOREIGN KEY的列创建索引,以提高检索速度。 3、语法

//可在一个或多个列上创建索引 CREATE INDEX index

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

演示 - 创建索引

1. 提高对表hr.EMPLOYEES的LAST_NAME列的查询访问速度。

练习 - 创建索引

1. 先创建表hr.new_dept,创建代码:

--删除表hr.new_dept DROP TABLE hr.new_dept; --创建表hr.dept

CREATE TABLE hr.new_dept (deptno NUMBER(2), dname VARCHAR(14), loc VARCHAR(13));

2. 给表hr.new_dept的列deptno创建唯一索引。 3.给表hr.new_dept的列dname创建非唯一索引。

13-3什么情况下要创建索引

1、在以下情况,应该创建索引:

? 列包含较大范围的值。 ? 列包含大量空值。

? 在WHERE子句或联结条件中频繁使用一个或多个列。

? 表相当大,但是预计多数的查询检索的行不到总行数的2%-4%。

2、在以下情况,通常不值得创建索引:

? 表比较小。

? 在查询中不经常使用列作为条件。

? 预计多数查询检索的行要超过表中总行数的2%-4%。 ? 表更新比较频繁。

? 被索引的列将作为表达式的一部分进行引用。

演示 - 确认索引

1. 索引创建完成后,可以查看索引是相关信息。每个数据都有专门的方法查看索引。

13-4删除索引

1、使用DROP INDEX命令可以删除索引。

DROP INDEX index;

演示 - 删除索引

1. 删除索引emp_last_name_idx.


SQL标准语言内容大全(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:连州杨公记

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: