第3章 数据类型与常用函数_第1页
第3章 数据类型与常用函数_第2页
第3章 数据类型与常用函数_第3页
第3章 数据类型与常用函数_第4页
第3章 数据类型与常用函数_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

第3章数据类型与常用函数

系统数据类型3.1用户自定义数据类型3.2系统内置函数3.3认识表:记录:表中的每一行被称为一条记录,表 由一条和多条记录组成。字段:表中每一列成为一个字段,一张表 中最多有1024个字段。4个字段3条记录数据类型:

在创建表的时候,要为表中的每个字段定义一种数据类型,即每个字段数据的格式,因此要对字段中的数据类型进行定义。3.1系统数据类型 1字符数据类型

2精确数字类型

3近似数字类型

4日期和时间数据类型

5Unicode字符串

6二进制字符串

7其他数据类型

字符数据是由任意字母、符号和数字任意组合而成的数据,是现实工作中最常用的数据类型之一。 字符数据的类型包括Char、Varchar和Text。数据两端需要用单引号。

3.1.1字符数据类型例如:‘helloSQLServer2008’char(n),varchar(n) char(n)固定分配n个字节的存储单元

n<8000.(多退少补)

varchar(n)可变长,存储单元视输入的情况而定,最多为n个字节注意:

1.字符数据由字母、符号和数字的任意组合组成;

2.输入时,字符数据必须由单引号’’括起来;

3.当取空字符串时,只需写NULL,而非‘NULL’

text举例:字符数据“abcdABCD我们学习”共____个字符占___个字节。

(注:字符数据类型char(n),varchar(n)中一个中文占两个字节,一个数字、英文各占一个字节)答案:12个字符,16个字节 请问char(10)/char(20),varchar(20)用来存储该数据,能存储么?分析:

char(10):仅存储“abcdABCD我”

char(20):存储“abcdABCD我们学习”占20字节

varchar(20):存储“abcdABCD我们学习”占16字节Unicode是“统一字符编码标准”,用于支持国际上非英语种的字符数据的存储和处理。Unicode字符串是为了在数据库中容纳多种语言存储数据,而制定的数据类型。 其所占用的存储大小是使用非Unicode数据类型所占用的存储大小的2倍。包括Nchar(长度固定)、Nvarchar(长度可变)和Ntext。3.1.5Unicode字符串·nchar(n),nvarchar(n) nchar(n)存储固定长度的双字节数据,其中n代表最大字符数,取值范围为1~4000个字符。

nvarchar(n)数据类型用来存放可以变长度的双字节数据,取值范围为1~4000,其存储也类似于varchar举例:字符型字符串“abcdABCD我们学习”作为统一字符型共__个字符,占__个字节。注:每个字符占2个字节。答案:12个字符,24个字节 请问nchar(10)/nchar(20),nvarchar(20)用来存储该数据,能存储么?分析:

nchar(10)仅存储“abcdABCD我们”

nchar(20)存储“abcdABCD我们学习”占40字节

nvarchar(20)存储“abcdABCD我们学习”占24字节数字类型精确数字类型整数精确小数货币类型位数据类型近似数字类型FloatReal3.1.2精确数字类型1.

整数数据类型·bigint 8字节,范围-263~263-1·int 4字节,表示范围-231~231-1·smallint2字节,范围-215~215-1·tinyint 1字节,范围0~255思考:存储人的年龄使用什么类型?2.

位数据类型·bit类型:取值0,1,Null说明:字符串值TRUE和FALSE可转换为

bit

值:

TRUE将转换为1,FALSE将转换为0。转换为bit会将任何非零值升为1。思考:存储学生的性别使用什么类型?·money,smallmoney ·money占位8字节,保留到小数点后4位。例如:$315749.1234 ·smallmoney占位4字节,保留到小数点后四位,取值范围:-214748.3648~214748.36473

货币类型4精确小数类型·decimal(p,s),numeric(p,s)

精确小数数据由精度位和小数位组成。其中,p为精度值或对象能够控制的数字个数,s为小数位数。

p,s满足:

0<=s<=p<=38默认值为p=18,s=0例如:decimal(8,6)的取值范围为: -99.999999~99.999999

思考:存储学生成绩(含1位小数)使用什么类型?3.1.3近似数字类型·real,floatreal精度在1~7之间,存储范围是

-3.40E+38~3.40E+38存储长度为4个字节。 (其中,3.40E+38=3.40×1038)float精度在7~15之间,存储范围

