




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章走进SQL语句的世界,SQL(StructuredQueryLanguage)结构化查询语言,是一种数据库查询和程序是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。而T-SQL是标准SQL程式设计语言的增强版,它是用来让应用程式与SQLServer沟通的主要语言。本章以T-SQL为基础,从数据定义语句(DDL)、数据操作语句(DML)、数据控制语句(DCL)等方面介绍SQL以及T-SQL的基本语法。具体内容如下:数据定义语句(DDL)数据操作语句(DML)数据控制语句(DCL)其他基本语句循环控制语句批处理语句小结,4.1数据定义语句(DDL),SQL是结构化查询语言(StructuredQueryLanguage)的简称,是由IBM的研究中心在1970年代初期所开发的,是专门用于关连式资料库的一种查询语言。其中包括数据定义语句,数据操作语句,数据控制语句。数据库模式定义语句DDL(DataDefinitionLanguage),是用于描述数据库中要存储的现实世界实体的语言。通常是数据库管理系统的一部分,用于定义数据库的所有特性和属性,尤其是行布局、列定义、键列(有时是选键方法)、文件位置和存储策略。常见的数据库定义语言包括:CREATEDATABASE(创建数据库),CREATETABLE(创建表),ALTERTABLE(修改数据表),DROPVIEW(删除查询命令)等。下面我们将分别介绍各种数据定义语句。,4.1.1CREATE的应用,CREATE是数据库操作语言中极其重要的一部分,也是经常要用到的一部分。其中包括数据库的创建,数据库表的创建以及创建约束等,下面我们将举例熟悉CREATE的具体应用。1创建数据库2创建表,4.1.2DROP的功能,DROP语句是数据库操作中不可或缺的一部分,通过使用DROP语句,可以轻松地删除索引、表和数据库。下面将通过实例进行数据库删除(DROPDATABASE),删除表(DROPTABLE)的操作。1数据库的删除2数据库中的表的删除,4.1.3ALTER的功能,当数据库结构无法满足要求时,可以使用ALTER语句进行数据库及其内容表的修改。以下将以修改数据库(ALTERDATABASE)、修改表结构(ALTERTABLE)为例,对ALTER语句进行详细讲解:1修改数据库2修改表,4.2数据操作语句(DML),数据操作语言(DML,DataManipulationLanguage)是使用户能够查询数据库以及操作已有数据库中的数据的计算机语言,在SQL语言中占据着非常重要的地位。其大体包括数据的插入(INSERT)、数据的删除(DELETE)、数据的更改(UPDATE)数据的查询(SELECT)。,4.2.1数据的插入-INSERT,向一个已经存在的表中插入数据,可以分为一次插入一条记录,也可以分为一次插入多条记录。但是需要注意的是,无论哪种方式,输入的数据都必须符合数据类型及其相应的约束。其语法结构如下:INSERTINTOtable_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,数据查询是数据库编程中最基本并且也是最常用的一部分,对用户来说,数据查询是数据库最重要的功能。SQLServer的数据查询使用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,当用户成为数据库中的合法用户后,除了可以查询系统表之外,并不具有操作数据库中对象的任何权限,因此,需给数据库中的用户授予操作数据库对象的权限。通常,SQLServer对权限的管理包含三方面内容:1.授予权限。2.收回权限。3.拒绝权限。以下我们将简要介绍下GRANT的作用,详细内容后面会专门介绍。对象权限是指用户对数据库的表、视图等对象的操作权,相当于数据操作语言的语句权限,例如是否进行查询、增加、删除等。,4.3.2拒绝权限操作-DENY,很多时候,有些表并不是想让每个人来查看的,此时可以使用SQL新特性DENY来禁止此表的SELECT权限。DENY可以被管理员用来禁止某个用户对一个对象的所有访问权限。下面通过一个实例来加深对此语句的使用。【例4-21】拒绝sa1用户对student表进行修改操作。DENYUPDATONstudentTOsa1,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|PrivateDeclareSubnameLiblibnameAliasaliasname(arglist)语法2:Public|PrivateDeclareFunctionnameLiblibnameAliasaliasname(arglist)Astype,4.4.2数据赋值SET,SET命令即可用于对局部变量进行赋值,也可用于设定用户执行SQL命令时SQLServer的处理选项设定。当SET用于给局部变量赋值时语法如下:SETlocal_variable=expressionSELECT语句同样可以用于给变量赋值。其语法如下:SELECTLOCAL_VARIABLE=expression,4.4.3数据输出PRINT,PRINT输出时的语法如下:PRINTlocal_variable|FUNCTIONPRINT命令向客户端返回一个用户自定义的信息,即显示一个字符串的局部变量或者全局变量。如果变量不是字符串必须先用数据列席转换函数CONVERT转换为字符串。SELECT同样可以完成数据输出任务,其语法如下:SELECTlocal_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)的语句块。语法如下:BEGINsql_statement|statement_blockEND,4.5.2GOTO语句,GOTO语句将执行控制从代码中的一个位置转移至用户定义标签后的另一个位置。GOTO语句和标号可以用在存储过程、批处理或者语句块中,标号名必须遵守T-SQL命名规则。一般情况下,GOTO语句常用着WHILE语句和IF语句中。使用GOTO语句,首先定义一个标号,其语法如下:标号:然后使用GOTO语句转移到所定义的标签处,语法如下:GOTO标签,4.5.2GOTO语句,4.5.3IFELSE语句,如果需要在执行一组语句前先测试条件,则会在代码中同时存在几种情况。因此,IFELSE语句可以用来求布尔表达式的值。IF语句提出可能的情况,接着基于这些情况会有相应的执行语句。ELSE关键字便于IF返回FALSE时执行其他语句。其语法如下:IFboolean_expressionsql_statement|statement_blockELSEIFboolean_expressionsql_statement|statement_blockELSEsql_statement|statement_block,4.5.4CASE语句,CASE语句用于多条件分支选择,虽然IFELSE在某些时候同样可以完成CASE语句所要实现的功能,但是使用CASE语句可以更加简化SQL表达式。CASE关键字使您可根据表达式的真假来确定是否返回某个值。可在允许使用表达式的任何位置使用这一关键字。具体语法如下:CASEexpressionWHENexpression1THENexpression1WHENexpression2THENexpression2.ELSEexpressionNEND,4.5.5WHILE循环语句,在WHILE语句中设置重复执行SQL语句或语句块的条件。只要指定的条件为真,就重复执行语句。很多时候,可以使用BREAK和CONTINUE关键字在循环内部控制WHILE循环中语句的执行。具体语法如下:WHILEBoolean_expressionsql_statement|statement_blockBREAKsql_statement|statement_blockCONTINUE,4.5.6WAITFOR语句,很多事情,可能不愿意或无法马上就做,不过也不愿意一直若等到适当的时间再去做需要的事情。SQL中提供了WAITFOR语句,它用于暂时停止执行SQL语句、语句块或者存储过程等,直到所设定的时间已过或者所设定的时间已到才继续执行。具体语法如下:WAITFORDELAY|TIMEWAITFOR语句会等待你指定输入参数。你可以指定某件事的确切发生时间,也可以指定要等待的时间。参数说明如下:1DELAY参数2TIME参数,4.5.7RETURN语句,return命令用于结束当前程序的执行,返回到上一个调用它的程序或其他程序,其语法格式如下:return整数值或变量return语句要指定返回值。如果没有指定返回值,SQLServer系统会根据程序执行的结果返回一个内定值。,4.6批处理语句,批处理:从客户机传递到服务器上的一组完整的数据和SQL指令(可以是一条也可以包含多条SQL指令)组成一个批处理。一个批处理中只要存在一处语法错误,整个批处理都无法通过编译。批处理中可以包含多个存储过程,但除第一个存储过程外剩下的存储过程前面都必须使用Exec关键字。某些特殊的SQL指令不能和别的SQL指令共存在一个批处理中。如CreateTable命令、CreateV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《矿井通风与安全》课件
- 荣昌别墅地毯施工方案
- 2025至2031年中国单推氮窑行业投资前景及策略咨询研究报告
- 2025年抵押担保合同范本
- 2025至2030年中国防松片数据监测研究报告
- 2025至2030年中国钢材材质机械性能万能试验机数据监测研究报告
- 慈溪机房地坪施工方案
- 2025年合同违约与解除合同的经济补偿规定
- 底层石膏工程施工方案
- 智慧商场新零售营销解决方案
- 机械原理课程设计-自动盖章机
- 高中历史选修二 第12课 水陆交通的变迁 课件(51张)
- JJF(纺织)062-2010 电子式织物强力机校准规范-(高清现行)
- 最新北师大版小学六年级数学下册第二次月考(3~4单元)检测试卷附答案
- 《通过感官来发现》PPT
- 40篇短文搞定高考英语3500词(共42页)
- 非计划再次手术管理制及流程
- 《口腔检查》PPT课件(人卫版)
- 生产线的平衡及优化方法研究工业工程毕业设计
- 轮式挖掘机的驱动桥壳工艺设计1
- 关于大坦沙岛地区更新改造规划的批复
评论
0/150
提交评论