好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

数据库应用技术:第2章.ppt

76页
  • 卖家[上传人]:油条
  • 文档编号:1279566
  • 上传时间:2017-06-04
  • 文档格式:PPT
  • 文档大小:357KB
  • / 76 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第2章 Transact-SQL语言,2.1 数据定义语言(DDL)2.2 数据操纵语言(DML)2.3 数据控制语言(DCL)2.4 系统存储过程2.5 其它语言元素,上一章,返回目录,Transact-SQL语言主要组成部分,数据定义语言(DDL,Data Definition Language)数据操纵语言(DML,Data Manipularion Language)数据控制语言(DCL,Data Control Language)系统存储过程(System Stored Procedure)一些附加的语言元素,2.1 数据定义语言(DDL),数据定义语言是指用来定义和管理数据库以及数据库中的各种对象的语句,这些语句包括CREATE、ALTER和DROP等语句在SQL Server 2000中,数据库对象包括表、视图、触发器、存储过程、规则、缺省、用户自定义的数据类型等这些对象的创建、修改和删除等都可以通过使用CREATE、ALTER、DROP等语句来完成程序清单2-1:创建数据库表的一个例子,CREATE TABLE publishers( pub_id char(4) NOT NULL CONSTRAINT UPKCL_pubind PRIMARY KEY CLUSTERED CHECK (pub_id IN ('1389', '0736', '0877', '1622', '1756') OR pub_id LIKE '99[0-9][0-9]'), pub_name varchar(40) NULL, city varchar(20) NULL, state char(2) NULL, country varchar(30) NULL DEFAULT('USA')),程序清单2-2:修改视图的一个例子,USE pubsGOALTER VIEW yourviewASSELECT title, mycount= @@ ROWCOUNT, ytd_sales FROM titles WHERE type = 'mod_cook'GOSELECT * FROM yourviewGO,程序清单2-3:删除触发器的一个例子,/*下面的例子将删除触发器employee_insupd。

      /USE pubsIF EXISTS (SELECT name FROM sysobjects WHERE name = 'employee_insupd' AND type = 'TR') DROP TRIGGER employee_insupdGO,2.2 数据操纵语言(DML),数据操纵语言是指用来查询、添加、修改和删除数据库中数据的语句,这些语句包括SELECT、INSERT、UPDATE、DELETE等在默认情况下,只有sysadmin、dbcreator、db_owner或db_datawriter等角色的成员才有权利执行数据操纵语言1、SELECT语句,SELECT语句的语法形式如下: SELECT select_list [ INTO new_table ] FROM table_source [ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ] [ ORDER BY order_expression [ ASC | DESC ] ] [COMPUTE clause][FOR BROWSE],几种常用语句的用法,SELECT子句用于指定所选择的要查询的特定表中的列,它可以是星号(*)、表达式、列表、变量等。

      INTO子句用于指定所要生成的新表的名称FROM子句用于指定要查询的表或者视图,最多可以指定16个表或者视图,用逗号相互隔开WHERE子句用来限定查询的范围和条件GROUP BY子句是分组查询子句HAVING子句用于指定分组子句的条件GROUP BY子句、HAVING子句和集合函数一起可以实现对每个组生成一行和一个汇总值ORDER BY子句可以根据一个列或者多个列来排序查询结果,在该子句中,既可以使用列名,也可以使用相对列号ASC表示升序排列,DESC表示降序排列COMPUTE子句使用集合函数在查询的结果集中生成汇总行COMPUTE BY子句用于增加各列汇总行SELECT子句的语法形式如下所示:SELECT [ ALL | DISTINCT ]     [ TOP n [ PERCENT ] [ WITH TIES ] ]     < select_list >< select_list > ::={    *         | { table_name | view_name | table_alias }.*         |     { column_name | expression | IDENTITYCOL | ROWGUIDCOL }             [ [ AS ] column_alias ]         | column_alias = expression     }    [ ,...n ],程序清单2-4:显示居住在加利福尼亚州且姓名不为 McBadden 的作者列。

      USE pubsSELECT au_fname, au_lname, phone AS TelephoneFROM authorsWHERE state = 'CA' and au_lname <> 'McBadden'ORDER BY au_lname ASC, au_fname ASC,程序清单2-5:使用两个相关子查询查找作者姓名,这些作者至少参与过一本受欢迎的计算机书籍的创作USE pubsSELECT au_lname, au_fnameFROM authorsWHERE au_id IN (SELECT au_id FROM titleauthor WHERE title_id IN (SELECT title_id FROM titlesWHERE type = 'popular_comp')),程序清单2-6:显示含有本年度截止到现在的当前销售额的行,然后按type以递减顺序计算书籍的平均价格和预付款总额USE pubsSELECT CAST(title AS char(20)) AS title, type, price, advanceFROM titlesWHERE ytd_sales IS NOT NULLORDER BY type DESCCOMPUTE AVG(price), SUM(advance) BY typeCOMPUTE SUM(price), SUM(advance),程序清单2-7:先删除表T1,然后又创建一个带有四个列的表T1。

      最后利用INSERT 语句插入一些数据行,这些行只有部分列包含值IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'T1') DROP TABLE T1GOCREATE TABLE T1 ( column_1 int identity, column_2 varchar(30) CONSTRAINT default_name DEFAULT ('column default'),,column_3 int NULL, column_4 varchar(40))INSERT INTO T1 (column_4) VALUES ('Explicit value')INSERT INTO T1 (column_2,column_4) VALUES ('Explicit value', 'Explicit value')INSERT INTO T1 (column_2,column_3,column_4) VALUES ('Explicit value',-44,'Explicit value')SELECT * FROM T1,程序清单2-8:一个简单的修改语句。

      UPDATE publishersSET city = 'Atlanta', state = 'GA‘,程序清单2-9:一个带有WHERE条件的修改语句UPDATE authors SET state = 'PC', city = 'Bay City' WHERE state = 'CA' AND city = 'Oakland',程序清单2-10:通过 UPDATE 语句使用来自另一个表的信息,其修改表 titles 中的 ytd_sales 列,以反映表 sales 中的最新销售记录UPDATE titles SET ytd_sales = titles.ytd_sales + sales.qty FROM titles, sales WHERE titles.title_id = sales.title_id AND sales.ord_date = (SELECT MAX(sales.ord_date) FROM sales),2.3 数据控制语言(DCL),数据控制语言(DCL)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT、DENY、REVOKE等语句,在默认状态下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成员才有权利执行数据控制语言。

      1、GRANT语句,GRANT语句是授权语句,它可以把语句权限或者对象权限授予给其他用户和角色授予语句权限的语法形式为:GRANT {ALL | statement[,...n]} TO security_account [ ,...n ],授予对象权限的语法形式为:,GRANT     { ALL [ PRIVILEGES ] | permission [ ,...n ] }     {         [ ( column [ ,...n ] ) ] ON { table | view }         | ON { table | view } [ ( column [ ,...n ] ) ]         | ON { stored_procedure | extended_procedure }         | ON { user_defined_function }     } TO security_account [ ,...n ] [ WITH GRANT OPTION ] [ AS { group | role } ],2、DENY语句,DENY语句用于拒绝给当前数据库内的用户或者角色授予权限,并防止用户或角色通过其组或角色成员继承权限。

      否定语句权限的语法形式为:DENY { ALL | statement [ ,...n ] } TO security_account [ ,...n ],否定对象权限的语法形式为:,DENY     { ALL [ PRIVILEGES ] | permission [ ,...n ] }     {       [ ( column [ ,...n ] ) ] ON { table | view }       | ON { table | view } [ ( column [ ,...n ] ) ]       | ON { stored_procedure | extended_procedure }       | ON { user_defined_function }     } TO security_account [ ,...n ] [ CASCADE ],。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.