-1.79E+308~1.79E+308存储长度为8字节思考:存储PI≈3.1415926使用什么类型?·datetime,smalldatetime

datetime范围:1753-1-1~9999-12-31,该类型占用空间为8个字节。

smalldatetime:1900-1-1~2079-12-31,占4个字节的存储空间3.1.4日期和时间数据类型 SQLServer2008在原来数据类型的基础上又引入了4种新的数据类型:datetime2、dateoffset、date和time。举例:日期:mdy:‘4/15/1996’,‘4-15-1996’ ymd:‘1996/4/15’,‘1996-4-15’日期和时间:‘1982-5-612:30:00’

二进制数据类型表示的是位数据流,一般用于存储二进制的大对象,比如声音、图片、多媒体等。包括Binary(固定长度)和Varbinary(可变长度)2种,可用来输入和显示前缀为0x的十六进制值。3.1.6二进制字符串Timestamp数据类型公开数据库中自动生成的唯一二进制数字的数据类型。

Uniqueidentifier具有更新订阅的合并复制和事务复制功能。

Cursor数据类型是变量或存储过程OUTPUT参数的一种数据类型,这些参数包含对游标的引用。3.1.7其他数据类型(略)Sql_variant类型用于存储SQLServer2005支持的各种数据类型(不包括Text、Ntext、Image、Timestamp和Sql_variant)的值。

Table是一种特殊的数据类型,用于存储结果集以进行后续处理。

Xml数据类型可以在SQLServer数据库中存储XML文档和片段。

NULL值不是0也不是空格,更不是填入字符串“NULL”,而是表示“不知道”、“不确定”或“暂时没有数据”的意思。当某一字段可以接受NULL值时,表示该字断的值可以不输入。例如:当不知道或暂时没有数据填入表格时,可以使用___NULL_____.3.2用户自定义数据类型1.创建用户自定义数据类型

创建用户自定义数据类型可以使用Transact-SQL语句。语法格式如下:

sp_addtype{新数据类型名},[,系统数据类型][,'null_type']【例3.1】创建一个用户定义的数据类型CellPhone,其基于的系统数据类型是定长为11的字符,不允许空。Execsp_addtypeCellPhone,'Char(11)',‘NotNull'【例3.2】创建一个用户定义的数据类型birthday,其基于的系统数据类型是DateTime,允许空。Execsp_addtypebirthday,datetime,'Null'2.删除用户自定义的数据类型

当用户自定义的数据类型不需要时,可删除。删除用户自定义的数据类型的命令是:

sp_droptype{'数据类型名'}【例3.3】删除用户自定义数据类型CellPhone。

Execsp_droptype'CellPhone'SQLServer常见的数据类型类型数据类型长度字符串Char1~8000个字符,1个字符占1个字节Varchar1~8000个字符,1个字符占1个字节Text1~231−1个字符,1个字符占1个字节精确数字类型Bigint8字节,−263~263−1Int4字节,−231~231−1Smallint2字节,−215~215−1Tinyint1字节,0~255Bit0、1或NULLDecimal2~17字节,视精确度而定Numeric2~17字节,视精确度而定Money8字节Smallmoney4字节类型数据类型长度近似数字类型Float8字节Real4字节日期和时间数据类型Datetime8字节Smalldatetime4字节Date2008新类型Time2008新类型Unicode字符串Nchar1~4000个字符,1个字符2个字节Nvarchar1~4000个字符,1个字符2个字节Ntext1~230−1个字符,1个字符2个字节二进制字符串Binary1~8000个字节Varbinary1~8000个字节,存储时需另外增加2字节Image0~2×109字节3.3系统内置函数3.3.1数学函数3.3.2字符串处理函数3.3.3系统函数3.3.4日期时间函数3.3.1数学函数

1.ABS函数

ABS函数用于返回数值表达式的绝对值,其语法格式如下:ABS(数值表达式)【例3.4】求数值表达式22-33-15的绝对值。

selectabs(22-33-15)

返回值为26。2.EXP函数

EXP函数用于返回求e的指定次幂,其语法格式如下:

EXP(浮点表达式)【例3.5】计算e的3次幂。

selectexp(3)

返回值为20.10000000000773.3.1数学函数

3.3.1数学函数3.CEILING函数

CEILING函数用于返回大于或等于数值表达式的最小整数,其语法格式如下:

CEILING(数值表达式)【例3.6】计算大于或等于35.76+42.11-36.5的最小整数。

