《表格模板-第5章表的管理 精品.ppt》由会员分享,可在线阅读,更多相关《表格模板-第5章表的管理 精品.ppt(46页珍藏版)》请在第一文库网上搜索。
1、本章内容本章内容n 5.1 SQL Server表概述表概述 n 5.2 表的创建与维护表的创建与维护 n 5.3 表中数据的维护表中数据的维护 5.1 SQL Server表概述表概述5.1 SQL Server表概述表概述5.1.1 数据类型简介数据类型简介1、字符和二进制数据类型、字符和二进制数据类型(1)字符数据类型字符数据类型字符数据类型用于存储汉字、英文字母、数字符字符数据类型用于存储汉字、英文字母、数字符号和其他各种符号。号和其他各种符号。char数据类型数据类型varchar数据类型数据类型 text数据类型数据类型 SQL Server允许使用多国语言允许使用多国语言,采用采
2、用Unicode标准标准字符集。为此字符集。为此SQL Server提供多字节的字符数据类提供多字节的字符数据类型:型:nchar(n)、nvarchar(n)和和ntext。nchar,char,varchar 与与nvarchar的区别的区别n char是以固定长度的是以固定长度的,使用时往往要用使用时往往要用trim() 函数函数把两边的空格去掉把两边的空格去掉n Varchar存储变长数据存储变长数据,但存储效率但存储效率没有没有Char高高 n Nchar类型和类型和Nvarchar ,为了与其他多种字符的转为了与其他多种字符的转换换,如中文、音标等如中文、音标等 。字节的存储大小是
3、所输入字。字节的存储大小是所输入字符个数的两倍符个数的两倍, 就是说它是双字节来存储数据的就是说它是双字节来存储数据的n char、varchar一般适用于英文和数字一般适用于英文和数字;Nchar、Nvarchar适用中文和其他字符适用中文和其他字符,其中其中N表示表示Unicode常量常量,可以解决多语言字符集之间的转换问题可以解决多语言字符集之间的转换问题nchar,char,varchar 与与nvarchar的区别的区别n 问题:问题:n name char(10)、name nchar(10)分别能存放多分别能存放多少个汉字?为什么?少个汉字?为什么?解答:name char(10
4、)、name nchar(10)分别能存放分别能存放5个10个汉字汉字原因:原因:char与与varchar以单字节形式存放;以单字节形式存放; nchar与与nvarchar以双字节形式存放;以双字节形式存放;n Char、Varchar最多可以存储最多可以存储8000个字符个字符n Nchar、Nvarchar 最多可以存储最多可以存储4000个字符个字符n text、ntext 最多可以存储最多可以存储230-1个字符个字符5.1.1 数据类型简介数据类型简介(2)二进制数据类型二进制数据类型SQL Server二进制数据类型用于存储二进制数据类型用于存储二进制数二进制数或字或字符串符串
5、。 SQL Server的的3种有效二进制数据类型:种有效二进制数据类型: binary (n)数据类型数据类型: 默认默认n=1, 存放空间存放空间n+4个字个字节节,取值取值18000varbinary(n)数据类型数据类型:基本同上基本同上,但空间足够时取但空间足够时取实际长度实际长度image数据类型数据类型:与与next类型类似类型类似,可存可存1231-1 字节字节的的二进制二进制。通常用来存放。通常用来存放 word文档、文档、Excel表格、表格、图像等。图像等。5.1.1 数据类型简介数据类型简介2、 日期时间数据类型日期时间数据类型日期时间数据类型用于存储日期和时间数据。日
6、期时间数据类型用于存储日期和时间数据。SQL Server支持两种日期时间数据类型:支持两种日期时间数据类型:datetime和和smalldatetime。lDatetime:1753-1-19999-12-31lSmalldatetime:1900-1-1 2079-6-65.1.1 数据类型简介数据类型简介3、 逻辑数据类型逻辑数据类型SQL Server的逻辑数据类型为的逻辑数据类型为bit,也称为也称为位位数据类型。数据类型。适用于判断适用于判断真真/假假的场合的场合,长度为一个字节。长度为一个字节。取值:取值:1、0、NULL注意事项:注意事项:非非0当当1处理;处理;位列不允许建
7、索引;位列不允许建索引;如果一个表不多于如果一个表不多于8个位列个位列,合起来用一个字节存储。合起来用一个字节存储。5.1.1 数据类型简介数据类型简介4、 数字数据类型数字数据类型SQL Server提供了多种方法存储数值提供了多种方法存储数值,SQL Server的的数字类型大致可分为数字类型大致可分为4种基本类型。种基本类型。(1)整数数据类型整数数据类型有有4种整数数据类型:种整数数据类型:int、smallint、tinyint和和bigint,用于存储不同范围的值。用于存储不同范围的值。l int-存储长度存储长度4字节字节l smallint-存储长度存储长度2字节字节l tin
8、yint -存储长度存储长度1字节字节l bigint -存储长度存储长度8字节字节只要有可能,列尽量取整型5.1.1 数据类型简介数据类型简介4、 数字数据类型数字数据类型(1)整数数据类型整数数据类型(2)浮点数据类型浮点数据类型浮点数据用来存储系统所能提供的浮点数据用来存储系统所能提供的最大精度保留的最大精度保留的实数数据实数数据 。 由于近似的运算存在误差,因此不能用于由于近似的运算存在误差,因此不能用于需要固定精度的运算,如货币。需要固定精度的运算,如货币。l float(n)-可精确到第可精确到第15位小数位小数,占占8个字节的存储空间。个字节的存储空间。 n为指定的精度为指定的精
9、度l real(n)-可精确到第可精确到第7位小数位小数,占占4个字节的存储空间个字节的存储空间5.1.1 数据类型简介数据类型简介 (3)精确数值数据类型精确数值数据类型精确数值数据类型用于存储精确数值数据类型用于存储有小数点且小数点后位有小数点且小数点后位数确定的实数数确定的实数 。格式:格式:decimal(p, s)numeric(p, s)其中其中,p指定精度指定精度,即小数点左边和右边可以存储的十即小数点左边和右边可以存储的十进制数字的最大个数进制数字的最大个数; s指定小数位数。指定小数位数。例如例如:decimal(5, 3),输入输入87.341 结果如何?结果如何?5.1.
10、1 数据类型简介数据类型简介(4)货币数据类型货币数据类型除了除了decimal和和numeric类型适用于货币数据的处理类型适用于货币数据的处理外外,SQL Server还专门提供了两种货币数据类型:还专门提供了两种货币数据类型:money和和smallmoney。显示货币数据值时显示货币数据值时,小数部分仅保留小数部分仅保留2位有效数字位有效数字。 5.1.1 数据类型简介数据类型简介5、其他数据类型、其他数据类型除了以上除了以上4种基本数据类型种基本数据类型,SQL Server还支持其他一些数据类还支持其他一些数据类型。型。(1)Timestamp:时间戳数据类型时间戳数据类型,用于自
11、动记录插入或删除操用于自动记录插入或删除操作的时间。作的时间。(2)sql_variant:可变数据类型。该类型的变量可用来存放大部可变数据类型。该类型的变量可用来存放大部分分SQL Server数据类型的值数据类型的值,最大长度为最大长度为8016字节字节,不支持不支持text、ntext、timestamp和和sql_variant类型。类型。(3)table:表类型。这是一种特殊的数据类型表类型。这是一种特殊的数据类型,存储供以后处理存储供以后处理的结果集。的结果集。(4)uniqueidentifier:GUID类型类型(Global Unique IDentifier, 全全局惟一标
12、识符局惟一标识符)。 5.1.2 空值和默认值空值和默认值n 空值空值(NULL) :空值不同于空白空值不同于空白(空字符串空字符串)或数值零或数值零,通通常表示未填写、未知常表示未填写、未知(Unknown)、不可用或将在以后、不可用或将在以后添加的数据。添加的数据。 n 默认值默认值:是指表中数据的默认取值是指表中数据的默认取值,默认值对象是数据默认值对象是数据库的对象不依附于具体的表对象库的对象不依附于具体的表对象,即默认值对象的作即默认值对象的作用范围是整个数据库。用范围是整个数据库。n 约束约束(1) 非空值约束非空值约束(Not Null) (2) 默认约束默认约束(Default
13、) (3) 惟一性约束惟一性约束(Unique )(4) 主键约束主键约束(Primary Key,也称主关键字约束也称主关键字约束) (5) 外键约束外键约束(Foreign Key,也称为外部关键字约束也称为外部关键字约束) 5.2 表的创建与维护表的创建与维护5.2 表的创建与维护表的创建与维护n 创建表创建表CREATE TABLE 表名表名n 修改表修改表 ALTER TABLE 表名表名n 删除表删除表 DROP TABLE 表名表名5.2 表的创建与维护表的创建与维护例例5-3 对计算列使用表达式。对计算列使用表达式。CREATE TABLE salarys( 姓名姓名 varc
14、har(10), 基本工资基本工资 money, 奖金奖金 money, 总计总计 AS 基本工资基本工资+奖金奖金)5.2 表的创建与维护表的创建与维护例例5-4 定义表定义表autouser自动获取用户名称。自动获取用户名称。CREATE TABLE autouser( 编号编号 int identity(1,1) NOT NULL, 用户代码用户代码 varchar(18), 登录时间登录时间 AS Getdate(), 用户名用户名 AS User_name()5.2 表的创建与维护表的创建与维护例例5-5 创建临时表。创建临时表。CREATE TABLE #students( 学号学
15、号 varchar(8), 姓名姓名 varchar(10), 性别性别 varchar(2), 班级班级 varchar(10)临时表用来暂存数据临时表用来暂存数据, #表示本地临时表表示本地临时表,在当前数据在当前数据库内使用库内使用; # #表示全局临时表表示全局临时表,可在所有数据库在使用可在所有数据库在使用5.3 表中数据的维护表中数据的维护n 对表中数据进行维护有两种方法:对表中数据进行维护有两种方法:使用使用SQL Server管理平台管理平台 使用使用Transact-SQL语句语句(必须熟练掌握必须熟练掌握) Insert、Select、Update、 Delete表中数据的
16、维护表中数据的维护:求是指维护表中的求是指维护表中的数据。4种基本操作: 添加或插入新数据添加或插入新数据 检索现有数据检索现有数据 更新现有数据更新现有数据 删除现有数据删除现有数据5.3 表中数据的维护表中数据的维护n对表中数据进行维护方法之一对表中数据进行维护方法之一使用使用SQL Server管理平台管理平台 实际操作实际操作在数据库中打开表直接实现插入、在数据库中打开表直接实现插入、修改、删除修改、删除问题问题1: 使用使用SQL Server管理平台可以实现少量的管理平台可以实现少量的插入插入, 但但很难实现批量的插入、有条件的大量删除很难实现批量的插入、有条件的大量删除与修改与修改 问题问题2: 数据库中的数据是交给用户方进行管理的数据库中的数据是交给用户方进行管理的, 面对用户的是用户与数据库操作的接口。也就是面对用户的是用户与数据库操作的接口。也就是不能在不能在SQL Server管理平台管理平台上操作,如何实现上操作,如何实现 ? 应用程序开发者用应用程序开发者用SQL语句实现语句实现5.3.1 插入数据插入数据n 插入数据插入数据 语法格式如下:语法格式如下:IN