资源预览内容
第1页 / 共34页
第2页 / 共34页
第3页 / 共34页
第4页 / 共34页
第5页 / 共34页
第6页 / 共34页
第7页 / 共34页
第8页 / 共34页
第9页 / 共34页
第10页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第4章 走进进SQL语语句的世界 SQL(Structured Query Language)结构化查询语言, 是一种数据库查询和程序是一种数据库查询和程序设计语言,用 于存取数据以及查询、更新和管理关系数据库系统。同时也是数 据库脚本文件的扩展名。而T-SQL是标准 SQL 程式设计语言的 增强版,它是用来让应用程式与 SQL Server 沟通的主要语言。 本章以T-SQL为基础,从数据定义语句(DDL)、数据操作语 句(DML)、数据控制语句(DCL)等方面介绍SQL以及T- SQL的基本语法。具体内容如下: 数据定义语句(DDL) 数据操作语句(DML) 数据控制语句(DCL) 其他基本语句 循环控制语句 批处理语句 小结 4.1 数据定义语义语 句(DDL) SQL 是结构化查询语言(Structured Query Language)的简称,是由IBM 的研究中心在1970 年代初期 所开发的,是专门用于关连式资料库的一种查询语言。其中包 括数据定义语句,数据操作语句,数据控制语句。数据库模式 定义语句DDL(Data Definition Language),是用于描述数据 库中要存储的现实世界实体的语言。通常是数据库管理系统的 一部分,用于定义数据库的所有特性和属性,尤其是行布局、 列定义、键列(有时是选键方法)、文件位置和存储策略。常 见的数据库定义语言包括:CREATE DATABASE(创建数据 库),CREATE TABLE(创建表),ALTER TABLE(修改数 据表),DROP VIEW(删除查询命令)等。下面我们将分别 介绍各种数据定义语句。 4.1.1 CREATE的应应用 CREATE是数据库操作语言中极其重要的一部分,也 是经常要用到的一部分。其中包括数据库的创建,数据库表 的创建以及创建约束等,下面我们将举例熟悉CREATE的具 体应用。 1创建数据库 2创建表 4.1.2 DROP的功能 DROP语句是数据库操作中不可或缺的一部分,通过使 用 DROP 语句,可以轻松地删除索引、表和数据库。下面 将通过实例进行数据库删除(DROP DATABASE),删 除表(DROP TABLE)的操作。 1数据库的删除 2数据库中的表的删除 4.1.3 ALTER的功能 当数据库结构无法满足要求时,可以使用ALTER语句 进行数据库及其内容表的修改。以下将以修改数据库( ALTER DATABASE)、修改表结构(ALTER TABLE)为 例,对ALTER语句进行详细讲解: 1修改数据库 2修改表 4.2 数据操作语语句(DML) 数据操作语言(DML,Data Manipulation Language) 是使用户能够查询数据库以及操作已有数据库中的数据的计算 机语言,在SQL语言中占据着非常重要的地位。其大体包括数 据的插入(INSERT)、数据的删除(DELETE)、数据的更 改(UPDATE)数据的查询(SELECT)。 4.2.1 数据的插入-INSERT 向一个已经存在的表中插入数据,可以分为一次插入一 条记录,也可以分为一次插入多条记录。但是需要注意的是 ,无论哪种方式,输入的数据都必须符合数据类型及其相应 的约束。其语法结构如下: INSERT INTO table_name 4.2.1 数据的插入-INSERT 4.2.2 数据的删删除-DELETE 删除表中的数据,是指在表中删除记录,但是表的结构 、约束、索引等并没有删除。删除数据可以分为按指定条件 删除一个或者多个元组,也可以不指定条件对数据表中所有 元组进行删除,甚至可以运用子查询的结果进行删除。 1按照指定条件删除一个或者多个元组 2删除表中所有元组 4.2.2 数据的删删除-DELETE 4.2.3 数据的更改-UPDATE UPDATE语句允许用户在已知的表中对现有的行进行 修改。修改数据有以下几种方式:可以按指定条件修改一个 或者多个元组,也可以修改表中所有元组,甚至可以利用子 查询的结果进行数据的修改。 1按指定条件修改数据 2修改表中所有元组 4.2.3 数据的更改-UPDATE 4.2.3 数据的更改-UPDATE 4.2.4 数据的查询查询 -SELECT 数据查询是数据库编程中最基本并且也是最常用的一部 分,对用户来说,数据查询是数据库最重要的功能。SQL Server的数据查询使用T-SQL语言,其最基本的语句是 SELECT语句。SELECT语句的功能相当强大,下面将讲述 数据查询的实现方法。 1SELECT语句的结构 2基本SELECT查询 3带有限制条件的SELECT查询 4表达式在查询列表中的使用 5取得查询结果的部分行集 6使用逻辑表达式NOT(非)进行查询 7使用逻辑表达式AND(与)进行查询 8使用逻辑表达式OR(或)进行查询 9使用通配符进行模糊查询 10使用BETWEENAND关键字进行查询 11查询排序 4.3 数据控制语语句(DCL) 数据控制语言(DCL)是用来设置或者更改数据库用 户或角色权限的语句,这些语句包括GRANT、DENY、 REVOKE等语句,在默认状态下,只有sysadmin、 dbcreator、db_owner或db_securityadmin等角色的成员 才有权利执行数据控制语言。 4.3.1 如何给给用户户授予权权限-GRANT 当用户成为数据库中的合法用户后,除了可以查询系统 表之外,并不具有操作数据库中对象的任何权限,因此,需 给数据库中的用户授予操作数据库对象的权限。 通常,SQL Server对权限的管理包含三方面内容:1. 授予权限。2.收回权限。3.拒绝权限。 以下我们将简要介绍下GRANT的作用,详细内容后面 会专门介绍。 对象权限是指用户对数据库的表、视图等对象的操作权 ,相当于数据操作语言的语句权限,例如是否进行查询、增 加、删除等。 4.3.2 拒绝权绝权 限操作-DENY 很多时候,有些表并不是想让每个人来查看的,此时可 以使用SQL新特性DENY来禁止此表的SELECT权限。 DENY可以被管理员用来禁止某个用户对一个对象的所有访 问权限。下面通过一个实例来加深对此语句的使用。 【例4-21】拒绝sa1用户对student表进行修改操作。 DENY UPDAT ON student TO sa1 4.3.3 收回权权限操作-REVOKE 当要对一个用户取消特权,比如:插入权限,查询权限 ,删除权限等,就要使用T-SQL语句进行收回权限操作。T- SQL语言提供了REVOKE语句来实现此功能。 4.4 其他基本语语句 SQL中除了数据定义语句,数据操作语句,数据控制 语句外还有其他一些基本语句,以此来辅助语句的执行。在 此,将介绍DECLARE、SET、PRINT等几个基本语句来熟 悉语句的应用和操作。 4.4.1 数据声明DECLARE DECLARE命令用于声明一个或多个局部变量、游标变 量,函数,过程等。在用DECLARE命令声明后所有的变量 被赋值NULL,需要用SET或者SELECT赋值。 具体语法如下: 语法 1: Public | Private Declare Sub name Lib “libname“ Alias “aliasname“ (arglist) 语法 2: Public | Private Declare Function name Lib “libname“ Alias “aliasname“ (arglist) As type 4.4.2 数据赋值赋值 SET SET命令即可用于对局部变量进行赋值,也可用于设定 用户执行SQL命令时SQL Server的处理选项设定。当SET用 于给局部变量赋值时语法如下: SET local_variable = expression SELECT语句同样可以用于给变量赋值。其语法如下: SELECT LOCAL_VARIABLE = expression 4.4.3 数据输输出 PRINT PRINT输出时的语法如下: PRINT local_variable| FUNCTION PRINT命令向客户端返回一个用户自定义的信息,即显 示一个字符串的局部变量或者全局变量。如果变量不是字符 串必须先用数据列席转换函数CONVERT转换为字符串。 SELECT同样可以完成数据输出任务,其语法如下: SELECT local_variable | FUNNCTION | string_expression 具体应用已在局部变量处详细介绍。 4.5 循环环控制语语句 SQL语句从上至下顺序执行,但是很多时候并不是我 们所希望的。Transact-SQL威威猫提供了用于编写过程性 代码的语法结构,使在程序执行时按照自己的意愿改变程序 执行的顺序。T-SQL可用来进行顺序、分支、循环、存储过 程、批处理、语句块等程序设计,编写结构化的模块代码。 下面介绍主要的流程控制语句。 4.5.1 语语句块块BEGINEND 使用BEGIN和END关键字来创建SQL语句块。BEGIN和 END块间的语句按单个语句块处理,按一个单元执行。 BEGIN和END通常用于定义包含其他流程控制语句(如IF、 WHILE及CASE)的语句块。语法如下: BEGIN sql_statement | statement_block END 4.5.2 GOTO语语句 GOTO语句将执行控制从代码中的一个位置转移至用户 定义标签后的另一个位置。GOTO语句和标号可以用在存储 过程、批处理或者语句块中,标号名必须遵守T-SQL命名规 则。一般情况下,GOTO语句常用着WHILE语句和IF语句中 。 使用GOTO语句,首先定义一个标号,其语法如下: 标号: 然后使用GOTO语句转移到所定义的标签处,语法如下 : GOTO 标签 4.5.2 GOTO语语句 4.5.3 IFELSE语语句 如果需要在执行一组语句前先测试条件,则会在代码中 同时存在几种情况。因此,IFELSE语句可以用来求布尔 表达式的值。IF语句提出可能的情况,接着基于这些情况会 有相应的执行语句。ELSE关键字便于IF返回FALSE时执行 其他语句。其语法如下: IF boolean_expression sql_statement | statement_block ELSE IF boolean_expression sql_statement | statement_block ELSE sql_statement | statement_block 4.5.4 CASE语语句 CASE语句用于多条件分支选择,虽然IFELSE在某 些时候同样可以完成CASE语句所要实现的功能,但是使用 CASE语句可以更加简化SQL表达式。CASE 关键字使您可 根据表达式的真假来确定是否返回某个值。可在允许使用表 达式的任何位置使用这一关键字。具体语法如下: CASE expression WHEN expression1 THEN expression1 WHEN expression2 THEN expression2 . ELSE expressionN END 4.5.5 WHILE循环语环语 句 在WHILE语句中设置重复执行SQL语句或语句块的条 件。只要指定的条件为真,就重复执行语句。很多时候,可 以使用 BREAK 和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执行。具体语法如下: WHILE Boolean_expression sql_statement | statement_block BREAK sql_statement | statement_block CONTINUE 4.5.6
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号