selectceiling(35.76+42.11-36.5)返回值为42。3.3.1数学函数4.FLOOR函数

FLOOR函数用于返回小于或等于数值表达式的最大整数,其语法格式如下:

FLOOR(数值表达式)【例3.7】计算小于或等于35.76的最小整数。

selectfloor(35.76)返回值为35。3.3.1数学函数5.LOG函数

LOG函数用于返回表达式以e为底的对数,即自然对数,其语法格式如下:

LOG(浮点表达式)【例3.8】求20.1000000000077的自然对数。

Selectlog(20.1000000000077)返回值为3,与【例3.5】相对应。3.3.1数学函数6.LOG10函数

LOG10函数用于返回表达式以10为底的对数,其语法格式如下:

LOG10(浮点表达式)【例3.9】求1000以10为底的对数。

Selectlog10(1000)返回值为3。3.3.1数学函数7.PI函数

PI函数用于返回圆周率,即∏的值,无参数,其语法格式如下: PI()【例3.10】计算半径为2CM的圆的周长。

Select2*PI()*2返回值为12.1000000000092。3.3.1数学函数8.POWER函数

POWER函数用于返回数值表达式1的数值表达式2次幂的结果,其语法格式如下:

POWER(数值表达式1,数值表达式2)【例3.11】计算9的三次方。

SelectPOWER(9,3)返回值为729。3.3.1数学函数9.ROUND函数

ROUND函数返回数值表达式指定精度的四舍五入的结果,返回的数值和原数值的总位数没有变化,其语法格式如下:

ROUND(数值表达式[,长度[,操作方式]])

长度:舍入精度。操作方式:默认为0遵循四舍五入,指定其他整数值则直接截断。

【例3.12】以几个有代表性的数字为例,通过不同的长度及操作方式返回不同的值。selectround(337.555,2)返回值为337.560selectround(337.555,2,1)返回值为337.5503.3.1数学函数10.RAND函数

RAND函数用于返回0-1之间的随机float值。整数表达式为种子,使用相同的种子产生随机数相同,不指定种子则系统会随机生成种子,其语法格式如下:

RAND(整数表达式)【例3.13】求0-100之间的随机值。

selectRAND()*100执行多次,每次返回的值为0-100之间的随机值,值不一样。

selectRAND(20)*100执行多次,返回的值均为71.1000000000029。3.3.1数学函数11.SIGN函数

SIGN函数用于返回数值表达式的正号(+)、负号(—)或零,表达式为正返回+1,表达式为负返回-1,表达式为零返回0,其语法格式如下:

SIGN(数值表达式)【例3.14】求28+19-65表达式运算结果为正数、负数还是零。

selectSIGN(28+19-65)返回值为-13.3.1数学函数12.SQUARE函数

SQUARE函数用于返回数值表达式的平方,其语法格式如下:

SQUARE(数值表达式)【例3.15】求半径为2CM的圆的面积。

selectPI()*SQUARE(2)返回值为12.10000000000923.3.1数学函数13.SQRT函数

SQRT函数用于返回数值表达式的平方根,其语法格式如下:

SQRT(数值表达式)【例3.16】求10的平方根。

selectSQRT(10)返回值为3.10000000000838。3.3.1数学函数14.ACOS函数

ACOS函数用于返回其余弦是所指定的数值表达式的弧度,求反余弦,其语法格式如下:

ACOS(浮点表达式)ASIN函数、ATAN函数与ACOS函数语法格式类似,不再一一详解。【例3.17】求0.2的反余弦、反正弦及反正切值。selectacos(0.2)返回值为1.10000000000457。selectasin(0.2)返回值为0.100000000000331。selectatan(0.2)返回值为0.100000000009881。3.3.1数学函数15.COS函数COS函数用于返回指定弧度的余弦值,其语法格式如下:

COS(浮点表达式)COT函数、SIN函数、TAN函数与COS函数语法格式类似,不再一一详解。【例3.18】求四分之∏弧度(即45度角)的余弦、余切、正弦及正切值。selectcos(PI()/4)返回值为0.100000000006548。selectcot(PI()/4)返回值为1。selectsin(PI()/4)返回值为0.100000000006547。selecttan(PI()/4)返回值为1。3.3.1数学函数15.COS函数COS函数用于返回指定弧度的余弦值,其语法格式如下:

