数据库TSQL程序设计基础学习教案_第1页
数据库TSQL程序设计基础学习教案_第2页
数据库TSQL程序设计基础学习教案_第3页
数据库TSQL程序设计基础学习教案_第4页
数据库TSQL程序设计基础学习教案_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、会计学1数据库数据库 TSQL程序设计程序设计(chn x sh j)基础基础第一页,共59页。4.1 SQL语言(yyn)和T-SQL语言(yyn)1.SQL语言简介(jin ji) SQL( Structure Query Language)语言是关系型数据库标准应用语言。 SQL语言不同于C、C#这样的程序设计语言,只是数据库能识别的指令。 例如,在VB.NET程序中要得到SQL Server数据库表中的记录,可以在VB.NET程序中编写SQL查询语句,然后发送到数据库中。数据库根据查询的SQL语句进行查询,在把查询的结果返回给VB.NET程序。 第1页/共59页第二页,共59页。2.T

2、ransact- SQL语言简介 Transact- SQL(简写为T-SQL)是对标准SQL的扩展。 T-SQL语言主要组成部分数据定义语言(DDL,Data Definition Language)数据操纵语言(DML,Data Manipularion Language)数据控制(kngzh)语言(DCL,Data Control Language)系统存储过程(System Stored Procedure)附加的语言元素第2页/共59页第三页,共59页。数据定义语言DDL是指用来定义和管理数据库以及数据库中的各种对象的语句,这些语句包括CREATE创建 、ALTER修改和DROP删除

3、等语句。数据操纵语言是指用来查询、添加、修改和删除数据库中数据的语句,这些语句包括SELECT检索数据 、INSERT添加记录 、UPDATE修改记录 、DELETE删除记录等。数据控制语言(DCL)是用来设置或者更改(gnggi)数据库用户或角色权限的语句,这些语句包括GRANT授予权限 、REVOKE分配权限等语句。第3页/共59页第四页,共59页。其它语言元素1 注释2 变量(binling)3 运算符4 函数5 流程控制语句 第4页/共59页第五页,共59页。3.T-SQL特点功能强大:集DDL DML DCL于一体语言简洁,风格统一(tngy),易学易懂:SQL语言接近英语,只用几个

4、英文单词的组合就能完成所有功能,因此初学者非常容易上手。既是自含式语言,又是嵌入式语言:作为自含式语言,SQL能够独立地用于联机交互的使用方式。 当作为嵌入式语言使用时,SQL语句几乎可以不加修改地嵌入到如VB、PB这样的前端开发平台上,利用前端工具的计算能力和SQL的数据库操纵能力,可以快速地建立数据库应用程序。高度非过程化:用SQL语言进行数据操作,只要提出“做什么”,而无须知道“怎么做”,SQL语句的实现过程由系统自动完成。第5页/共59页第六页,共59页。4.2 T-SQL的标识符第6页/共59页第七页,共59页。合法(hf)标识符:ABC、lili、VAR_X、#TBL_Y非法标识符

5、:1AB、FROM第7页/共59页第八页,共59页。在SQL语句语法格式(g shi)中的一些约定符号:尖括号“”中的内容为实际语义。中括号“ ”中的内容为任选项。,. . .意思是“等等”,即前面的项可以重复。大括号“”与竖线“|”表明此处为选择项,在所列出的各项中仅需选择一项。 例如: A | B | C | D 意思是A、B、C、D中取其一。 SQL中的数据项(包括列项、表和视图)分隔符为“,”;其字符串常数的定界符用单引号“”表示。第8页/共59页第九页,共59页。在编写SQL语句时,遵从某种准则以提高语句的可读性,使其易于编辑,是很有好处的。 以下是一些通常的准则:SQL语句对大小写

