SQL Server数据类型
SQL numeric数据类型
作用: 存储小数,但是和编程语言的float等不同,即使数据是3.00,存储时也会存储两位小数点后的数字。
float类型 当你给定的数据是整数的时候,那么它就以整数给你处理。0.00而实际存储是0.
用途:
用于保存对准确精度有重要要求的值,例如与金钱有关的数据。
用法:
例如:
salary DECIMAL(5,2)
-
5 (精度(precision)) 代表重要的十进制数字的数目
-
2 (数据范围(scale)) 代表在小数点后的数字位数。在这种情况下,
因此,salary 列可以存储的值范围是从 -99.99 到 99.99。
(实际上 MySQL 在这个列中可以存储的数值可以一直到 999.99,因为它没有存储正数的符号)。
管理大对象类型数据
大对象(Large Object,简称LOB)实际上是指那些包含任何数字化信息的数据字段,数字化信息可以是音频、视频、图像以及文档等。
这类数据多以大容量文件的形式出现,如声音文件或图像文件等。
SQL Server 2016能够更高效地存储和检索大型字符、Unicode 和二进制数据,包括varchar(max)、nvarchar(max) 和 varbinary(max) 等大值数据类型,由此可以使用大值数据类型来存储最大为 个字节的数据。
例如,在 SQL Server 2016中,可以定义能存储最多可达 字节的字符、整数和Unicode数据的变量
分类
通常情况下,大对象数据又可分为3种数据类型:
- 二进制大对象数据(BLOB)
- 字符巨型对象数据(CLOB)
- 双字节巨型大对象(DBCLOB)数据
BLOB用于保存长度可变的字符串数据,以字节为量度单位,字符串最长可达2GB。
BLOB也可以用于保存诸如图像(.jpg、.gif、.bmp)和声音(.wav、.wma、.mp3)等多媒体数据,以及保存诸如Word一类的文档(.doc、.txt、.pdf)数据。
CLOB类型的字段主要用于保存大容量的文本数据,即经常出现在其他数据库系统(例如Access数据库)中的备注字段。
CLOB型的字段最大能够保存高达4GB的字符串型文本。
DBCLOB用于保存变长的双字节Unicode字符串数据,最多可以保存4GB的字符串数据,例如文档等。
大对象数据的使用方法
SQL Server 2016为向数据库中导入数据提供了很多方法,
- BCP工具 (大量数据导入或导出数据库)
- BULK INSERT命令 (Transact-SQL)
BULK INSERT命令可以按照用户指定的格式将包括LOB文件在内的数据文件加载到数据表或视图中。
BULK INSERT命令为用户提供了大量的参数,因此应用起来非常灵活和方便。这里仅介绍该命令提供的两种主要形式:
BULK INSERT TableName FROM DataFile WITH (FIELDTERMINATOR = 'delimeter') -- 或: BULK INSERT TableName FROM DataFile WITH(FORMATFILE = 'format_file_path')
文本文件的导入
第1种格式常用于向数据表中导入结构化的文本文件(如Text文件)等。
【例7.24】利用BULK INSERT命令向teaching 数据库中的st_score数据表添加数据。该表的结构如图7-5所示。
如果需要批量向该表输入记录,可以为此创建一个文本文件test101.txt,且位于D:\SQLTXT文件夹之下,将其按照如下形式进行排列:
18025121107/梁欣那/c05109/62.00 18035222201/夏文开/c05109/92.00 18135222201/夏文格/c08171/82.00 18137221508/平元/c05109/91.00 18137221508/平冬/c08106/95.00 18137221508/平钒/c08123/89.00
此时可以使用BULK INSERT命令将test101.txt中的记录直接插入到数据表st_score中。
由于在test101.txt文件中,数据字段间以“/”为分隔符,因此使用BULK INSERT的具体代码如下所示:
BULK INSERT st_score FROM 'D:\SQLTXT\test101.txt' WITH (FIELDTERMINATOR = '/')
图像文件的导入
导入图像文件需要为BULK INSERT命令的WITH参数提供用于说明插入数据方式的格式文件format_file_path,此方式非常繁琐。也可以使用OPENROWSET命令实现图像文件导入。
【例7.25】在teaching数据库中创建expic表,然后向该表添加新的记录。使用OPENROWSET命令的方法添加大容量数据。
操作步骤如下。
(1)创建expic表,该数据表的结构如图7-7所示。下面以teaching数据库中的expic数据表为例,向其中添加一条新的记录。
(2)在查询编辑器中输入如下代码:
INSERT INTO expic(studentno, sname, address,picture) SELECT '18120211357','苏钡' , '中国山东青岛' , *FROM OPENROWSET(BULK N'd:\sqlpic\girl.jpg', SINGLE_BLOB) AS 图像
(3)执行下列命令后,一条新的记录将被添加到expic数据表中。此时可以读取新加入记录的信息,直接查看其Picture域的长度是否为25352字节。如果是,则说明图像文件已被成功地输入到记录的Picture字段中,结果如图7-8所示。
SELECT studentno AS 学号, sname AS 姓名, address AS 家庭住址, DataLength(Picture) AS 照片大小 FROM expic WHERE studentno ='18120211357'
本文作者:kingwzun
本文链接:https://www.cnblogs.com/kingwz/p/16888084.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2021-11-14 泛型:参数化类型
2021-11-14 JAVA集合框架
2021-11-14 7-4 sdut-String-5 图书价格汇总(II) (10 分)