已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理与应用 锦州师范高等专科学校 计算机系,2019/9/15,第三章 数据库的查询和试图,3.1 SELECT语句查询,3.1.1 选择列,3.1.2 选择行,3.1.3 FROM子句,3.1.4 数据汇总,3.1.5 排序,3.1.6 SELECT语句的其他子句,3.2 视图,3.2.1 视图的建立,3.2.2 视图的修改,3.2.3 视图的删除,2019/9/15,第三章 数据库的查询和试图,Transact-SQL的SELECT语句从一个或者多个表或视图中检索记录,使用查询分析器输入一条SELECT语句,查询情况将在结果窗口中显示。可以编辑或打印这些结果,并且把它们保存在非数据库文件中。 3.1 SELECT语句查询 3.1.1 选择列 SELECT语句中的SELECT子句指定要返回的列;WHERE子句指定选择条件来限制返回结果中的行。 1.指定列 语法形式如下: SELECT 列名1,n FROM 表名1,n,2019/9/15,第三章 数据库的查询和试图,【例3-1】选择XSQK表中的学号、姓名和专业名三列。 SELECT 学号,姓名,专业名 FROM XSQK 2.使用通配符(*) 【例3-2】选择XSQK表的所有列。 SELECT * FROM XSQK 3.使用列表达式 在SELECT子句中可以使用算术运算符对数字型数据列进行(+、-、*、/和%)。 注意:取模运算时,%的两边必须是整数型数据。,2019/9/15,第三章 数据库的查询和试图,【例3-3】查询XS_KC表,并增加了一个计算列,使其为成绩列加5。 SELECT 学号,课程号,成绩,成绩+5 FROM XS_KC 4.改变查询结果中的列名 第一种方法:“=”法。 【例3-4】为【例3-3】中的计算列指定了一个列名“调整后的成绩”。 SELECT 学号,课程号,成绩,调整后的成绩=成绩+5 FROM XS_KC 第二种方法:“AS”法。 【例3-5】为【例3-4】中的成绩列指定了一个新列名“原成绩”。,2019/9/15,第三章 数据库的查询和试图,SELECT 学号,课程号,成绩 AS 原成绩,调整后的成绩=成绩+5 FROM XS_KC 5.增加说明列 目的:增加查询结果的可读性。 【例3-6】在查询结果中备注列前增加了一个说明列。 SELECT 学号,姓名,职务是,备注 FROM XSQK 【例3-7】说明文字串中有单引号的情况。 SELECT 学号,姓名,其职务是,备注 FROM XSQK,2019/9/15,第三章 数据库的查询和试图,6.使用系统函数 包括:聚合函数、数学函数、字符串函数、日期和时间函数以及其他一些系统函数。 AVG函数:返回指定列的算术平均值。 【例3-8】计算XS_KC表中成绩列的算术平均值,并为列指定列名为“平均值” SELECT AVG(成绩) AS 平均 FROM XS_KC COUNT函数:返回指定列的数据记录行数,不包含全部为NULL值的记录行。 【例3-9】选择计算XSQK表中学生记录的行数。 SELECT COUNT(学号) FROM XSQK,2019/9/15,第三章 数据库的查询和试图,【例3-10】计算XS_KC表中成绩不及格的课程记录的总数,并指定列名。 SELECT COUNT(学号) AS 不及格课程总数 FROM XS_KC WHERE 成绩60 DISTINCT:指定返回的是不同记录行数。 【例3-11】计算XS_KC表中不及格学生记录的总数。 SELECT COUNT(DISTINCT 学号) AS 不及格课程总数 FROM XS_KC WHERE 成绩60 MAX函数:返回指定列的最大值。 【例3-12】计算XS_KC表中成绩列的最大值。,2019/9/15,第三章 数据库的查询和试图,SELECT MAX(成绩) AS 最高分 FROM XS_KC MIN函数:返回指定列的最小值。 【例3-13】计算XS_KC表中成绩列的最小值。 SELECT MIX(成绩) AS 最低分 FROM XS_KC SUM函数:返回指定列的总和。 【例3-14】用于计算XS_KC表中成绩列的总和值,并指定列名。 SELECT SUM(成绩) AS 总分 FROM XS_KC,2019/9/15,第三章 数据库的查询和试图,3.1.2 选择行 语法形式: SELECT 列名1,n FROM 表名1,n WHERE 查询条件 1.使用比较运算符 【例3-15】查询XS_KC表成绩不及格的学生记录。 SELECT 学号,课程号,成绩 FROM XS_KC WHERE 成绩60 比较运算符不仅可用于比较数字类型的列,也可用于比较字符类型的列,因为SQL Server的字符都用二进制ASCII码表示,故可以比较大小。,表3.1 比较运算符,2019/9/15,第三章 数据库的查询和试图,【例3-16】查询XS_KC表中学号小于“020201”的学生记录。 SELECT 学号,课程号,成绩 FROM XS_KC WHERE 成绩020201 注意:系统不区分大小写。 2.使用字符串模糊匹配 在大多数情况下,LIKE子句与通配符配合使用,以满足复杂的查询条件。SQL Server提供了4种通配符,百分号、下划线、 和字符。,2019/9/15,第三章 数据库的查询和试图,语法形式: SELECT 列名1,n FROM 表名1,n WHERE 列名 LIKE 匹配字符串,2019/9/15,第三章 数据库的查询和试图,表5.2 匹配符的含义,【例3-17】查询所有陈姓学生的记录。 SELECT 学号,姓名 FROM XSQK WHERE 姓名 LIKE 陈%,2019/9/15,第三章 数据库的查询和试图,【例3-18】查询所有书名为“SQL Server 2000”字符串的书。 SELECT 书号,书名 FROM publish WHERE 书名 LIKE SQL Server 2000% 【例3-19】查询所有陈姓单名学生的记录。 SELECT 学号,姓名 FROM XSQK WHERE 姓名 LIKE 陈_ 【例3-20】查询所有姓介于“岑”到“方”或者介于“薛”到“张”的学生的记录。 SELECT 学号,姓名 FROM XSQK WHERE 姓名 LIKE 岑-方,薛-张%,2019/9/15,第三章 数据库的查询和试图,在【例3-20】中,中文字符在比较时是比较其拼音序列。 【例3-21】查询所有姓不介于“岑”到“方”或者介于“薛”到“张”的学生的记录。 SELECT 学号,姓名 FROM XSQK WHERE 姓名 LIKE 岑-方,薛-张% 注意:使用了LIKE关键字,会导致SQL Server不使用与指定表的索引。因此,不推荐在大型表上使用模糊匹配,查询时间会很长。 3.使用逻辑运算符 包括:与AND,或OR,非NOT 语法格式:,2019/9/15,第三章 数据库的查询和试图,SELECT 列名1 ,n FROM 表名1 ,n WHERE NOT 查询条件|AND|OR|NOT查询条件n 【例3-22】查询XSQK表中备注列不为空的记录。 SELECT 学号,姓名,备注 AS 职务 FROM XSQK WHERE 备注 LIKE % 【例3-23】查询XS_KC表中“101”号课程的成绩介于8089的记录。 SELECT 学号,课程号,成绩 FROM XS_KC WHERE 课程号=101 AND 成绩=80 AND 成绩=89,2019/9/15,第三章 数据库的查询和试图,【例3-24】查询XS_KC表中不满足“101”号课程的成绩大于等于60的记录。 SELECT 学号,课程号,成绩 FROM XS_KC WHERE 课程号=101 AND NOT 成绩=60 【例3-25】查询XS_KC表中不满足“101”号课程的成绩介于6070的记录。 SELECT 学号,课程号,成绩 FROM XS_KC WHERE 课程号=101 AND NOT (成绩=60 AND 成绩=70),2019/9/15,第三章 数据库的查询和试图,4.使用查询范围 除了比较运算符,还有另一种指定列值范围的方法。 语法格式为: SELECT 列名1 ,n FROM 表名1 ,n WHERE 列名 BETWEEN 取值范围下界 AND 取值范围上界 将【例3-23】改成如下形式,查询结果不变。 SELECT 学号,课程号,成绩 FROM XS_KC WHERE 课程号=101 AND 成绩 BETWEEN 80 AND 89,2019/9/15,第三章 数据库的查询和试图,5.使用查询集合(关键字IN) 语法格式: SELECT 列名1,n FROM 表名1,n WHERE 列名 IN (列值1,n) 【例3-26】查询XS_KC表中课程号“101”、“103”或“107”的学生成绩记录。 SELECT 学号,课程号,成绩 FROM XS_KC WHERE 课程号 IN (101,103,107),2019/9/15,第三章 数据库的查询和试图,【例3-27】把【例3-26】改成用OR运算符连接形式,查询结果不变 。 SELECT 学号,课程号,成绩 FROM XS_KC WHERE 课程号=101 OR 课程号=103 OR 课程号=107 关键字IN常常使用于SELCET语句的嵌套形式中。 【例3-28】使用IN的嵌套查询实现至少有一门课程不及格的学生名单 。 SELECT 学号,姓名,联系电话 FROM XSQK WHERE 学号 IN (SELECT DISTINCT 学号 FROM XS_KC WHERE 成绩60),2019/9/15,第三章 数据库的查询和试图,3.1.3 FROM子句 FROM子句语法格式: FROM表名|视图名,n 【例3-29】显示了为XSQK表指定了别名“学生情况表”,并在WHERE子句中使用了该别名。 SELECT 学号,姓名,联系电话 FROM XSQK 学生情况表 WHERE 学生情况表.学号=020101 3.1.4 数据汇总 1.使用聚合函数 AVG、MAX、MIN、SUM、COUNT和COUNT(*) 注意:列值为NULL的数据记录不包括在聚合函数的运算中。,2019/9/15,第三章 数据库的查询和试图,2.使用分组汇总子句 语法格式: SELECT 列名1,n FROM 表名1,n GROUP BY 列名1,n HAVING 逻辑表达式 【例3-30】按课程分组汇总每一组课程的平均成绩。 SELECT 课程号,AVG(成绩) AS 平均分 FROM XS_KC GROUP BY 课程号 注意:如果GROUP BY 后指定了多个列,则先按第一列进行分组并按升序排列,再按第二列进行,依此类推。,2019/9/15,第三章 数据库的查询和试图,【例3-31】按班级、学号分组汇总所有课程的平均分。 SELECT 班级,AVG(成绩) AS 平均分 FROM XS_KC GROUP BY 班级,学号 【例3-32】按学号、班级分组汇总所有课程的平均分。 SELECT 班级,AVG(成绩) AS 平均分 FROM XS_KC GROUP BY学号,班级 【例3-33】用HAVING选项,保留平均分大于70且小于80的组。 SELECT 班级,学号,AVG(成绩) AS 平均分 FROM XS_KC GROUP BY 学号,班级 HAVING AVG(成绩)70 AND AVG(成绩)80,2019/9/15,第三章 数据库的查询和试图,【例3-34】统计1班各课程不及格的人数。 SELECT 班级,课程号,COUNT(成绩) AS 不及格人数 FROM XS_KC WHERE 成绩60 GROUP BY 班级,课程号 HAVING 班级=1 3.使用WITH ROLLUP和WITH CUBE选项 使用WITH ROLLUP和WITH CUBE选项可以对汇总结果再汇总,生成超级组。 【例3-35】数据汇总时不使用WITH ROLLUP和WITH CUBE选项。 SELECT 班级,课程号,COUNT(成绩) AS 不及格人数 FROM XS_KC WHERE 成绩60 GROUP BY 班级,课程号,2019/9/15,第三章 数据库的查询和试图,【例3-36】对【例3-34】进行数据汇总时使用WITH ROLLUP选项。 SELECT 班级,课程号,COUNT(成绩) AS 不及格人数 FROM XS_KC WHERE 成绩60 GROUP BY 班级,课程号 WITH ROLLUP 【例3-37】对【例3-34】进行数据汇总时使用WITH CUBE选项。 SELECT 班级,课程号,COUNT(成绩) AS 不及格人数 FROM XS_KC WHERE 成绩60 GROUP BY 班级,课程号 WITH CUBE,2019/9/15,第三章 数据库的查询和试图,4.使用明细汇总子句 语法格式: SELECT 列名1,n FROM 表名1,n WHERE 逻辑表达式 GROUP BY 列名1,n ORDER BY列名1|列号1ASC|DESC,n COMPUTE聚合函数(列名1),n BY 列名1,n 注意事项: 如果使用GROUP BY子句,那么SELECT子句中指定的列必须在GROUP BY子句中指定、或是和聚合函数一起使用。,2019/9/15,第三章 数据库的查询和试图, COMPUTE子句中的列必须出现在SELECT子句的列表中。 使用COMPUT BY子句就不能同时使用SELECT INTO子句 BY选项表示按指定的列进行明细汇总,使用BY选项时必须同时使用ORDER BY 子句,且BY选项后的列必须具有和ORDER BY后的列相同的顺序,且不能跳过其中的列。 例如:如果ORDER BY子句按照如下指定列。 ORDER BY 列A,列B,列C 则BY选项后的列表只能是下面任一中形式: BY 列A,列B,列C BY 列A,列B BY 列A,2019/9/15,第三章 数据库的查询和试图,【例3-38】使用COMPUTE子句对不及格的成绩记录进行明细汇总。 SELECT 学号,课程号,成绩 FROM XS_KC WHERE 成绩60 COMPUTE COUNT(成绩) 【例3-39】使用COMPUTE BY子句对不及格的成绩记录进行明细汇总。 SELECT 学号,课程号,成绩 FROM XS_KC WHERE 成绩60 ORDER BY 2 COMPUTE COUNT(成绩) BY 课程号,2019/9/15,第三章 数据库的查询和试图,3.1.5 排序 如果按一定顺序显示数据记录,有两种方法: (为表中的列建立簇索引或普通索引。) 当查询指定的是单个列,且该列有索引时,查询结果按照该列的索引定义的顺序显示; 否则都按照表的簇索引顺序显示。 【例3-40】查询学生表中的“姓名”单个列。 SELECT 姓名 FROM XSQK 【例3-41】查询学生表中的“姓名”、“联系电话”多个列。 SELECT 姓名,联系电话 FROM XSQK 查询结果如下图:,2019/9/15,第三章 数据库的查询和试图,2019/9/15,第三章 数据库的查询和试图,语法格式: SELECT 列名1,n FROM 表名1,n ORDER BY 列名1|列号1ASC|DESC,n 其中:ASC为默认值,表示按升序排序。 【例3-42】查询学生表中的“姓名”,并按姓名列的降序排序。 SELECT 姓名 FROM XSQK ORDER BY 姓名 DESC 【例3-43】按出生日期列的升序排列学生表。 SELECT 学号,姓名,出生日期 FROM XSQK ORDER BY 3,2019/9/15,第三章 数据库的查询和试图,例3-42,例3-43,2019/9/15,第三章 数据库的查询和试图,【例3-44】按多个列对学生表排序。 SELECT 学号,课程号,成绩 FROM XS_KC ORDER BY 2,3 DESC,2019/9/15,第三章 数据库的查询和试图,3.1.6 SELECT语句的其他子句 1.将查询结果生成表 语法格式: SELECT 列名1,n INTO 新表名 FROM 表名1,n WHERE 逻辑表达式 【例3-45】将【例3-44】的查询结果保存到新表temp_KC中。 SELECT 学号,课程号,成绩 INTO temp_KC FROM XS_KC ORDER BY 2,3 DESC,2019/9/15,第三章 数据库的查询和试图,2.使用连接查询 所谓连接查询就是将多个表通过某个或某些列为条件进行连接,从中查询数据。 两种语法方式: ANSI连接语法形式如下: SELECT 表名.列名1,n FROM表名1连接类型 JOIN 表名2 ON 连接条件,n WHERE 查询条件 SQL Server连接语法形式如下: SELECT 表名.列名1,n FROM 表名1 ,n WHERE 查询条件 AND |OR 连接条件,n,2019/9/15,第三章 数据库的查询和试图,(1)内连接 INNER JOIN 在内连接中,可以使用等号“=”作为比较运算符,此时称作等值连接;也可以使用不等比较运算符,此时为不等值连接。 【例3-46】用ANSI语法表示的内连接查询成绩不及格的学生信息。 SELECT XSQK.学号,姓名,联系电话,课程号,成绩 FROM XSQK INNER JOIN XS_KC ON XSQK.学号= XS_KC.学号,2019/9/15,第三章 数据库的查询和试图,(2)外连接 外连接包括左外连接、右外连接和全外连接。左外连接包含左表的所有数据行,右外连接包含右表的所有数据行,全外连接包含两个表的所有数据行。 左连接:在连接两个表时,保留左表中的不匹配行。 LEFT OUTER JOIN 右连接:在连接两个表时,保留右表中的不匹配行。 RIGHT OUTER JOIN 全连接:在连接两个表时,保留两表中的不匹配行。 FULL OUTER JOIN 全外连接使用FULL OUTER JOIN操作符,它实际上是左外连接与右外连接的结合,即操作符两边的表中所有数据行均会显示在结果集中。不论哪一个表中没有对应的数据行,相应列上都会返回空值。,2019/9/15,第三章 数据库的查询和试图,【例3-47】用ANSI语法表示的左连接查询。 SELECT XSQK.学号,姓名,联系电话,课程号,成绩 FROM XSQK LEFT OUTER JOIN XS_KC ON XSQK.学号= XS_KC.学号 【例3-48】用ANSI语法表示的右连接查询。 SELECT XSQK.学号,姓名,联系电话,课程号,成绩 FROM XSQK RIGHT OUTER JOIN XS_KC ON XSQK.学号= XS_KC.学号 【例3-49】用ANSI语法表示的全连接查询。 SELECT XSQK.学号,姓名,联系电话,课程号,成绩 FROM XSQK FULL OUTER JOIN XS_KC ON XSQK.学号= XS_KC.学号,2019/9/15,第三章 数据库的查询和试图,(3)自连接 INNER JOIN JOIN连接操作符还可以用于单个表,此时代表一个表与其自身进行连接,表的这种连接操作称为自连接。为了区别列名,必须在自连接中对表指定别名。 【例3-50】用ANSI语法表示的自连接查询显示每个学生的两门课程成绩。 SELECT a.学号,a.课程号,a.成绩,b.课程号,b.成绩 FROM XS_KC a INNER JOIN XS_KC ON a.学号= b.学号 WHERE a.课程号b.课程号,2019/9/15,第三章 数据库的查询和试图,(4)无限制连接 CROSS JOIN 无限制连接返回进行连接操作的两个表中所有数据行的笛卡尔积,得到的结果集的行数是两个表的行数的乘积。 【例3-51】SELECT * FROM XSQK CROSS JOIN XS_KC,2019/9/15,第三章 数据库的查询和试图,3.使用联合查询 增加记录的行数 语法形式:SELECT 语句1 UNION ALL SELECT 语句2 【例3-52】SELECT 学号 FROM XSQK UNION ALL SELECT 成绩 FROM XS_KC,2019/9/15,第三章 数据库的查询和试图,4.使用嵌套查询(子查询) 将一个SELECT语句嵌套在另一个SELECT语句的WHERE子句中的查询形式,称为子查询,子查询中嵌套在WHERE子句里的SELECT语句称为内部查询,相对的,另一个包含内部查询的SELECT语句被称为外部查询。子查询要求服务器先计算内部查询并形成结果,然后外部查询根据内部查询的结果,产生最终查询结果。 子查询可分为4种类型: NOTIN子查询 比较子查询 NOTEXISTS子查询 关联子查询,2019/9/15,第三章 数据库的查询和试图,(1)NOTIN子查询 操作符IN用于WHERE子句中时,通常用来确定某个属性列的值是否包含在一个表达式或者常量的集合中。同样,操作符IN也可以用于子查询,用来确定某个列值是否在内部查询的结果集中。 【例3-53】查询无不及格学生的课程的授课教师。 SELECT DISTINCT 授课教师 FROM KC WHERE 课程号 NOT IN (SELECT 课程号 FROM XS_KC WHERE 成绩60),2019/9/15,第三章 数据库的查询和试图,(2)比较子查询 比较子查询就是将某个列值与内部查询的结果作运算比较,如果比较结果为真则返回该行,否则不返回。比较子查询通常要用到操作符ALL、ANY、SOME。其通用格式为: ALL|ANY|SOME ALL :列值必须和内部查询结果集的每一个值进行比较,只有每一次的比较结果都为真时,比较结果才为真。 ANY、SOME :列值和内部查询结果集的值进行比较,只要有一次为真,比较结果就为真。,2019/9/15,第三章 数据库的查询和试图,【例3-54】查询平均分低于60的学生学号。 SELECT DISTINCT 学号 FROM XS_KC a WHERE 60 (SELECT AVG(成绩) FROM XS_KC b WHERE b.学号=a.学号) 【例3-54】(方法二)查询平均分低于60的学生学号。 SELECT DISTINCT 学号,AVG(成绩) FROM XS_KC GROUP BY 学号 HAVING AVG(成绩)60,2019/9/15,第三章 数据库的查询和试图,【例3-55】查询有不及格学生的课程号的授课教师。 SELECT DISTINCT 授课教师 FROM KC WHERE 课程号=ANY (SELECT 课程号 FROM XS_KC WHERE 成绩60) 【例3-55】(方法二)查询有不及格学生的课程号的授课教师。 SELECT DISTINCT 授课教师 FROM KC INNER JOIN XS_KC ON XS_KC.课程号=KC.课程号 WHERE 成绩60,2019/9/15,第三章 数据库的查询和试图,(3)NOTEXISTS 子查询 EXISTS是测试子查询是否有数据行返回,如果有则返回TRUE,否则返回FALSE。NOT EXISTS 则相反,当结果表为空时,才返回TRUE。 【例3-56】查询是否有至少一门课程不及格的学生。 SELECT DISTINCT 学号,姓名 FROM XSQK a WHERE EXISTS (SELECT * FROM XS_KC b WHERE b.成绩60 AND b.学号=a.学号),2019/9/15,第三章 数据库的查询和试图,(4)简单查询 Transact-SQL的SELECT语句从一个或者多个表或视图中检索记录,使用查询分析器输入一条SELECT语句,查询情况将在结果窗口中显示。可以编辑或打印这些结果,并且把它们保存在非数据库文件中。 指定TOP关键字 SQL Server 2000 使用了TOP 关键字,用于查询时只显示前面几行数据。当SELECT语句检索出来的记录非常多,且又无须显示全部记录时,可使用TOP关键字来减少查询时间,提高查询效率。 使用TOP关键字的语法如下: SELECT TOP integer | TOP integer PERCENTWITH TIES ,1n FROM ;,2019/9/15,第三章 数据库的查询和试图,【例3-57】查询前5行记录。 SELECT TOP 5 姓名 FROM XSQK 【例3-58】查询前20%记录。 SELECT TOP 20 PERCENT 姓名 FROM XSQK,2019/9/15,第三章 数据库的查询和试图,3.2 视图 视图的概念 视图不包含任何数据,只是定义在一个或多个基表上或其他视图上,并且提供一种访问基表数据的方法。在物理磁盘上存储的有关视图的信息是:视图的名称和视图的定义。视图的所有数据来自基本表。因此,当基本表的数据发生变化时,对应视图中的查询出的数据也会随之变化。 视图一经定义,就可以象基本表一样执行查询、删除等操作,也可以在视图上定义新的视图,但对视图的更新操作则有一定限制。 视图的作用 可以满足不同用户的需求 不同的用户对数据库操作有不同的需求,即使相同的数据也可能有不同的操作要求。一张基本表可能有很多属性列,利用视图,用户可以把自己感兴趣的属性列集中起来,放在一个视图中,此后用户可以将视图作为一张表来对待。,2019/9/15,第三章 数据库的查询和试图,可以简化数据读取 查询数据时,通常要用SELECT语句编写复杂的连接、统计、函数等,以产生所需要的结果。使用视图,可以隐蔽这种复杂性。可以将经常用到的复杂查询的语句定义为视图,不必每次查询都写上复杂查询条件,这样就简化了用户的查询操作。 保证了基本表数据和应用程序的逻辑独立性 当应用程序通过视图来访问数据时,视图实际上成为应用程序和基本表数据之间的桥梁。如果应用程序直接调用基本表,则一旦基本表的数据发生变化时,应用程序必须随之改动。而通过视图访问数据,则可以通过改变视图来适应基本表的变化,使应用程序不必作改变,保证了基本表数据和应用程序的逻辑独立性。 可以提供安全机制 利用视图可以限制数据访问。如果某个用户需要访问表中的某些列,但另一些属性列必须对该用户保密,则可以利用视图达到此目的,将视图建立在该用户需要访问的那些列上。,2019/9/15,第三章 数据库的查询和试图,在代码方式下对视图的操作: 3.2.1 视图的建立 3.2.2 视图的修改 3.2.3 视图的删除,2019/9/15,第三章 数据库的查询和试图,3.2.1 视图的建立 SQL语言用CREATE VIEW语句来建立视图,其一般格式为: CREATE VIEW (,) AS WITH CHECK OPTION; 说明: (1)选项WITH CHECK OPTION确保用户只能查询和修改他们所看到的数据,强制所有在视图上使用的数据修改语句满足定义视图时的条件。 (2)组成视图的各属性列可以显式指定,也可以省略。如果省略不写,则组成视图的各属性列由子查询中SELECT子句的各目标列组成。,2019/9/15,第三章 数据库的查询和试图,下列情形建立视图时必须显式指定属性列: 1)视图的某列不是原属性列,而是统计函数或者表达式。 2)多表连接时选出了两个或者多个同名列作为视图的属性列。 3)需要对视图中的某些列重新命名。 【例3-59】创建包含班委成员基本信息的视图。 CREATE VIEW v_班委成员 AS SELECT 学号,姓名,联系电话,职务=备注 FROM xsqk WHERE 备注 LIKE % 其中可用: CREATE VIEW v_班委成员 (a,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保险理赔操作流程与客户服务手册
- 低压配电装置培训课件
- 公共部门激励机制优化方案
- 农村工程法律培训课件
- 农村小学网络安全课件
- 药店不良反应报告标准操作流程
- 药品经营许可证注销流程指南
- 市政工程成本控制管理办法
- 现代企业常用法律术语大全
- 建筑电气安装技术详细交底书
- 湖南省长郡二十校联盟2025-2026学年高三上学期12月考试数学试卷
- 小小养殖员课件
- 公司员工意识培训课件
- 仓库统计员的工作总结
- 小流浪猫知识题库及答案
- 2025年大学《科学社会主义-中国特色社会主义理论体系》考试备考题库及答案解析
- Unit 6 Find your way 第1课时 Get ready Start up 课件 2025-2026学年外研版(三起)英语四年级上册
- 2025秋期版国开河南电大本科《法律社会学》一平台我要考试无纸化考试试题及答案
- 义务教育英语教学大纲及实施方案2024版
- 宁德时代shl测试题库以及答案解析
- 公众号解封申请书
评论
0/150
提交评论