ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:50.99KB ,
资源ID:11260603      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/11260603.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(SQL授予用户权限的语句.docx)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

SQL授予用户权限的语句.docx

1、插入多行数据的语法格式为: INSERT INTO table_or_view [(column_list)] 子查询 例3-7 求出各位学生的平均成绩,把结果存放在新表AVGSCORE中。 程序清单如下: /*首先建立新表AVGSCORE,用来存放学号和学生的平均成绩。*/ CREATE TABLE AVGSCORE (SNO CHAR(10), AVGSCORE SMALLINT) Go /*利用子查询求出SC表中各位学生的平均成绩,把结果存放在新表AVGSCORE中。*/ INSERT INTO AVGSCORE SELECT SNO,AVG(SCORE)

2、 FROM SC GROUP BY SNO • 例3-12 创建把讲授C5课程的教师的工资增加100元。 程序清单如下: /*T表(教师基本情况表)的结构为T(TNO,TN,SEX,AGE,PROF,SAL,DEPT)分别表示教师的编号,姓名,性别,年龄,职称,工资,系别。TC表(教师授课表)的结构为TC(TNO,CNO)分别表示教师的编号,课程编号。*/ UPDATE T SET SAL=SAL+100 WHERE TNO IN (SELECT T.TNO FROM T,TC WHERE T.TNO=TC.TNO AND T

3、C.CNO='C5') /*通过连接查询找到讲授C5课程的教师编号。*/ • 下面是删除一行记录的例子。 例3-14 删除张益琳教师的记录。 程序清单如下: DELETE FROM T WHERE TN=’ 张益琳’ • 例3-16 删除李明同学选课的记录。 DELETE FROM SC WHERE SNO= (SELECT SNO FROM S WHERE SN=’ 李明’) 三、数据控制语言 • 数据控制语言(DCL)是用来设置或更改数据库用户或角色权限的语句,包括GRANT,DENY,REVOKE等语句。

4、在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行数据控制语言。 3.1 语句权限与角色的授予 • SQL语言使用GRANT语句为用户授予语句权限的语法格式为: GRANT <语句权限>|<角色> [,<语句权限>|<角色>]… TO <用户名>|<角色>|PUBLIC[,<用户名>|<角色>]… [WITH ADMIN OPTION] • 其语义为:将指定的语句权限授予指定的用户或角色。其中: (1)PULBIC代表数据库中的全部用户; (2)WITH ADMIN OPTION为可选

5、项,指定后则允许被授权的用户将指定的系统特权或角色再授予其他用户或角色。 • 例3-17 给用户 Mary 和 John 以及 Windows NT 组 Corporate\BobJ 授予多个语句权限。 程序清单如下: GRANT CREATE DATABASE, CREATE TABLE TO Mary, John, [Corporate\BobJ] • 例3-18 为用户ZhangYiLin授予CREATE TABLE的语句权限。 程序清单如下: GRANT CREATE TABLE TO ZhangYiLin • 同语句权

6、限的授予类似,SQL语言使用GRANT语句为用户授予对象权限,其语法格式为: GRANT ALL|<对象权限>[(列名[,列名]…)][,<对象权限>]…ON <对象名> TO <用户名>|<角色>|PUBLIC[,<用户名>|<角色>]… [WITH ADMIN OPTION] • 其语义为:将指定的操作对象的对象权限授予指定的用户或角色。其中: (1)ALL代表所有的对象权限。 (2)列名用于指定要授权的数据库对象的一列或多列。如果不指定列名,被授权的用户将在数据库对象的所有列上均拥有指定的特权。实际上,只有当授予I

7、NSERT、UPDATE权限时才需指定列名。 (3)ON子句用于指定要授予对象权限的数据库对象名,可以是基本表名、视图名等。 (4)WITH ADMIN OPTION为可选项,指定后则允许被授权的用户将权限再授予其他用户或角色。 • 例3-19 在权限层次中授予对象权限。首先,给所有用户授予 SELECT 权限,然后,将特定的权限授予用户 Mary,John 和 Tom。 程序清单如下: GRANT SELECT ON s TO public GO GRANT INSERT, UPDATE, D

