《表格模板-SQL第3章管理数据表 精品.ppt》由会员分享,可在线阅读,更多相关《表格模板-SQL第3章管理数据表 精品.ppt(38页珍藏版)》请在第一文库网上搜索。
1、13.1 SQL Server表的概念表的概念3.2 SQL Server中的数据类型中的数据类型3.3 创建数据表创建数据表3.4 管理数据表管理数据表 21.1.表的概念表的概念 在在SQL ServerSQL Server数据库中,数据库中,表定义为列的集合,与表定义为列的集合,与ExcelExcel电电子表格相似,数据在表中是按行和列的格式组织排列的。每子表格相似,数据在表中是按行和列的格式组织排列的。每行代表唯一的一条记录,而每列代表记录中的一个域。行代表唯一的一条记录,而每列代表记录中的一个域。 学号姓名性别出生日期系部入学时间000101张三男1980计算机2000000201李
2、伟男1981经 济 管理2000010101王丽女1982数学2001关系名(表名)属性(列或字段)关系模式 属性名记录或元组主键(码)32.表的设计表的设计 在在SQL Server创建表有如下限制:创建表有如下限制:每个数据库里最多有每个数据库里最多有20亿个表亿个表。每个表上最多可以创建每个表上最多可以创建一个聚集索引一个聚集索引和和249个非聚集索个非聚集索引引。每个表最多可以配置每个表最多可以配置1024个字段个字段。每条记录最多可以占每条记录最多可以占8060B,但不包括,但不包括text字段和字段和image字段。字段。 43.1 SQL Server表的概念表的概念3.2 SQ
3、L Server中的数据类型中的数据类型3.3 创建数据表创建数据表3.4 管理数据表管理数据表 51.二进制数据二进制数据 2.字符型数据类型字符型数据类型 3.Unicode字符数据字符数据 4.日期时间型数据日期时间型数据 5.整数型数据整数型数据 6.精确数值型数据精确数值型数据 7.近似数值类型近似数值类型 8.货币数据货币数据 9.位类型数据位类型数据 61.二进制数据二进制数据功能:常用于存储图像等数据,包括长二进制数据功能:常用于存储图像等数据,包括长二进制数据binary、变长二进制数据、变长二进制数据varbinary和和image三种。三种。类型类型存储空间大小存储空间大
4、小(字节字节)最大取值最大取值说明说明Binary(n)N+4存储空间固定存储空间固定N1,8000默认为默认为1输入不足输入不足n+4字节字节,补足后补足后存储存储;超过则截断后存储超过则截断后存储.Varbinary(n)变长存储数据变长存储数据 N1,8000默认为默认为1输入不足输入不足n+4字节字节,按实际按实际长度存储长度存储;超过则截断后超过则截断后存储存储.image231-172.字符型数据类型字符型数据类型功能功能: :用于存储汉字、英文字母、数字、标点和各种符号,用于存储汉字、英文字母、数字、标点和各种符号,必必须由英文单引号括起来须由英文单引号括起来。类型类型存储空间大
5、小存储空间大小(字节字节)最大取值最大取值说明说明char(n)固定长度存储字固定长度存储字符串符串N1,8000默认为默认为1输入不足输入不足n个字节个字节,补足后补足后存储存储;超过则截断后存储超过则截断后存储.varchar(n)按变长存储字符按变长存储字符串串N1,8000默认为默认为1输入不足输入不足n字节字节,按实际长按实际长度存储度存储;超过则截断后存储超过则截断后存储.text231-1个字节个字节83.Unicode字符数据字符数据 功能:存放功能:存放Unicode字符数据字符数据. .支持的字符范围更大,存储所需支持的字符范围更大,存储所需 要的空间也更大。要的空间也更大
6、。类型类型存储空间大小存储空间大小(字节字节)最大取值最大取值说明说明nchar(n)固定长度存储固定长度存储字符串字符串N1,4000默认为默认为1输入不足输入不足n个字节个字节,补足后补足后存储存储;超过则截断后存储超过则截断后存储.nvarchar(n)按变长存储字按变长存储字符串符串N1,4000默认为默认为1输入不足输入不足n字节字节,按实际长按实际长度存储度存储;超过则截断后存储超过则截断后存储.ntext230-1个字节个字节94.日期时间型数据日期时间型数据功能:用于存储日期和时间数据。功能:用于存储日期和时间数据。类型类型存储范围存储范围datetime存储从存储从1753年
7、年1月月1日到日到9999年年12月月31日的日期和时间日的日期和时间数据,精确度为数据,精确度为3%秒。秒。smalldatetime存储从存储从1900年年1月月1日到日到2079年年6月月6日的日期和时间数日的日期和时间数据,精确度为分据,精确度为分.105. .整数型数据整数型数据功能:用于存储整型数据。功能:用于存储整型数据。类型类型存储大小(字节)存储大小(字节)数据范围数据范围bigint8-263 263-1int4-231 231-1smallint2-215 215-1tinyint10255116.精确数值型数据精确数值型数据 功能:用于存储带有小数点且小数点后位数确定的
8、实数。功能:用于存储带有小数点且小数点后位数确定的实数。类型类型说明说明数据范围数据范围decimal(p,s)p指定存储数据的最大位指定存储数据的最大位数,不含小数点数,不含小数点,p1,38;s指定存储的小数的指定存储的小数的最大位数最大位数, s0,p.默认小数位是默认小数位是0。-1038+1 1038-1numeric(p,s)127.近似数值类型近似数值类型功能:用于存储浮点数。功能:用于存储浮点数。 类型类型说明说明数据范围数据范围float(n)n为精度,为精度,n1,53存放存放-1.79E+3081.79E+308数值数值范围内的浮点数范围内的浮点数real存储大小为存储大
9、小为4个字个字节节从从 -3.40E + 38 到到 3.40E + 38 之之间的浮点数字数据间的浮点数字数据138.货币数据货币数据类型类型存储大小存储大小数据范围数据范围money8 个字节个字节货币数据值介于货币数据值介于 -263与与 263 - 1之之间,精确到货币单位的千分之间,精确到货币单位的千分之十十smallmoney4个字节个字节货币数值介于货币数值介于-214,748.3648 +214.748,3647 之间,精确到货之间,精确到货币单位的千分之十币单位的千分之十149.位类型数据位类型数据功能:位类型数据用于存储整数,只能取功能:位类型数据用于存储整数,只能取 1、
10、0 或或NULL, 常用于逻辑数据的存取。常用于逻辑数据的存取。说明:说明: 在位类型的字段中输入在位类型的字段中输入0 0和和1 1之外的任何值,系统都会之外的任何值,系统都会 作为作为1 1来处理。来处理。 如果一个表中有如果一个表中有8 8个以下的位类型数据字段,则系统会用一个以下的位类型数据字段,则系统会用一 个字节存储这些字段;如果表中有个字节存储这些字段;如果表中有9 9个以上个以上1616个以下位类型数据个以下位类型数据 字段,则系统会用两个字节来存储这些字段。字段,则系统会用两个字节来存储这些字段。 153.1 SQL Server表的概念表的概念3.2 SQL Server中
11、的数据类型中的数据类型3.3 创建数据表创建数据表3.4 管理数据表管理数据表 161.使用使用SSMS创建表创建表 创建表的步骤创建表的步骤: 1)定义表结构定义表结构:给表的每一列取字段名,并确定每一列的数:给表的每一列取字段名,并确定每一列的数据类型、数据长度、列数据是否可以为空等。据类型、数据长度、列数据是否可以为空等。 2)设置约束设置约束:设置约束是为了限制该列输入值的取值范围,:设置约束是为了限制该列输入值的取值范围,以保证输入数据的正确性和一致性。以保证输入数据的正确性和一致性。 3)添加数据添加数据:表结构建立完成之后,就可以向表中输入数据。:表结构建立完成之后,就可以向表中
12、输入数据。 171.使用使用SSMS创建表创建表 例例1:请在请在student数据库中建立数据库中建立“学生基本信息学生基本信息”表的结构。表的结构。注注: : 主键的字段值不能为空主键的字段值不能为空, ,且字段值在表中必须唯一且字段值在表中必须唯一字段名字段名字段数据类型字段数据类型长度长度是否为空是否为空约束约束学号学号char8否否主键主键姓名姓名char10否否 性别性别char2是是 默 认 值默 认 值 男男出生年月出生年月datetime8是是 籍贯籍贯varchar20是是 家庭住址家庭住址varchar60是是电话电话char15是是 所属班级所属班级char8是是 18
13、2.使用使用T-SQL语句创建表语句创建表 1)语法:语法:CREATE TABLE database_name.owner.|owner.table_name ( column_definition | PRIMARY KEY | UNIQUE ,N ) := column_name data_type DEFAULT constraint_expression | IDENTITY (seed,increment) ,n19语法注释:语法注释:database_name:指定创建的表所在的数据库,在:指定创建的表所在的数据库,在当前数据库创建表时该项可以省略。当前数据库创建表时该项可以省略
14、。 owner:指定表的拥有者,如果表的拥有者为当前:指定表的拥有者,如果表的拥有者为当前用户,该项可以省略。用户,该项可以省略。 table_name:指定新建表的名称。:指定新建表的名称。 column_definttion:为表中字段的定义表达式。:为表中字段的定义表达式。 column_name:为表中的字段名。:为表中的字段名。 data_type:为字段的数据类型。:为字段的数据类型。 PRIMARY KEY:为主键约束关键字。:为主键约束关键字。 UNIQUE:为唯一约束关键字。:为唯一约束关键字。 DEFAULT:为默认约束关键字。:为默认约束关键字。 IDENTITY:为自动
15、编号标识。:为自动编号标识。 Seed:为自动标识的开始值,默认为:为自动标识的开始值,默认为1。 Increment:为自动编号的步长或增量,默认为:为自动编号的步长或增量,默认为1。20 例例2:创建带有参照约束的学生表创建带有参照约束的学生表stud_info,学生表的表结构定义如,学生表的表结构定义如 下表所示。下表所示。“学号学号”字段为学生表的主键。字段为学生表的主键。字段名字段名字段数据类型字段数据类型长度长度是否为空是否为空约束约束学号学号char8否否主键主键姓名姓名char10否否 性别性别char2是是 默 认 值默 认 值 男男出生年月出生年月datetime8是是 籍
16、贯籍贯varchar20是是 家庭住址家庭住址varchar60是是电话电话char15是是 所属班级所属班级char8是是 21创建创建“学生学生”表的代码如下:表的代码如下:USE StudentGO CREATE TABLE stud_info(学号学号 char(8) PRIMARY KEY,姓名姓名 char(10) NOT NULL,性别性别 char(2) DEFAULT 男男,出生年月出生年月 datetime,籍贯籍贯 varchar(20),家庭住址家庭住址 varchar(60),电话电话 char(15),所属班级所属班级 char(8))GO22例例3:在学生管理数据库中用:在学生管理数据库中用T-SQL语句创建一个学生成绩表语句创建一个学生成绩表 stud_score ,表结构如下,其中包含标识列和计算列。,表结构如下,其中包含标识列和计算列。23实现的实现的T-SQL语句语句:CREATE TABLE stud_scoreCREATE TABLE stud_score( ( Scoreid int Scoreid int IDENTITY(1,1) PRI