COS(浮点表达式)COT函数、SIN函数、TAN函数与COS函数语法格式类似,不再一一详解。【例3.18】求四分之∏弧度(即45度角)的余弦、余切、正弦及正切值。selectcos(PI()/4)返回值为0.100000000006548。selectcot(PI()/4)返回值为1。selectsin(PI()/4)返回值为0.100000000006547。selecttan(PI()/4)返回值为1。6.LEFT函数

LEFT函数用于返回字符串表达式中从左侧开始指定个数的字符,若指定值为负数或0,则返回空字符串;若指定值超过字符串长度,则返回整个字符串,其语法格式如下:LEFT(字符串表达式,整数表达式)3.3.2字符串处理函数【例3.27】返回字符串的前6个字符。

selectLEFT('cometomyparty',7)返回值为“cometo”7.RIGHT函数

RIGHT函数用于返回字符串中从右边开始指定个数的字符,若指定值为负数或0,则返回空字符串;若指定值超过字符串长度,则返回整个字符串,其语法格式如下:

RIGHT(字符串表达式,整数表达式)3.3.2字符串处理函数【例3.28】返回字符串的后8个字符及后8个字符中的前两个字符。

selectright('cometomyparty',8)

返回值为“myparty”

selectleft(right('cometomyparty',8),2)

返回值为“my”8.LEN函数

LEN函数用于返回字符串表达式字符的数量,不包含尾随的空格,其语法格式如下:

LEN(字符串表达式)注意:一个汉字也作为一个字符处理,若其中的字符串表达式为纯数字,可以不使用‘’括起来,当字符串中含有其他字符时,一定要使用‘’括起来,否则会产生语法错误3.3.2字符串处理函数【例3.29】计算下列字符串的长度。selectLEN('cometomyparty')返回值为16。selectLEN('来参加我的聚会')返回值为7。selectLEN(201314)返回值为6。9.LOWER函数

LOWER函数用于将字符的大写形式转换成小写的形式,其语法格式如下:

LOWER(字符串表达式)3.3.2字符串处理函数【例3.30】将字符串中的所有大写字符转换成相应的小写字符。

selectLOWER('CoMeTomYParTy')返回值为“cometomyparty”。10.UPPER函数

UPPER函数用于将字符的小写形式转换成大写的形式,其语法格式如下:

UPPER(字符串表达式)3.3.2字符串处理函数【例3.31】将字符串中的所有小写字符转换成相应的大写字符。

SelectUPPER('CoMeTomYParTy')返回值为“COMETOMYPARTY”。11.LTRIM函数

LTRIM函数返回删除了前导空格的字符串表达式,其语法格式如下:

LTRIM(字符串表达式)3.3.2字符串处理函数【例3.32】删除下列字符串前面的空格。

SelectLTRIM('therearethreespaceintheleft')返回值为“therearethreespaceintheleft”。

SelectLTRIM('therearethreespaceanda"tab"intheleft')返回值为“therearethreespaceanda”tab“intheleft”。 LTRIM函数只能用于删除空格键产生的空间,不能去除Tab键产生的空间。13.REPLACE函数

REPLACE函数用第三个字符串表达式替换第一个字符串表达式中与第二个字符串表达式相匹配的的部分,其语法格式如下:

REPLACE(字符串表达式1,字符串表达式2,字符串表达式3)3.3.2字符串处理函数【例3.34】将字符串中的“dog”替换成“cat”。SelectREPLACE('thisisadog,abigdog','dog','cat')返回值为“thisisacat,abigcat”。15.REVERSE函数

REVERSE函数用于返回原字符串的逆反形式,其语法格式如下:

REVERSE(字符串表达式)3.3.2字符串处理函数【例3.36】将字符串中“来参加我的聚会”反转输出。

SelectREVERSE('来参加我的聚会')返回值为“会聚的我加参来”。16.SPACE函数

SPACE函数用于返回由指定数目的空格组成的字符串,其语法格式如下:

SPACE(整数表达式)3.3.2字符串处理函数【例3.37】在以下两个字符串的中间加入4个的空格。

Select'hello'+SPACE(4)+'world'返回值为“helloworld”。17.STR函数

STR函数用于将数字数据转换成字符数据,其语法格式如下:STR(float型小数[,总长度[,小数点后保留的位数]])【例3.38】将下列数字按指定的要求转换成字符。selectstr(123.456)返回值为“123”。selectstr(123.456,3)返回值为“123”。selectstr(123.456,7,3)返回值为“123.456”。selectstr(123.456,7,1)返回值为“123.5”。se

温馨提示

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

评论

0/150

提交评论