6、不敏感 为了提高SQL语句的可读性,子句开头的关键字通常采用大写形式。SQL语句可写成一行或多行,习惯上每个子句占用(zhn yn)一行。关键字不能在行与行之间分开,并且很少采用缩写形式。SQL语句的结束符为分号“;”,分号必须放在语句中的最后一个子句后面,但可以不在同一行。第9页/共59页第十页,共59页。4.3 T-SQL的数据类型第10页/共59页第十一页,共59页。位类型数据 bit 位类型只能存放0、1和NULL(空值),一般用于逻辑判断。 位类型数据占1位二进制内存,如果一个数据表中有8个以下的位类型字段,系统用一个字节(z ji)存储所有这些字段,超过8个不足16个用2个字节(z

7、 ji)存放。 位类型数据输入任意的非0值时,都按1处理。第11页/共59页第十二页,共59页。、数值型数据 SQL Server数值型数据共8种,整型4种,实型4种。整型数据类型的列一般存储的是计数值、数量或年龄等。1字节型整数 TinyInt 占1个字节固定长度内存(ni cn),可存储0-255范围内的任意无符号整数。2短整型整数 smallInt 占2字节固定长度内存(ni cn),最高位为符号位,可存储-3276832767(-215215-1)的任意整数。第12页/共59页第十三页,共59页。3基本整型整数 Int 或Integer 占4字节固定长度内存,高位为符号位,可存储-21

8、47483648-2147483647(-231+231-1)范围内的任意整数。4长整型整数 Bigint 占8字节固定长度内存,高位为符号位,可存储-263到263-1范围内的任意整据。 注意:整型数据可以在较少字节里存储精确的整型数字,存储效率高,不可能出现小数的数据应尽量(jnling)选用整数类型。 第13页/共59页第十四页,共59页。5精确小数(xiosh)型数据 Numeric(p,s) p指定总位数(不含小数(xiosh)点),p的取值范围1p38。即最多可达38位有效数字,不使用指数的科学记数法表示,但取值范围必须在-1038到1038-1之间。 s指定其中的小数(xiosh

9、)位数,s的取值范围0sp。第14页/共59页第十五页,共59页。numeric型数据在数据表里可带identity关键字(自动增长(zngzhng)字段)。 numeric型数据所占的存储空间随精度的不同而不同,一般说来对应关系为: p的取值范围 数据所占内存字节数 1 - 9 5 10-19 9 20-28 13 29-38 17第15页/共59页第十六页,共59页。6精确小数(xiosh)型数据 Decimal(p,s) 或 Dec(p,s) 该类型数据与Numeric(p,s)类型用法相同,所不同的是Decimal(p,s)不能用于数据表的identity字段。 第16页/共59页第十

10、七页,共59页。7近似值实型浮点数近似值实型浮点数 real 占占4字节固定长度内存,最多字节固定长度内存,最多7位有效数字,范围位有效数字,范围从从+-1.1810-38到到+-3.401038 。8可变精度实型浮点数可变精度实型浮点数 float(n) 当当n的取值为的取值为1-24时,数据精度是时,数据精度是7位有效数字,位有效数字,范围从范围从-3.40E+38到到1.79E+38,占,占4字节内存。字节内存。 当当n的取值为的取值为25-53时,精度是时,精度是15位有效数字,范位有效数字,范围从围从-1.79E+308到到1.79E+308,占,占8字节内存。字节内存。 实型浮点数

11、常量可以实型浮点数常量可以(ky)直接使用科学记数法直接使用科学记数法的指数形式书写。的指数形式书写。第17页/共59页第十八页,共59页。货币型数据 SQL Server提供了Smallmoney和Money两种货币型数据。1短货币型 Smallmoney 该类型(lixng)占4个字节固定长度的内存,实际是由2个2字节的整数构成,前2个字节为货币值的整数部分,后2个字节为货币值的小数部分。货币值的范围从-214748.3648到+214748.3647,可以精确到万分之一货币单位。第18页/共59页第十九页,共59页。2基本货币型 Money 该类型占8个字节(z ji)固定长度的内存,由