8、ELETE ON s TO Mary, John, Tom GO • 例3-20 将查询T表和修改教师职称的权限授予USER3,并允许将此权限授予其他用户。 程序清单如下: GRANT SELECT,UPDATE(PROF) ON T TO USER3 WITH ADMIN OPTION • 上例中,USER3具有此对象权限,并可使用GRANT命令给其他用户授权,如下例,USER3将此权限授予USER4: GRANT SELECT,UPDATE(PROF) ON T TO USER4

9、 数据库管理员可以使用REVOKE语句收回语句权限,其语法格式为: REVOKE <语句权限>|<角色> [,<语句权限>|<角色>]… FROM <用户名>|<角色>|PUBLIC[,<用户名>|<角色>]… • 例:收回用户ZHANGYILIN所拥有的CREATE TABLE的语句权限。 REVOKE CREATE TABLE FROM ZHANGYILIN 所有授予出去的权力在必要时都可以由数据库管理员和授权者收回,收回对象权限仍然使用REVOKE语句,其语法格式为: REVOKE <对象权限>|<角色>

10、[,<对象权限>|<角色>]… FROM <用户名>|<角色>|PUBLIC[,<用户名>|<角色>]… • 例3-21 收回用户USER1对C表的查询权限。 程序清单如下: REVOKE SELECT ON C FROM USER1 • 例3-22 收回用户USER3查询T表和修改教师职称的权限。 程序清单如下: REVOKE SELECT,UPDATE(PROF) ON T FROM USER3 • 在上例中,USER3将对T表的权限授予了USER4,在收回USER3对T表的权限的同时,系统会自动收回USER4对T表的权限。 • 例3-23 

11、首先从 public 角色中收回 SELECT 权限,然后,收回用户 Mary,John 和 Tom 的特定权限。 程序清单如下: USE pubs GO REVOKE SELECT ON s FROM public GO REVOKE INSERT, UPDATE, DELETE ON s FROM Mary, John, Tom • DENY语句用于拒绝给当前数据库内的用户或者角色授予权限,并防止用户或角色通过其组或角色成员继承权限。 • 否定语句权限的语法形式为: DENY ALL|<语句权限>|<角色> [,<语句权限>|<角色>]…

12、 TO <用户名>|<角色>|PUBLIC[,<用户名>|<角色>]… • 否定对象权限的语法形式为: DENY ALL|<对象权限>[(列名[,列名]…)][,<对象权限>]…ON <对象名> TO <用户名>|<角色>|PUBLIC[,<用户名>|<角色>]… • 例3-24 首先给 public 角色授予 SELECT 权限,然后,拒绝用户 Mary,John 和 Tom 的特定权限。 程序清单如下: USE pubs GO GRANT SELECT ON s TO public GO

13、DENY SELECT, INSERT, UPDATE, DELETE ON s TO Mary,John,Tom 四、系统存储过程 系统存储过程的部分示例如下: • sp_addtype:用于定义一个用户定义数据类型; • sp_configure:用于管理服务器配置选项设置; • xp_sendmail:用于发送电子邮件或寻呼信息; • sp_stored_procedures:用于返回当前数据库中的存储过程的清单; • sp_help:用于显示参数清单和其数据类型; • sp_depends:用于显示存储过程依据的对象或者依据存储过程的对象; • s

