12_第07章数据库对象管理剖析

上传人:今*** 文档编号:107165319 上传时间:2019-10-18 格式:PPT 页数:61 大小:661KB
返回 下载 相关 举报
12_第07章数据库对象管理剖析_第1页
第1页 / 共61页
12_第07章数据库对象管理剖析_第2页
第2页 / 共61页
12_第07章数据库对象管理剖析_第3页
第3页 / 共61页
12_第07章数据库对象管理剖析_第4页
第4页 / 共61页
12_第07章数据库对象管理剖析_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《12_第07章数据库对象管理剖析》由会员分享,可在线阅读,更多相关《12_第07章数据库对象管理剖析(61页珍藏版)》请在金锄头文库上搜索。

1、第7章 数据库对象管理,表的管理: 查看表 查看表结构 创建表 创建约束 修改表 增加字段,改字段名,改字段类型和长度,增加约束,删除约束,设置字段不可用,删除字段 删除表,Review,第7章 数据库对象管理,Review,Create table schema. table_name (column datatype default_expression column_constraint | table_constraint , ) tablespace tablespace_name 约束类型: Not null 只能定义在列级 Unique Check Primary key For

2、eign key: CONSTRAINT emp_dept_fk FOREIGN KEY (department_id) REFERENCES departments(department_id),第7章 数据库对象管理,Review,修改表 Alter table table_name Add column datatype, |Modify (column datatype,.) |Drop unused column (column_name1, column_name1) |rename column column_name to newname |set unused (column

3、_name1, column_name1) |Add CONSTRAINT constraint_name Constraint_type(col1,col2,)condition 添加和删除NOT NULL约束只能用modify子句!,第7章 数据库对象管理,删除约束,ALTER TABLE Students Drop CONSTRAINT CHK_SSEX; ALTER TABLE Courses Drop UNIQUE (Cname); ALTER TABLE Courses Drop Primary Key Cascade; ALTER TABLE Students Modify Sa

4、ge NULL;,第7章 数据库对象管理,本章主要内容,7.1 表管理 7.2 数据查询 7.3 视图管理 7.4 索引管理 7.5 序列管理,第7章 数据库对象管理,7.2 数据查询,SELECT语句的基本应用 定义显示标题 设置查询条件 对查询结果排序 使用统计函数 连接查询,第7章 数据库对象管理,SELECT语句的基本应用,SELECT语句的基本语法结构如下: SELECT DISTINCT 子句 INTO 子句 FROM 子句 WHERE 子句 GROUP BY 子句 HAVING 子句 ORDER BY 子句 ,第7章 数据库对象管理,SELECT语句的基本应用,SELECT语句中

5、各子句的说明,第7章 数据库对象管理,SELECT语句执行环境,iSQL*PLUS,SELECT语句,查询结果,第7章 数据库对象管理,SELECT语句执行环境,SQL*PLUS,SELECT语句,查询结果,第7章 数据库对象管理,定义显示标题,在SELECT语句中设置列标题,第7章 数据库对象管理,SELECT 查询,单表查询 多表连接查询 子查询 组合查询,第7章 数据库对象管理,第7章 数据库对象管理,SELECT 查询单表查询,单表查询指的是在一个源表中查找所需的数据。 因此,单表查询时,FROM子句中的 只需要给出一个源表表名。 1. SELECT子句 (1)选择表中若干列 在SEL

6、ECT子句的中指定整个查询结果表中出现的若干个列名,各列名之间用逗号分隔 【例】查询全体学生的学号与姓名 SELECT Sno,Sname FROM Students,第7章 数据库对象管理,(2)选择表中所有列 可以在中指定表中所有列的列名,也可以用*来代替,或用.*代表指定表的所有列。 【例】查询全体学生的学号、姓名、性别、年龄、所在系。 SELECT Sno,Sname,Sname,Ssex,Sage,Sdept FROM Students 等价于:SELECT * FROM Students,SELECT 查询单表查询,第7章 数据库对象管理,(3)使用表达式 表达式可以是列名、常量、

7、函数、或用列名、常量、函数等经过+(加)、-(减)、*(乘)、/(除)等组成的公式。 【例】查询全体学生的选课情况,即学号、课程号、成绩,对成绩值都加5。 SELECT Sno,Cno,Grade+5 FROM Enrollment,注意:结果中表达式列Grade5无列名。,SELECT 查询单表查询,第7章 数据库对象管理,( 4)设置列的别名 所谓别名,就是另一个名字。主要是为了方便阅读。设置列别名的方法有: 原列名 AS 列别名 【例】查询全体学生的学号、姓名,并为原来的英文列名设置中文别名。以下两种方法等价: SELECT Sno 学号, Sname 姓名 FROM Students

8、SELECT Sno AS 学号 ,Sname AS 姓名 FROM Students,SELECT 查询单表查询,第7章 数据库对象管理,【例】查询全体学生的选课情况,其成绩列值都加5,并为各列设置中文的别名。 SELECT Sno 学号,Cno 课程号,Grade+5 成绩 FROM Enrollment 结果为:,SELECT 查询单表查询,第7章 数据库对象管理,( 5)使用DISTINCT消除结果表中完全重复的行 【例】显示所有选课学生的学号。 SELECT Sno 学号 FROM Enrollment; 【例】显示所有选课学生的学号,并去掉重复行。 SELECT DISTINCT