12、2个4字节(z ji)的整数构成,前4个字节(z ji)为货币值的整数部分,后4个字节(z ji)表示货币值的小数部分。货币值的范围从-263到263-1,可精确到万分之一货币单位。 Money或Smallmoney类型的数值常量,应加货币符号$前缀,负数时加后缀$。 如:$222.222 , -333.333$ 第19页/共59页第二十页,共59页。日期/时间型数据 SQL Server提供的日期/时间数据类型可存储日期和时间的组合数据。以日期/时间类型存储日期或时间数据比字符型更简单,因为SQL Server提供了一系列专门处理日期和时间的函数来处理这类数据。若使用(shyng)字符型存储

13、日期和时间,计算机不能识别,也不能自动对这些数据按照日期和时间进行处理。 SQL Server提供了Smalldatetime和Datetime两种日期/时间的数据类型。第20页/共59页第二十一页,共59页。1短日期/时间型 Smalldatetime 占4个字节固定长度的内存,存放(cnfng)1900年1月1日到2079年6月6日的日期时间,可以精确到分。 2基本日期/时间型 Datetime 占8个字节固定长度的内存,存放(cnfng)1753年1月1日到9999年12月31日的日期时间,可以精确到千分之一秒,即0.001s。第21页/共59页第二十二页,共59页。注意: 日期时间型常

14、量与字符串常量相同必须使用单引号括起来。 SQL Server在用户没有指定小时以下精确的时间数据时,自动设置Datetime或Smalldatetime数据的时间为00:00:00。 数据库中默认的日期格式为“年-月-日”,输入时可使用年/月/日或年-月-日,也可以使用月/日/年、月-日-年、日/月/年或日-月-年。 如果使用日/月/年或日-月-年,系统不能区分(qfn)时默认按“月-日-年”处理。第22页/共59页第二十三页,共59页。字符型数据 SQL Server提供了Char(n)、Varchar(n)和Text三种ASC码字符型数据。1定长字符型 Char(n) 按n个字节的固定长

15、度存放(cnfng)字符串,每个字符占用一个字节,长度范围1n8000; 若实际字符串长度小于n,则尾部填充空格按n个字节的字符串存储。第23页/共59页第二十四页,共59页。2变长字符型 Varchar(n) 按不超过n个字节的实际长度存放字符串,可指定最大长度为1n8000;若实际字符串长度小于n,则按字串实际长度存储(cn ch),不填充空格。当存储(cn ch)的字符串长度不固定时,使用Varchar数据类型可以有效地节省空间。 3文本类型 Text Text类型存储(cn ch)的是可变长度的字符数据类型,最大长度为231-1字节2GB的数据。当存储(cn ch)超过8000字节时,

16、可选择Text数据类型。第24页/共59页第二十五页,共59页。字符型数据采用ASC码字符集,英文符号占1个字节,汉字占2个字节。字符型字符串常量必须使用单引号括起来。Char、Varchar数据类型若不指定长度,默认为1字节。若实际字符串长度超过指定的n个字节,用局部变量存储时只截取字符串前n个字节,其余字符舍掉。字符型字符串数据可以在企业(qy)管理器中直接输入到数据表中,但输入的字符串长度超过字段指定长度时系统不接受,也不会自动截取。第25页/共59页第二十六页,共59页。在用INSERT或UPDATE为数据表字符型字段输入、更新字符串时,如果超过n字节则系统提示“将截断字符串或二进制数

17、据”并终止命令执行,不能保存该数据。如果列数据项的大小一致,则使用Char。如果列数据项的大小差异(chy)相当大,则使用 Varcha。第26页/共59页第二十七页,共59页。【例4-1】字符型字符串abcdABCD我们学习共12个字符占16字节。 若定义数据类型为char(20)则存储为: abcdABCD我们学习 若定义数据类型为varchar(20)则按实际长度存储为: abcdABCD我们学习 若定义数据类型为char(10)或varchar(10),则在局部变量中存储为:abcdABCD我 。存储到数据表字段中时,系统提示(tsh)“将截断字符串或二进制数据”不能保存该数据。 第2