14、p_helptext:用于显示存储过程的定义文本; • sp_rename:用于修改当前数据库中用户对象的名称。 五、变量 • 变量是一种语言中必不可少的组成部分。Transact-SQL语言中有两种形式的变量,一种是用户自己定义的局部变量,另外一种是系统提供的全局变量。 • 1. 局部变量 局部变量是一个能够拥有特定数据类型的对象,它的作用范围仅限制在程序内部。局部变量被引用时要在其名称前加上标志“@”,而且必须先用DECLARE命令定义后才可以使用。 • 定义局部变量的语法形式如下: DECLAER {@local_variable da

15、ta_type} […n] • 其中,参数@local_variable用于指定局部变量的名称,变量名必须以符号@开头,并且局部变量名必须符合SQL Server的命名规则。参数data_type用于设置局部变量的数据类型及其大小。data_type可以是任何由系统提供的或用户定义的数据类型。但是,局部变量不能是 text,ntext 或 image 数据类型。 • 使用DECLARE命令声明并创建局部变量之后,会将其初始值设为NULL,如果想要设定局部变量的值,必须使用SELECT命令或者SET命令。其语法形式为: SET { @local_variable = expre

16、ssion } 或者 SELECT { @local_variable = expression } [ ,...n ] • 其中,参数@local_variable是给其赋值并声明的局部变量,参数expression是任何有效的SQL Server表达式。 • 例3-26 创建一个@myvar 变量,然后将一个字符串值放在变量中,最后输出 @myvar 变量的值。 程序清单如下: DECLARE @myvar char(20) select @myvar = 'This is a test' SELECT @myvar

17、 GO • 例3-27 通过查询给变量赋值。 程序清单如下: USE adventureworks GO DECLARE @rows int SET @rows = (SELECT COUNT(*) FROM humanresources.employee) • 2. 全局变量 除了局部变量之外,SQL Server系统本身还提供了一些全局变量。全局变量是SQL Server系统内部使用的变量,其作用范围并不仅仅局限于某一程序,而是任何程序均可以随时调用。全局变量通常存储一些SQL Server的配置设定值

18、和统计数据。用户可以在程序中用全局变量来测试系统的设定值或者是Transact-SQL命令执行后的状态值。在使用全局变量时应该注意以下几点: (1)全局变量不是由用户的程序定义的,它们是在服务器级定义的。 (2)用户只能使用预先定义的全局变量。 (3)引用全局变量时,必须以标记符“@@”开头。 (4)局部变量的名称不能与全局变量的名称相同,否则会在应用程序中出现不可预测的结果。 • 例3-29 显示到当前日期和时间为止试图登录SQL Server的次数。 程序清单如下: SELECT GETDATE( ) AS '当前的时期和时间'

19、 @@CONNECTIONS AS '试图登录的次数' 六、运算符 • 运算符是一些符号,它们能够用来执行算术运算、字符串连接、赋值以及在字段、常量和变量之间进行比较。在SQL Server 2005中,运算符主要有以下六大类:算术运算符、赋值运算符、位运算符、比较运算符、逻辑运算符和字符串串联运算符。 1.算术运算符 算术运算符可以在两个表达式上执行数学运算,这两个表达式可以是数字数据类型分类的任何数据类型。算术运算符包括加(+)、减(-)、乘(*)、除(/)和取模(%)。 2.赋值运算符 Transact-SQL 中只有一个赋值

20、运算符,即(=)。赋值运算符使我们能够将数据值指派给特定的对象。另外,还可以使用赋值运算符在列标题和为列定义值的表达式之间建立关系。 3. 位运算符 使我们能够在整型数据或者二进制数据(image 数据类型除外)之间执行位操作。此外,在位运算符左右两侧的操作数不能同时是二进制数据。表3-1列出了所有的位运算符及其含义。 运算符 含义 &(按位 AND) 按位 AND(两个操作数) |(按位 OR) 按位 OR(两个操作数) ^(按位互斥 OR) 按位互斥 OR(两个操作数) 4.比较运算符 比较运算符亦称为关系运算符,用于比较两个表达式的大小

