第6章 数据表的创建与与操纵.ppt
《第6章 数据表的创建与与操纵.ppt》由会员分享,可在线阅读,更多相关《第6章 数据表的创建与与操纵.ppt(118页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章数据表的创建与操纵数据表的创建与操纵表表表是经常使用的一种表示数据及其关系的形式表是经常使用的一种表示数据及其关系的形式表表6.1学生表(学生表(XS)表表6.2 成绩表成绩表(XS_KC)表表6.3 课程表课程表(KC)表结构表结构(表头表头)行行记记录录列字段列字段RecordField建表的含义建表的含义建立一个数据表它包括两个方面:一是表的结构定义是什么-这是创建表的主要任务二是表中的行数据是什么。创建表的实质创建表的实质就是定义表的结构及数据完整性约束等属性,因此在创建表之前要先设计表,即确定表的名称、每个列的名称、每列的数据类型、长度、是否能为空值、主键、外键、默认值以及取值
2、规则等,这些属性构成表结构。本章将结合数据类型和数据完整性约束介绍表的创建与使用。6.1SQLServer的数据类型的数据类型创建数据表时,每一列必须定义明确的数据类型,因为:创建数据表时,每一列必须定义明确的数据类型,因为:不同的数据占用不同的空间大小不同的数据占用不同的空间大小:性别描述只需要一个汉字,地址则要几十个汉字;性别描述只需要一个汉字,地址则要几十个汉字;不同的数据运算方式不同不同的数据运算方式不同成绩、工资这样的数据,需要计算平均值、总分、总工成绩、工资这样的数据,需要计算平均值、总分、总工资等,即需要做数学运算操作;资等,即需要做数学运算操作;姓名、地址之类的数据不需要做数学
3、运算。姓名、地址之类的数据不需要做数学运算。不同的数据存储格式不同不同的数据存储格式不同12与与12分别存放为分别存放为00001100,0011000100110010为了对不同的数据分配最合理的存储空间、对不同的为了对不同的数据分配最合理的存储空间、对不同的数据能实施相应的操作,数据能实施相应的操作,SQLServer对数据进行了分对数据进行了分类,提供了各种系统数据类型类,提供了各种系统数据类型还允许用户在系统类型基础之上自己定义数据类型。还允许用户在系统类型基础之上自己定义数据类型。数据类型符号标识整数型bigint,int,smallint,tinyint精确数值型decimal,n
4、umeric浮点型float,real货币型money,smallmoney位型bit字符型char,varcharUnicode字符型nchar,nvarchar文本型text,ntext二进制型binary,varbinary日期时间类型datetime,smalldatetime时间戳型Timestamp图象型Image其他cursor,sql_variant,uniqueidentifier系系统统数数据据类类型型:1整数型整数型(无小数部分无小数部分)整数包括整数包括bigint、int、smallint和和tinyint,它们的表示数范,它们的表示数范围逐渐缩小。围逐渐缩小。big
5、int:大整数,数范围为:大整数,数范围为-263(-9223372036854775808)263-1(9223372036854775807),其精度为,其精度为19,长度为,长度为8字节。字节。int:整数,数范围为:整数,数范围为-231(-2,147,483,648)231-1(2,147,483,647),其精度为,其精度为10,长度为,长度为4字节。字节。smallint:短整数,数范围为:短整数,数范围为-215(-32768)215-1(32767),其精度为,其精度为5,长度为,长度为2字节。字节。tinyint:微整数,数范围为:微整数,数范围为0255,长度为,长度为1
6、字节,其精度为字节,其精度为3,长度为,长度为1字节。字节。精度:指数值数据中所存储的十进制数据的总位数。精度:指数值数据中所存储的十进制数据的总位数。长度:指存储数据所使用的字节数。长度:指存储数据所使用的字节数。2decimal和和numeric小数数据类型(由整数和小数组成)表示为表示为numeric(p,s)和和decimal(p,s)p(精度,(精度,precision)指定小数点两边数据的总位数)指定小数点两边数据的总位数s(刻度,(刻度,scale),指定小数点右边的位数。),指定小数点右边的位数。其中:1p38,0sp。数据的取值范围在-1038+1到到10381之间。例如数据
7、例如数据3890.587的精度是的精度是7,小数位数是,小数位数是3,适合它的,适合它的类型为类型为numeric(7,3)或或decimal(7,3)。如果把它存储到。如果把它存储到numeric(5,1)或或decimal(5,1)类型中,则实际存储为类型中,则实际存储为3890.6。如果要把它存储到。如果要把它存储到numeric(4,1)或或decimal(4,1)类型中,则会产生报错信息。类型中,则会产生报错信息。注意:小数数据类型定义,必须使注意:小数数据类型定义,必须使整数部分位数整数部分位数不小于不小于该列中全部可能数据的整数部分的位数。该列中全部可能数据的整数部分的位数。SQ
8、LServer分配给decimal和numeric型数据的存储长度随精度的不同而不同,对应的比例关系如下:精度范围19,分配存储字节数为5。精度范围1019,分配存储字节数为9。精度范围2028,分配存储字节数为13。精度范围2938,分配存储字节数为17。如数值数据如数值数据3890.587的精度是的精度是7,小数位数是,小数位数是3,使用使用numeric(7,3)存储的字节长度为存储的字节长度为5,使用使用numeric(10,3)存储的字节长度为存储的字节长度为9。3近似数值型(浮点型)按照科学记数法“尾数E阶数”来表示数据.如3.14161023表示为3.1416E23。(1)rea
9、l:4字节存储数据,数据范围为-3.40E+38到3.40E+38,数据精度为7位有效数字。(2)float(n):数据范围从-1.79E+3081.79E+308。n取值范围是153,用于存储尾数的位数。n为124时,精度是7位,用4字节,等效于real型n为2553时,精度是15位,用8字节,是默认情况。4货币型货币型SQLServer中对货币数据的存储精确度为4位小数点,精确到万分之一货币单位。(1)money:数范围为-263(-922337203685477.5808)263-1(922337203685477.5807),其精度为19位,存储长度为8字节。(2)smallmoney
10、:数范围为231(-2,147,48.3648)231-1(2,147,48.3647),其精度为10位,存储长度为4字节。在把值输入到定义为money或smallmoney数据类型的表列时,应该在最高位之前放一个货币符号$,但是也没有严格要求。对于负数可以写成$-123.4567的形式。5位型位型Bit:相当于其他语言中的逻辑型数据,它只存储0、1或null,长度为一个字节。当输入0或1以外的其他值系统均视为1。当一个表中有18个的bit列时,SQLServer将这些列作为一个字节存储,有916个的bit列时,按两个字节存储,依此类推。注意,在输入时要输入true/false(查询显示对应1
11、/0)6字符型字符型祝你成功!,等(1)char(n):):固定长度存储字符串,n表示字符个数,可以为18000。如果如果实际实际数据的字符长度数据的字符长度短于短于给定的最大长度,则给定的最大长度,则多余多余的字节会用的字节会用空格填充空格填充。如果实际数据的字符长度如果实际数据的字符长度超过了超过了给定的最大长度,则超给定的最大长度,则超过的字符将过的字符将会被截断会被截断。(2)varchar(n):):使用可变长度来存储字符串,使用方式与char数据类型类似,最长可以达到8000字符的变长字符。与与char数据类型不同的是,数据类型不同的是,varchar数据类型的存储空数据类型的存储
12、空间随存储在表列中的每一个数据的字符数目的不同而间随存储在表列中的每一个数据的字符数目的不同而变化。变化。比较比较B LU EO R A N G ER E DB LU EO R A N G ER E DChar(6)varchar(6)(3)text:当要存储的字符型数据非常庞大以至于8000字节完全不够用时,char和varchar数据类型都失去了作用,这时应该选择text数据类型。text数据类型专门用于存储数量庞大的变长字符数据。最大长度可以达到231-1个字符,约2GB。定义text数据类型不必指定长度,SQLServer系统自动以16表示长度,并且按实际字符长度自动分配空间。7Uni
13、code字符型字符型Unicode是“统一字符编码标准”,用于支持各种非英语语种的字符数据,它实际上是双字节数据类型。如如一个汉字一个汉字使用使用char类型要占用类型要占用2字符位字符位(2个字节),使用个字节),使用nchar只需要只需要1个字符位个字符位(2个字节)。个字节)。(1)nchar(n):固定长度的Unicode字符型数据,n 的值在1与4000之间,默认为1。由于存储的都是双字节字符,所以存储空间为2n字节。(2)nvarchar(n):为可变长度的Unicode字符型数据,n 的值在1与4000之间,默认为1,所以使用nvarchar数据类型所能存储的最大字符数也是400
14、0。(3)ntext:可表示最大长度为230-1(1,073,741,823)个Unicode字符,其数据的存储长度是实际字符个数的两倍。使用方法分别对应于char、varchar和text。汉字汉字“姓名姓名”类型选择比较类型选择比较nchar(4)char(8)张张鸿鸿刘刘珊珊宇宇欧欧阳阳轩轩雨雨欧欧阳阳轩轩雨雨欧欧阳阳轩轩雨雨张张鸿鸿8日期时间数据类型日期时间数据类型如2000-05-0812:35:01PM4/15/200718:35:01(1)datetime:范围从1753年1月1日到9999年12月31日,精确度为百分之三秒(等于3.33毫秒或0.00333秒)。Datetime
15、数据类型的数据占用8个字节的存储空间。(2)smalldatetime:范围从1900年1月1日到2079年6月6日,可以精确到分。smalldatetime数据类型占4个字节的存储空间。SQLServer在用户没有指定时间数据时,会自动设置时间为00:00:00。日期部分可以使用数字格式、字母格式和无分隔符格式三种。使用数字格式(输入日期型数据使用):如果语言设置为简体中文,默认按ymd(年月日)形式接受日期数据,年月日之间分隔符有两种:连字符(-)、斜杠(/)。如输入“2003-6-5”或“2003/6/5”都表示2003年6月5日。如果语言设置为us_english,默认按mdy(月日年
16、)形式接受日期数据,年月日之间可以用3种分隔符:连字符(-)、斜杠(/)、或句点(.)。输入“03-06-2005”或“03/06/2005”或“03.06.2005”都表示2005年3月6日。使用SETDATEFORMATymd命令可以改变日期格式的接受形式为ymd。日期顺序参数包括mdy、dmy、ymd、ydm、myd和dym共6种。使用字母格式(输入可用)用Jan、Feb等英文字母来表示月份时,则可以用年月日的6种组合方式接受数据。如:Apr152007,15Apr2007都表示2007年4月15日。无分隔符格式(仅用于编程时的局部变量):可以使用4、6、8位数字表达日期。如果只使用4位
17、数字则只表示年份;使用6、8位时,月日都必须用两位。如“2007”表示2007年1月1日,“070405”和“20070405”表示2007年4月5日。时间部分的表示格式如下:时:分 14:30时:分:秒14:20:20时:分:秒:毫秒14:20:20:200时:分AM|PM 10:30AM4PM用12小时制服务器服务器-属性属性-高级高级-两位数据截止两位数据截止9二进制数据类型二进制数据类型二进制数据类型表示的是位数据流,包括binary,varbinary和image。(1)binary(n):列数据在每行中都是固定长度,n从18000,最多为8KB。(2)varbinary(n):列数
18、据在每行中可以是不同的长度,n从18000,最多为8KB。(3)image:可以用来储存超过8KB的可变长度的二进制数据,最大长度可以达到231-1个字符,约2GB。如word文档、excel电子表格、图像等。10其他数据类型其他数据类型uniqueidentifier:用于产生一个全局唯一标识符即GUID(GloballyUniqueIdentificationNumbers),是一个16字节的二进制数。它根据计算机网络适配器地址和主机CPU时钟产生的唯一号码,可以通过newid()函数获得。timestamp:时间戳数据类型,当向表中插入或修改行数据时,它可以反映数据库中数据修改的相对顺序
19、。cursor:游标数据类型,主要用于创建游标变量,不能赋值给表的字段。sql_variant:用于储存除了text、ntext、timestamp类型以外的值。table:用于暂存一些行的结果集。数据类型小结类型名称取值范围整数Bigintintsmallinttinyint(922亿亿)8字节(21亿)4字节(32768)2字节(0-255)1字节位型Bit由0和1表示真、假。货币型Moneysmallmoney(922万亿),精确到万分之一。8字节(21万)4字节十进制DecimalNumeric1038-1,最大位数38位,517字节浮点数realFloat(n)(3.40E+38)4
20、字节n=153 (1.79E+308)8字节数据类型小结类型名称取值范围日期时间Datetime、smalldatetime1753.1.1-9999.12.31,精确到3.33毫秒,8字节1900.1.1-2079.12.31,精确到分钟,4字节单字节字符char/varchar/text定/变长单字节字符,最长8000;text可达2GBUnicode字符nchar/nvarchar/ntext(N代表国际语言NationalLanguage)定/变长双字节字符,最长4000;Ntext可达2GB二进制数据Binary/varbinary/image定/变长二进制数据,最长8000;变长二
21、进制数据可达2GB特殊类型timestampSQL 活动的先后顺序。uniqueidentifier全局唯一标识 数据类型有关注意事项有关注意事项所有类型中,主要有下列类型要指出长度,其他基本不用:字符型:char(n)、varchar(n)小数型:decimal(p,s)、Numeric(p,s)1p38,0sp 6.1.2SQLServer的常量表示、运算符与表达式1.1.常量常量常量是不变的固定值,如常量是不变的固定值,如3.14156926,中国中国,1989-9-9常量在常量在表中输入表中输入和在和在表达式中描述表达式中描述是不同的,通常各种类是不同的,通常各种类型的数据都可以型的数
22、据都可以往表中直接输入往表中直接输入,但,但在表达式描述上需要加在表达式描述上需要加一些标志一些标志来相互区别数据类型,即所谓的定界符来相互区别数据类型,即所谓的定界符。如如12+34=460 x12+34=5212+34=12341常量常量(1)字符串常量(两种):必须用一对单引号括起来。ASCII字符串常量每个字符占1个字节,如:Goodlucky!,你好!I“mfine.-当引号本身也是其中的字符时,使用两个单引号表示嵌入的单引号Unicode字符串常量每个字符占2个字节,大写字母N作为前缀标识(N为SQL-92标准中的国际语言NationalLanguage)。如:NChinaN计算机
23、1常量常量(2)整型常量整型常量十六进制整型十六进制整型常量的表示:有前辍0 x0 xEBF090 x/*空十六进制常量*/二进制整型二进制整型常量的表示:即数字0或1。大于1的数字被转换为1。十进制整型十进制整型常量:145345234-2147483648是数字0,不是字母1常量常量(3)实型常量实型常量实型常量有定点表示和浮点表示两种方式。如:定点表示:定点表示:1894.1204-2147483648.10浮点表示:浮点表示:-101.5E5123E-3(4)日期时间常量(日期时间常量(用单引号括起来用单引号括起来)。SQLServer可以识别如下格式:字母格式,例:April20,2
24、000数字格式(语言中文),例:1998/4/15、2000-4-20无分隔格式,例:20001207、December12,1998时间常量的例子:14:30:2404:24:PM日期时间常量的例子:April20,200014:30:241常量常量1常量常量(5)money常量常量money常量是以以”$”作为前缀作为前缀的一整型或实型常量数据。下面是money常量的例子:$542023-$45.56$-423456.991常量常量(6)uniqueidentifier常量(长度常量(长度16字节)字节)uniqueidentifier常量是用于表示全局唯一标识符(GUID)值的字符串。是
25、sqlserver根据计算机网络适配器地址和主机cpu时钟产生的,可以通过调用newid()函数获得。例如:字符串格式:6F9619FF-8A86-D011-B42D-00004FC964FF十六进制数格式:0 xff19966f868b11d0b42d00c04fc964ff常量小结类型说明例如整型常量没有小数点和指数E60,25,-365实型常量decimal或numericfloat或real15.63、-200.25+123E-3、-12.978E5字符串常量单引号引起来学生,this is database双字节字符串前缀N必须是大写N学生日期型常量单引号()引起来6/5/03,Ma
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 数据表的创建与与操纵 数据表 创建 操纵
限制150内