18、7页/共59页第二十八页,共59页。统一字符型数据 统一字符型也称为宽字符型,采用Unicode字符集,包括了世界上所有语言符号,一个英文符号或一个汉字都占用2个字节的内存。前127个字符为ASC码字符。 SQL Server提供了Nchar(n)、Nvarchar(n)和Ntext三种统一字符型数据。1定长统一字符型 Nchar(n) 按n个字符的固定(gdng)长度存放字符串,每个字符占用2个字节,长度范围1n4000;若实际字符个数小于最大长度n,则尾部填充空格按n个字符存储。第28页/共59页第二十九页,共59页。2变长统一字符型 Nvarchar(n) 按不超过n个字符的实际(shj

19、)长度存放字符串,可指定最大字符数为1n4000;若实际(shj)字符个数小于n,则按字符串实际(shj)长度占用存储空间,不填充空格。 3统一字符文本类型 Ntext Ntext存储的是可变长度的双字节字符数据类型,最多可以存储(230-1)/2个字符。第29页/共59页第三十页,共59页。说明:统一字符型数据长度n为“字符”个数,所占字节(z ji)数为2*n。统一字符型字符串常量必须使用单引号括起来。 Nchar、Nvarchar数据类型若不指定长度n,默认为1个字符(2个字节(z ji))。若实际字符串长度超过指定的n个字符,用局部变量存储时只截取字符串前n个字符,其余字符舍掉。第30

20、页/共59页第三十一页,共59页。统一字符型数据可以在企业管理器中直接输入到数据表中,但输入的字符个数超过字段长度时则系统不接受。在用INSERT或UPDATE为数据表统一字符型字段输入、更新字符串时,若超过n个字符则系统提示“将截断字符串或二进制数据”并终止命令(mng lng)执行,不能保存该数据。第31页/共59页第三十二页,共59页。【例4-2】字符串abcdABCD我们学习作为统一字符型共12个字符占24字节。 若定义数据类型为Nchar(14)则存储为: abcdABCD我们学习 若定义数据类型为Nvarchar(14)则按实际字符数存储为:abcdABCD我们学习 若定义数据类型

21、为Nchar(10)或Nvarchar(10),则在局部变量中存储为: abcdABCD我们 存储到数据表字段中时(zhn sh),系统提示“将截断字符串或二进制数据”不能保存该数据。第32页/共59页第三十三页,共59页。、二进制数据 SQL Server用binary、varbinary 和image三种数据类型(lixng)来存储二进制数据。二进制类型(lixng)可用于存储声音图像等数字类型(lixng)的数据。1、定长二进制 binary(n) 按n个字节的固定长度存放二进制数据,最大长度为8K字节,即1n8000。 若实际数据不足n个字节,则在数据尾部加0补足n个字节。第33页/共

22、59页第三十四页,共59页。第34页/共59页第三十五页,共59页。第35页/共59页第三十六页,共59页。第36页/共59页第三十七页,共59页。【例4-3】二进制数据1aa2bb3cc4共40位5个字节,可表示为0 x1aa2bb3cc4 若定义数据类型为binary(6)则数据后加0按6字节存储为:0 x1aa2bb3cc400 若定义数据类型为varbinary(6)则按实际数据存储为:0 x1aa2bb3cc4 若定义数据类型为binary(4)或varbinary(4),则在局部变量中存储为:0 x1aa2bb3c。存储到数据表字段中时,系统提示(tsh)“将截断字符串或二进制数据

23、”不能保存该数据。第37页/共59页第三十八页,共59页。图像、文本型数据的存储方式 存储文本、图像等大型数据时,可使用Text、Ntext和Image三种数据类型,这三种数据类型的数据量往往比较大,在SQL Server 7.0以前的版本中,文本和图像数据被存储在专门的页中,在数据行的相应位置只保存指向这些数据的指针(zhzhn)。 SQL Server 2000提供了将小型文本或图像数据直接在行中存储的功能,不需要到另外的页中访问这些数据,使得读写文本和图像数据可以与读写普通字符串一样快。第38页/共59页第三十九页,共59页。 使用系统存储过程sp_tableoption可以指定文本或图