21、或是否相同,其比较的结果是布尔值,即TRUE(表示表达式的结果为真)、FALSE(表示表达式的结果为假)以及UNKNOWN。除了 text,ntext 或 image 数据类型的表达式外,比较运算符可以用于所有的表达式。 5.逻辑运算符 逻辑运算符可以把多个逻辑表达式连接起来。逻辑运算符包括AND、OR和NOT等运算符。逻辑运算符和比较运算符一样,返回带有 TRUE 或 FALSE 值的布尔数据类型。 三个运算符的优先级别为:NOT,AND,OR。 6.字符串串联运算符 字符串串联运算符允许通过加号(+)进行字符串串联,这个加号即被称为字符串串联运算符。

22、例如对于语句SELECT ’abc’+’def’,其结果为abcdef。 • 在SQL Server 2005中,运算符的优先等级从高到低如下所示,如果优先等级相同,则按照从左到右的顺序进行运算。 (1)括号:(); (2)乘、除、求模运算符:*,/,%; (3)加减运算符:+,-; (4)比较运算符:=,>,<,>=,<=,<>,!=,!>,!<; (5)位运算符:^,&,|; (6)逻辑运算符:NOT; (7)逻辑运算符:AND; (8)逻辑运算符:OR。 七、函数 • 在Transact-SQL语言中,函数被用来执行一些特殊的运算以支持SQL Server的

23、标准命令。SQL Server包含多种不同的函数用以完成各种工作,每一个函数都有一个名称,在名称之后有一对小括号,如:gettime( )。大部分的函数在小括号中需要一个或者多个参数。 • Transact-SQL 编程语言提供了四种函数:行集函数、聚合函数、Ranking函数、标量函数。 1. 行集函数 • 行集函数可以在Transact-SQL语句中当作表引用。 • 例3-33 通过行集函数OPENQUERY()执行一个分布式查询,以便从服务器local中提取表department中的记录。 程序清单如下: select * from openquery(loc

24、al,’select * from department’) 2. 聚合函数 • 聚合函数用于对一组值进行计算并返回一个单一的值。除COUNT 函数之外,聚合函数忽略空值。聚合函数经常与 SELECT 语句的 GROUP BY 子句一同使用。仅在下列项中聚合函数允许作为表达式使用:SELECT 语句的选择列表(子查询或外部查询);COMPUTE 或 COMPUTE BY 子句;HAVING 子句。 • 计算 Adventure Works Cycles 的副总所用的平均休假小时数以及总的病假小时数。对检索到的所有行,每个聚合函数都生成一个单独的汇总值。 • 程序清单如下。 •

25、 USE AdventureWorks; • GO • SELECT AVG(VacationHours)as 'Average vacation hours', • SUM (SickLeaveHours) as 'Total sick leave hours' • FROM HumanResources.Employee • WHERE Title LIKE 'Vice President%' • Ranking函数为查询结果数据集分区中的每一行返回一个序列值。依据此函数,一些行可能取得和其他行一样的序列值。Transact-SQL提供以下一些Ranking函

26、数:RANK;DENSE_RANK;NTILE;ROW_NUMBER。 表3-4 标量函数的分类 函数分类 解释 配置函数 返回当前的配置信息 游标函数 返回有关游标的信息 日期和时间函数 对日期和时间输入值进行处理 数学函数 对作为函数参数提供的输入值执行计算 元数据函数 返回有关数据库和数据库对象的信息 安全函数 返回有关用户和角色的信息 字符串函数 对字符串(char 或 varchar)输入值执行操作 系统函数 执行操作并返回有关SQL Server中的值、对象和设置的信息 系统统计函数 返回系统的

27、统计信息 文本和图像函数 对文本或图像输入值或列执行操作,返回有关这些值的信息 (1)字符串函数 l 字符串函数可以对二进制数据、字符串和表达式执行不同的运算,大多数字符串函数只能用于char和varchar数据类型以及明确转换成char和varchar的数据类型,少数几个字符串函数也可以用于binary和varbinary数据类型。 l 字符串函数可以分为以下几大类: Ø 基本字符串函数:UPPER,LOWER,SPACE,REPLICATE,STUFF,REVERSE,LTRIM,RTRIM。 Ø 字符串查找函数:CHARINDEX,PATINDEX。 Ø 长度

