工程数据管理(8).ppt_第1页
工程数据管理(8).ppt_第2页
工程数据管理(8).ppt_第3页
工程数据管理(8).ppt_第4页
工程数据管理(8).ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

工程数据管理,西安工程大学机电工程学院,西安工程大学机电工程学院工程数据管理,工程数据管理,西安工程大学机电工程学院,第10章用户自定义函数的应用与程序设计,函数在程序的应用设计中是必不可少的,在SQL语言中提供了大量功能强大的内置函数,这些函数的使用大大的提高了SQL语句操纵信息的能力,使得SQL语句的使用有了更大的灵活性,以前我们学过的函数有,聚合函数,“print”函数,同时也用过“raiserror”函数等等,另外还有很多函数,如,日期函数、删除空格函数、获取子串函数等,不能全部讲完,现在下来我们看一下常用函数的应用。聚合函数我们以前碰到过,像sum()、avg()、min()等,就不做具体介绍了。看以下函数:1、day(date),month(date),year(date),如selectyear(78-9-28),另外两个格式一样。2、getdate()如selectgetdate()得到当时的具体日期3、Str(number)将一数值型的数据转换为字符型数据。Str(459)返回“459”。Str(459.001)返回459.001“4、删除空格函数LTRIM(expression),删除字符串左侧的空格。如selectLTRIM(你好)RTRIM(expression),删除字符串右侧的空格。5、获取子串函数,工程数据管理,西安工程大学机电工程学院,第10章用户自定义函数的应用与程序设计,1)left函数:返回从字符串最左边起到第Num个字符的部分子串。具体如下:Left(expression,Num)如:usemy_db1GoSelectleft(selectdzfromstu_infowherexh=960811),4)Go2)right函数:返回从字符串最右边起到第Num个字符的部分子串。具体如下:right(expression,Num)如:usemy_db1GoSelectright(selectdzfromstu_infowherexh=960811),4)Go3)substring函数:返回的子串是从字符左边第start个字符起Num个字符的部分。Substring(expression,start,Num)如:selectSubstring(我是中华人民共和国公民,3,4)下来再看一下数据函数,主要有以下几种:,工程数据管理,西安工程大学机电工程学院,第10章用户自定义函数的应用与程序设计,Sin()正弦函数,Cos()余弦函数,返回以弧度表示角的对应值。Tan()正切函数,Cot()余切函数,Asin()反正弦函数,Acos()反余弦函数,返回弧度表示的角。Atan()反余切函数,Exp()表达式的指数值,Log()对数函数Log10()以10为底的对数Sqrt()表达式的平方根Abs()表达式的绝对值Pi()值有时在函数里要用到运算符,使得表达式更加的方便灵活。所以再看一下有哪些运算符,工程数据管理,西安工程大学机电工程学院,第10章用户自定义函数的应用与程序设计,运算符1、算术运算符SQL支持的算术运算符有:+:加或正号+在有时也叫做连接符,在字符串里也经常用到。-:减或负号*:乘法/:除法%:取模,返回的是余数2、赋值运算符:即等号(=)3、位运算符可以在任意两个整型数据或二进制数据之间执行位操作。主要有以下几个&,也就是按位and,按位or,按位互斥,表示按位异或,按位not,表示按位取反4、比较运算符=,,=,!=,!,!80Setreturnstr=良ElseSetreturnstr=差ReturnreturnstrEnd以上自定义的函数创建完了,下来看一下函数的使用,工程数据管理,西安工程大学机电工程学院,第10章用户自定义函数的应用与程序设计,Usemy_db1Goselectxh,mathcj,dbo.my_func1(mathcj)as良或差fromstu_cj下面这个例子就是把查询结果插入到一个新表,但我们这个是用函数的查询结果,以前的是直接把列名插入。现在相当于再复习一下。Usemy_db1Goselectxh,mathcj,dbo.my_func1(mathcj)as良或差intonew_Tfromstu_cjwhereyear=1996-只把学年为1996年的信息查出插入新表Usemy_db1GoInsertnew_T1(xh,mathcj,良或差)selectxh,mathcj,dbo.my_func1(mathcj)as良或差fromstu_cjWhereyear=1998上面这个例子就是把查询结果插入到另一个表,这种方法叫做“插入查询结果集”,因为是自定义函数,所以要识别用户,就要把DBO加上,这个是查询结果,工程数据管理,西安工程大学机电工程学院,第10章用户自定义函数的应用与程序设计,再看一个例子:declaresint,iintsets=0seti=1whileiYA=(X+Y)/2,当XYsetA=(X-Y)/2IfXYsetA=(X+Y)/2IfX=YsetA=1ReturnAend,工程数据管理,西安工程大学机电工程学院,第10章用户自定义函数的应用与程序设计,再看一个例子:Usemy_db1GoCreatefunctionmy_func6(sushenvarchar(10)ReturnstableAsReturn(selectxh,xm,dzfromstu_infowheresushe=sushe)现在调用一下这个函数,找出sushe为机电楼3号楼的学生信息select*fromdbo.my_func6(机电楼3号楼)上面的例子可以看出Return子句中只有一条单独的select语句,这个语句的结果构成了内嵌表值函数返回的表,所以这个例子就是内嵌表值函数的例子,工程数据管理,西安工程大学机电工程学院,第10章用户自定义函数的应用与程序设计,再看一个例子:Usemy_db1GoCreatefunctionmy_func7(sushenvarchar(10)ReturnsT_ttable(xhint,xmnvarchar(5),dznvarchar(20)AsbegininsertT_tselectxh,xm,dzfromstu_infowheresushe=susheReturnEnd函数的调用:select*fromdbo.my_func7(紫荆公寓8号楼)以上的例子就是多语句表值函数的例子,它和内嵌表值函数类似,但不同的是,它由begin和end限定函数体,并且在returns子句里必须定义表的名称和表的格式。,工程数据管理,西安工程大学机电工程学院,第10章用户自定义函数的应用与程序设计,自定义函数创建完后,我们也可以进行修改和删除,具体的语法:修改语法:alterfunctionfunc_nameSQL_state-这和创建函数的参数的意义一样。删除珸法:dropfunctionfunc_name,工程数据管理,西安工程大学机电工程学院,第10章用户自定义函数的应用与程序设计,最后,我们再看一下在SQL中SQL语句的控制。即就是我们平常如何编程SQL语言。下来再看以下具体的SQL语言:1)数据库定义:createdatabasedatabase_name2)表定义:要求:1、NOTNULL字段(学号,姓名,性别)2、检查约束:性别(男或女)3、包含外键关系(注意建表顺序),工程数据管理,西安工程大学机电工程学院,第10章用户自定义函数的应用与程序设计,usemy_db1goCreatetableT_xsxx(xhintnotnullprimarykey,Xmchar(10)notnull,Xbchar(10)notnullconstraintxb_chkcheck(xb=男orxb=女),Csrqdatetimenull,Sfzhchar(8)null)usemy_db1GoCreatetableT_xscj(xmchar(10)notnullprimarykey,Xhintnotnullforeignkey(xh)referencesT_xsxx,Mathcjnumeric(4,1)null,Huaxuecjnumeric(4,1)null,Engcjnumeric(4,1)null,Phycjnumeric(4,1)null,Yearint),工程数据管理,西安工程大学机电工程学院,第10章用户自定义函数的应用与程序设计,createtabletable1_name(列名1类型constraintconstr_namenull或notnullprimarykey列名2类型null或notnull列名3类型null或notnullforeignkey(列名n,列名.)referencestable2_name.)一般创建表都是按物理表来创建。,工程数据管理,西安工程大学机电工程学院,第10章用户自定义函数的应用与程序设计,3)修改表:altertabletable_name-SQL里的参数和创建表一样4)删除表:droptabletable_name5)插入数据:insertintotable_name(列名1,列名2)values(值1)-括号里值的顺序和上面的一样insertintotable_name(列名1,列名2)values(值2)-括号里值的顺序和上面的一样6)修改数据:updatetable_namesetcol_name=new_expressionwhere7)删除数据:deletefromtable_namewhere8)查询语句:selectfrom.where以上是简单的且是必须要知道的SQL语句,当然在实际当中,还有一些复杂的SQL语句,还要借助于流程控制语句。1、begin.end像前面我们在创建函数时用到的。2、if.else3、goto语句,这个语句可改变流程执行的顺序,可将执行流程转移到标号处继续执行流程。如,将流程跳转到标号为label处执行程序,则gotolabel。此处注意的是,在label语句处必须是label:(必须有冒号,且冒号后跟SQL句,label:beginend或其它),工程数据管理,西安工程大学机电工程学院,第10章用户自定义函数的应用与程序设计,4、while、break和coninue语句While:是一种控制结构,用于重复执行一条语句或语句块的条件。当条件成立(也就是说条件是TRUE)是重复执行。While布尔表达式SQL语句break-break语句可停止while语句,从while循环中退出。SQL语句continue-con

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论