9、Sno 学号 FROM Enrollment;,SELECT 查询单表查询,第7章 数据库对象管理,2. FROM子句,单表查询中,源表只有一个,因此,FROM子句FROM 例如,要查找学生有关的信息,用到Students表,则FROM子句为:FROM Students 例如,要查找课程有关的信息,用到Courses表,则FROM子句为:FROM Courses 例如,要查找选课有关的信息,用到Enrollment表,则FROM子句为:FROM Enrollment,SELECT 查询单表查询,第7章 数据库对象管理,3. WHERE子句,WHERE 查询体条件中没有多表连接条件,只有一个表的

10、行筛选条件 。 中常用的运算符:比较运算符和逻辑运算符。 比较运算符用于比较两个数值之间的大小是否相等。常用的比较运算符有:=(等于)、(大于)、=(大于等于)、(不等于)。,SELECT 查询单表查询,第7章 数据库对象管理,逻辑运算符主要有: 范围比较运算符:BETWEEN AND ,NOT BETWEEN AND 集合比较运算符:IN ,NOT IN 字符匹配运算符:LIKE,NOT LIKE 空值比较运算符:IS NULL,IS NOT NULL 条件连接运算符:AND,OR,NOT 下面举例说明,第7章 数据库对象管理,( 1)基于比较运算符的查询 SELECT * FROM Enr

11、ollment WHERE Grade80 说明:可以将其他比较运算符号代替大于符号,执行相应的查询,分析结果,从而学会所有比较运算符号的使用方法。 【例】查询数学系全体学生的学号、姓名。 SELECT Sno ,Sname FROM Students WHERE Sdept=Math,SELECT 查询单表查询,第7章 数据库对象管理,( 2)基于BETWEENAND的查询 基本形式:列名 BETWEEN 下限值 AND 上限值 等价于:列名=下限值 AND列名=上限值 列名可以是表达式列的别名。 BETWEENAND一般用于数值型范围的比较。表示当列值在指定的下限值和上限值范围内时,条件为

12、TRUE,否则,为FALSE。 NOT BETWEENAND 与BETWEENAND正好相反,表示列值不在指定的下限值和上限值范围内时,条件为TRUE,否则为FALSE。 注意:列名类型要与下限值或上限值的类型一致。,SELECT 查询单表查询,第7章 数据库对象管理,【例】查询学生选课成绩在8090分之间的学生学号、课程号、成绩。 SELECT * FROM Enrollment WHERE Grade BETWEEN 80 AND 90 SELECT * FROM Enrollment WHERE Grade = 80 AND Grade 30,SELECT 查询单表查询,第7章 数据库对

13、象管理,( 3)基于IN的查询 IN用于测试一个列值是否与常量表中的任何一个值相等。IN条件表示格式为: 列名 IN (常量1, 常量2, 常量n) 当列值与IN中的任一常量值相等时,则条件为TRUE,否则为FALSE。 NOT IN与IN的含义正好相反,当列值与IN中的任一常量值都不相等时,则结果为TRUE,否则为FALSE。,SELECT 查询单表查询,第7章 数据库对象管理,【例】查询数学系、计算机系、艺术系学生的学号、姓名。 SELECT Sno,Sname FROM Students WHERE Sdept IN (Math, Computer, Art) 此句等价于: SELECT

14、 Sno,Sname FROM Students WHERE Sdept =Math OR Sdept = Computer OR Sdept = Art,SELECT 查询单表查询,第7章 数据库对象管理,【例】查询既不是数学系、计算机系,也不是艺术系学生的学号、姓名。 SELECT Sno,Sname FROM Students WHERE Sdept NOT IN (Math, Computer, Art) 此句等价于: SELECT Sno,Sname FROM Students WHERE Sdept! =Math AND Sdept! = Computer AND Sdept! =

15、 Art,SELECT 查询单表查询,第7章 数据库对象管理,( 4)基于LIKE的查询 LIKE用于测试一个字符串是否与给定的模式匹配。所谓模式是一种特殊的字符串,其中可以包含普通字符,也可以包含特殊意义的字符,通常叫通配符。 LIKE运算符的一般形式为:列名 LIKE 模式串中可包含如下通配符,它们的含义是: _: 匹配任意一个字符。注意,在这里一个汉字或一个全角字符也算一个字符。如 _u_表示第二个字符为u或U,第一、第三个字符为任意字符的字符串。 %:匹配任意0个或多个字符。如S%表示以S开头的字符串。,SELECT 查询单表查询,第7章 数据库对象管理,可以用LIKE来实现模糊查询

16、【例】查找姓名的第二个字符是u并且只有三个字符的学生的学号、姓名。 SELECT Sno,Sname FROM Students WHERE Sname LIKE _u_ 【例】查找姓名以S开头的所有学生的学号、姓名。 SELECT Sno,Sname FROM Students WHERE Sname LIKE S%,SELECT 查询单表查询,第7章 数据库对象管理,( 5)基于NULL空值的查询 空值是尚未确定或不确定的值。判断某列值是否为NULL值,不能使用比较运算符等于和不等于,而只能使用专门的判断空值的子句,如下: 判断列值为空的语句格式为:列名IS NULL 判断列值不为空的语句格式为:列名 IS NOT NULL,SELECT 查询单表查询,第7章 数据库对象管理,【例】查询无考试成绩的学生的学号和相应的课程号。 SELECT

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号