28、和分析函数:DATALENGTH,SUBSTRING,RIGHT。 Ø 转换函数:ASCH,CHAR,STR,SOUNDEX,DIFFERENCE。 Ø 例3-38 使用 LTRIM 函数删除字符变量中的起始空格。 Ø 程序清单如下: Ø DECLARE @string_to_trim varchar(60) Ø SET @string_to_trim = ' Five spaces are at the beginning of this string.' Ø SELECT 'Here is the string without the leading spaces

29、 ' + Ø LTRIM(@string_to_trim) Ø 例3-39 使用可选的start_location参数从addressline1列的第2个字符开始查找“shoe” Ø 程序清单如下。 Ø USE adventureworks Ø SELECT CHARINDEX('shoe', addressline1,2) FROM person.address Ø WHERE addressid = '5' (2)日期和时间函数 函数 参数 功能 DATEADD (datepart,number,date) 以datepart指定的方式,返回da

30、te加上number之和 DATEDIFF (datepart,date1,date2) 以datepart指定的方式,返回date2与date1之差 DATENAME (datepart,date) 返回日期date中datepart指定部分所对应的字符串 DATEPART (datepart,date) 返回日期date中datepart指定部分所对应的整数值 DAY (date) 返回指定日期的天数 GETDATE () 返回当前的日期和时间 MONTH (date) 返回指定日期的月份数 YEAR (date) 返回

31、指定日期的年份数 例3-42 显示在humanresources.employee 表中雇用日期到当前日期间的天数。 程序清单如下。 USE adventureworks SELECT DATEDIFF(day, hiredate, getdate()) AS diffdays FROM humanresources.employee 例3-43 从GETDATE函数返回的日期中提取月份名。 程序清单如下: SELECT DATENAME(month, getdate()) AS 'Month Name' 数学函数 数学函数用于对数字表达式进行数学运算并

32、返回运算结果。数学函数可以对SQL Server提供的数字数据(decimal、integer、float、real、money、smallmoney、smallint 和 tinyint)进行处理。 例3-45 在同一表达式中使用CEILING(),FLOOR(),ROUND()函数。 程序清单如下: select ceiling(13.4), floor(13.4), round(13.4567,3) 系统函数 • 系统函数用于返回有关SQL Server系统、用户、数据库和数据库对象的信息。系统函数可以让用户在得到信息后,使用条件语句,根据返回的信息进行不同的操

33、作。与其他函数一样,可以在SELECT语句的SELECT和WHERE子句以及表达式中使用系统函数。 • 转换函数有两个:CONVERT和CAST。 • CAST函数允许把一个数据类型强制转换为另一种数据类型,其语法形式为: CAST( expression AS data_type ) • CONVERT函数允许用户把表达式从一种数据类型转换成另一种数据类型,还允许把日期转换成不同的样式,其语法形式为: CONVERT (data_type[(length)],expression [,style]) 例3-46 示例检索列表价格的第一位是 3 的产品的名称,

34、并将ListPrice转换为 int。 程序清单如下。 USE AdventureWorks GO SELECT SUBSTRING(Name, 1, 30) AS ProductName, ListPrice FROM Production.Product WHERE CAST(ListPrice AS int) LIKE '3%' GO 例3-47 用style 参数将当前日期转换为不同格式的字符串。 程序清单如下: SELECT '101'=CONVERT(char, GETDATE(), 101), '1'=CONVERT(char, GETDATE(),

35、1), '112'=CONVERT(char, GETDATE(), 112) 例3-48 从adventureworks数据库中返回person.contact表的首列名称 程序清单如下。 USE adventureworks SELECT COL_NAME(OBJECT_ID('person.contact'), 1) 例3-49 检查 sysdatabases 中的每一个数据库,使用数据库标识号来确定数据库名称。 程序清单如下: USE master SELECT dbid, DB_NAME(dbid) AS DB_NAME FROM sysdatabas