24、像数据(shj)是否在表的行中存储。 语法格式: sp_tableoption 表名,text in row,TRUE|FALSE第39页/共59页第四十页,共59页。说明: 当指定“TRUE”选项时,允许小型文本或图像数据直接在该表的行中存储,而且还可以指定文本或图像数据大小的上限值(24-7000字节),默认上限256字节。 当数据的大小不超过上限值而且同时数据行有足够空间时,文本和图像数据就会直接存储在行中。 若以上两个条件有一个不满足时,行中仍只存放指向数据存储位置(wi zhi)的指针。第40页/共59页第四十一页,共59页。【例4-4】在当前数据库中创建数据表example,字段b

25、in_1存放TEXT类型(lixng)数据,bin_2存放NTEXT类型(lixng)数据,bin_3存放Image类型(lixng)数据。CREATE TABLE example(bin_1 text,bin_2 ntext,bin_3 ntext Image)Go /* 以下语句指定不大于1000字节的文本或图像数据在行中存储 */sp_tableoption example, text in row, TRUEsp_tableoption example ,text in row, 1000 /* 以下语句指定Mytable表不在行中存储文本和图像数据 */sp_tableoption

26、Mytable , text in row, FALSE第41页/共59页第四十二页,共59页。4.4 T-SQL的运算符与表达式 运算符是一些符号,它们能够用来执行算术(sunsh)运算、赋值运算、字符串连接以及在字段、常量和变量之间进行比较。 在T-SQL中,运算符主要有以下6大类:算术(sunsh)运算符、赋值运算符、字符串串联运算符、比较运算符、逻辑运算符以及位运算符。第42页/共59页第四十三页,共59页。、算术运算符及表达式1、算术运算符: 算术运算符可以在两个表达式上执行数学运算,这两个表达式可以是数字数据类型分类的任何数据类型。 SQL标准中规定了5种用于表达式的符号:加号(+

27、)、减号(jin ho)(-)、乘号(*) 、 除号(/)和取模(%) 。在SQL中,这5种符号的优先权与数学中的优先权相同,乘除的优先权高于加减的优先权,乘除具有相同的优先权,加减之间也具有相同的优先权。它们都可以在同一表达式中使用,具有相同优先权的符号按照从左到右的顺序来计算。第43页/共59页第四十四页,共59页。2、算术表达式 表达式是符号与运算符的组合,简单的表达式可以是一个常量、变量、列或标量函数,也可以用运算符将两个或更多的简单表达式连接起来组成复杂的表达式。 表达式在SQL查询中的应用,使SQL的查询操作有了更大的灵活性。表达式中可以包含的数据类型非常广泛,数据库中基本的数据类

28、型,如数字数据类型、字符串数据类型、时间(shjin)和日期数据类型等,都可以在表达式中使用。第44页/共59页第四十五页,共59页。运算符数据类型+整型浮点数精确数货币型-*/%整型第45页/共59页第四十六页,共59页。、赋值运算符及表达式 赋值运算符的作用是能够将数据值指派给特定的对象(duxing)。 T-SQL 中只有一个赋值运算符,即等号(=)。第46页/共59页第四十七页,共59页。、字符串连接(linji)运算符及表达式 在T-SQL中,字符串连接(linji)运算符只用“+”,而不能用“|”或“&”。 字符串表达式:字符串表达式1 + 字符串表达式2 字符串表达式的值

29、仍是字符串。 如:ABC+EFG 则字符串表达式连接(linji)后的新字符串是:ABCEFG。 如:ABC+,+EFG 则连接(linji)后的新字符串是ABC,EFG。第47页/共59页第四十八页,共59页。、比较运算符及表达式 比较运算符用于比较两个表达式的大小(dxio)或是否相同,其比较的结果是逻辑值,即TRUE(表示表达式的结果为真)、FALSE(表示表达式的结果为假) 。除了 text、ntext 或 image 数据类型的表达式外,比较运算符可以用于所有的表达式。第48页/共59页第四十九页,共59页。运算符含义大于=大于等于=小于等于不等于!=不等于!不大于! 500 则单价大于500条件为TRUE,单价不大于500条件为FALSE如:23的结果(ji gu)为FALS

温馨提示

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

最新文档

评论

0/150

提交评论