36、es ORDER BY dbid 7.WAITFOR语句 • WAITFOR语句用于暂时停止执行SQL语句、语句块或者存储过程等,直到所设定的时间已过或者所设定的时间已到才继续执行。 • WAITFOR语句的语法形式为: WAITFOR { DELAY 'time' | TIME 'time' } • 其中,DELAY用于指定时间间隔,TIME用于指定某一时刻,其数据类型为datetime,格式为‘hh:mm:ss’。 例3-58 使用WAITFOR TIME语句,以便在晚上10:20执行存储过程 update_all_stats。 程序清单如下: BEGIN

37、 WAITFOR TIME '22:20' EXECUTE update_all_stats END 8.RETURN语句 • RETURN语句用于无条件地终止一个查询、存储过程或者批处理,此时位于RETURN语句之后的程序将不会被执行。 • RETURN语句的语法形式为: RETURN [ integer_expression ] • 其中,参数integer_expression为返回的整型值。存储过程可以给调用过程或应用程序返回整型值。 • 例3-59 显示如果在执行 findjobs 时没有给出用户名作为参数,RETURN 则将一条消息发送到用户的屏幕上然后从过

38、程中退出。如果给出用户名,将从适当的系统表中检索由该用户在当前数据库内创建的所有对象名。 • 程序清单如下: • CREATE PROCEDURE findjobs @nm sysname = NULL • AS • IF @nm IS NULL • BEGIN • PRINT 'You must give a username' • RETURN • END • ELSE • BEGIN • SELECT o.name, o.id, o.uid • FROM sysobjects o INNER JOI

39、N master..syslogins l • ON o.uid = l.sid • WHERE l.name = @nm • END /*例3-1 创建数据库表。*/ /*程序清单如下:*/ /*下面的例子将创建表S。*/ CREATE TABLE S ( sno char(10) NOT NULL /*学号字段*/ CONSTRAINT P

40、K_sno PRIMARY KEY CLUSTERED/*主键约束*/ CHECK (sno like '31300501[0-9][0-9]')/*检查约束*/, sname char(8) NULL, /*姓名字段*/ sex char(2) NULL, /*性别字段*/ age int NULL, /*年龄字段*/ dept varchar(20) NULL/*系别字段*/ ) /*例3-2 修改S表,增加一个班号列。*/ /*程序清单如下:*/ ALTER TABLE

41、S ADD CLASS_NO CHAR(6) /*例3-3 删除S表。*/ /*程序清单如下:*/ DROP table S /*再执行例3-1*/ /*例3-4 在S表中插入一条学生记录(学号:S7;姓名:郑冬;性别:女;年龄:21;系别:计算机)。*/ /*程序清单如下:*/ INSERT INTO S VALUES ('3130050107','郑冬','女',21,'计算机') /*例3-5 创建SC表(学生选课表),并向SC表中插入一条选课记录(’S7’,’C1’)。*/ /*程序清单如下:*/ CREATE TABLE

42、SC ( sno char(10) NOT NULL, cno char(2) NULL, /*课程编号字段*/ score numeric(4,1) NULL /*成绩字段*/ ) Go INSERT INTO SC (sno,cno) VALUES ('3130050101', 'c1') Go /*例3-6 使用 column_list 及 VALUES 列表显式地指定将被插入每个列的值。*/ /*程序清单如下:*/ CREATE TABLE T1 ( column_1 int, column_2 varchar(

43、30)) Go INSERT T1 (column_2, column_1) VALUES ('This is a test',1) /*例3-7 求出各位学生的平均成绩,把结果存放在新表AVGSCORE中。 程序清单如下:*/ /*首先建立新表AVGSCORE,用来存放学号和学生的平均成绩。*/ CREATE TABLE AVGSCORE (SNO CHAR(10), AVGSCORE SMALLINT) Go /*利用子查询求出SC表中各位学生的平均成绩,把结果存放在新表AVGSCORE中。*/ INSERT INTO AVGSCORE SELECT

44、 SNO,AVG(SCORE) FROM SC GROUP BY SNO /*例3-8 一个带有WHERE条件的修改语句。*/ /*程序清单如下:*/ use adventureworks go update person.address set city='Boston' where addressid=1 /*例3-9 将所有学生年龄增加1岁*/ /*程序清单如下:*/ UPDATE S SET AGE=AGE+1 /*例3-10 下面的示例修改 SalesPerson 表中的 SalesYTD 列,以反映 SalesOrderHe

45、ader 表中记录的最近销售情况。*/ /*程序清单如下:*/ USE AdventureWorks; GO UPDATE Sales.SalesPerson SET SalesYTD = SalesYTD + SubTotal FROM Sales.SalesPerson AS sp JOIN Sales.SalesOrderHeader AS so ON sp.SalesPersonID = so.SalesPersonID AND so.OrderDate = (SELECT MAX(OrderDate) FROM Sales.SalesOrderHeade

46、r WHERE SalesPersonID = sp.SalesPersonID) /*例3-11  将UPDATE语句与TOP子句一起使用,更新Employee 表中10个随机行的VacationHours 列,使之变成原来的1.25倍。*/ /*程序清单如下:*/ USE AdventureWorks; GO UPDATE TOP (10) HumanResources.Employee SET VacationHours = VacationHours * 1.25 /*例3-12 创建T表(教师基本情况表)的结构为T(T

47、NO,TN,SEX,AGE,PROF,SAL,DEPT)分别表示教师的编号,姓名,性别,年龄,职称,工资,系别。TC表(教师授课表)的结构为TC(TNO,CNO)分别表示教师的编号,课程编号。*/ USE example GO CREATE TABLE t ( TNO char(10) NOT NULL CONSTRAINT PK_TNO PRIMARY KEY,/*教师编号字段*/ TN char(10) NULL,/*教师姓名字段*/ SEX char(2) NULL,/*教师性别字段*/ AGE int NULL,/*教师年龄字段*/ PROF

48、char(20) NULL,/*教师职称字段*/ SAL int NULL,/*教师工资字段*/ DEPT char(10) NULL,/*教师所在系别字段*/ ) GO INSERT INTO t VALUES('0001','张老师','男',41,'副教授',2200,'电力系') GO INSERT INTO t VALUES('0002','张益琳','女',32,'讲师',1500,'动力系') GO CREATE TABLE TC ( TNO char(10) NOT NULL,/*教师编号字段*/ CNO char(10) NULL,/*教

49、师执教课程字段*/ ) GO INSERT INTO tc VALUES('0001','C5') GO /*把讲授C5课程的教师的工资增加100元。*/ /*程序清单如下:*/ UPDATE T SET SAL=SAL+100 WHERE TNO IN (SELECT T.TNO FROM T,TC WHERE T.TNO=TC.TNO AND TC.CNO='C5') /*通过连接查询找到讲授C5课程的教师编号。*/ /*例3-13 把所有教师的工资提高到平均工资的1.2倍*/ /*程序清单如下:*/ UPDATE T SET SAL =

50、SELECT 1.2*AVG(SAL) FROM T) /*例3-14 删除张益琳教师的记录。*/ /*程序清单如下:*/ DELETE FROM T WHERE TN='张益琳' /*例 3-15 删除所有教师的授课记录。*/ /*程序清单如下:*/ DELETE FROM TC /*例3-16 删除李明同学选课的记录。*/ DELETE FROM SC WHERE SNO= (SELECT SNO FROM S WHERE sname='李明') /*例3-17 给用户 Mary 授予多个语句权限。*/ /*程序清单如下:

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服