SQL Server中使用的公共数据类型

在本文中,我们将讨论SQL服务器中使用的常见数据类型。所以我们使用的第一个数据类型是整数数据类型。

整数数据类型声明为关键字INT。现在,整数是所有的整数。示例包括诸如1-99,234之类的值。它们本质上是没有小数点的数字。整数可以存储非常小的数字,例如负20亿,一直到20亿。你可以看到我们在哪里声明一个整数。

所以我将@myInt声明为整数。然后我将myInt设置为值9

DECLARE @myDate as DATETIME;
SET @myDate = '2015-09-15’

我还有一个查询示例,其中我正在使用DaysToManufacture,它被声明为整数数据类型的列,并且我将它乘以24的整数值以找出制作它需要多少小时。

SELECT Name,
       DaysToManufacture,
       DaysToManufacture * 24
       as HoursToManufacture
FROM   Production.Product

 

我想要检查的下两个常见数据类型是VARCHARNVARCHAR

因此,VARCHAR用于存储文本数据,NVARCHAR用于存储Unicode数据。

Unicode数据是扩展的文本数据。它本质上是花哨的数据,通常是外国字符。它是每个值两个字节。

这就是VARCHAR存储8,000个字符的原因,但NVARCHAR只能存储4,000个字符,因为NVARCHAR每个值使用两个字节。

文本值的示例将类似于“Hello Kitty”或诸如“52132 Blue Bell Avenue”之类的地址。它可以像部件号“XF2T-14401-AA;”这是福特部件号。或者它可以是一段文字。在这里,您可以看到我们从AdventureWorks数据库中定义了nvarchar50)的位置。

我认为使用VARCHARNVARCHAR指出,即使名称可以定义为字符50,如果您在列中存储短名称(如Bob),我也不会占用所有50个字符。

所以它不会像Bob47个空格那样。所以,关于VARCHAR的好处是它只占用了与你放入的空间大致相同的空间。

我们将要讨论的下一个常见数据类型是DATETIME。这用于存储时间点。例子包括“196810231:45”。你可以在这里看到它显示小时,分钟,秒和百分之一秒......或千分之一秒。

这是2012年之前最后一个可能时刻的另一个例子。所以这是1231日差不多午夜。所以DATETIME的范围可以从175311日到123119 ......或者我猜想...... 9999

因此,对于当代日期,我认为DATETIME非常适合。但是,如果您正在编写历史应用程序并且需要工作,例如,埃及时代的日期,您可能需要提出一种不同的方式来存储该信息,因为,如您所见,我们的DATETIME只有可以追溯到1753年。

所以这是一个声明DATETIME的例子。您看到我们将日期设置为DATETIME,我们可以使用单引号并输入我们的日期,单引号中的日期可以是年--日,并且它将隐式转换为DATETIME

DECLARE @myDate as DATETIME;
SET @myDate = '2015-09-15’

这个DATETIME,奇怪的是,它将以零,零,零,零,零,零作为小时,分钟和秒。所以它会在date上暗示(例如2015-09-15 00:00:00

使用DATETIME数据类型的好处是,您可以使用在DATETIME上运行的内置函数,例如year。这将是一个查询的示例,该查询将按年份汇总并雇用雇员的数量。

SELECT   YEAR(HireDate),
         Count(*)
FROM     HumanResources.Employee
GROUP BY YEAR(HireDate)
ORDER BY YEAR(HireDate)

DECIMAL数据类型用于显示小数值,因此包含小数。将DECIMAL数据类型与另一种称为FLOAT的数据类型区分开来的是DECIMAL数据类型非常适合财务应用程序。

您将看到DECIMAL数据类型是使用精度和比例定义的。

这给了他们非常好的确定性质。你可以看到我已经定义了DECIMAL8,3)的一些例子,这意味着我有8个总数字和3个比例。

这里有一些数字的例子,你可以看到我在整个数字位置有五个,然后在decimal中有三个,总共八个。

因此,这里的经验法则是,精度必须小于38位,比例也是如此。因此,比例可以小于精度,精度将小于或等于38位。

这是一个声明decimal的例子。这里有七位总数,其中四位是小数部分。

DECLARE @myDecimal as DECIMAL(7,4);
SET @myDecimal = 365.3235;

有一点需要指出的是,如果我将这个变量设置为3,651.3235,我会得到一个溢出错误,因为我只将它定义为在整数中有三个位置。

如果我尝试定义变量或将其赋值为4,它就会溢出。使用小数或浮点数时要指出的一点是,当你在SQL中指定它们时,需要在语句中加上小数位。

SELECT   DISTINCT Weight
FROM     Production.Product
WHERE    Weight
BETWEEN  29.00 and 189.00
ORDER BY Weight DESC

所以,在这里,你看到我只是说29189之间我说的是29.00189.00之间。这有助于表示为十进制。

因此,DECIMAL数据类型的伴侣是FLOAT数据类型,当您使用科学值时,这是用于十进制值的非常好的数据类型。

原因是,decimal 可以用于大范围的数字。它无法处理float所能处理的数字量。

如果你看这里,float可以处理多达306个零。所以,基本上是1.79乘以10308次方。所以它就像179后跟306个零。

这里是

179000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

所以,这是一个非常非常大的数字。例如,这里是阿伏伽德罗数6.02 E23),它是摩尔中的的原子数。已经过了数万亿了。一个非常大的数字。

FLOAT的其他示例是2.50,或者我想指出的是在某些情况下,当您在内部输入2.50时,该数字将不会完全表示为2.50但可能表示为2.499999

因此,当您将值与FLOAT进行比较时,它变得有点棘手,因为内部表示可能是一个小数位。

我想要介绍的最后一种数据类型是BIT数据类型。这用于表示是或否,或真或假。示例包括1表示true0表示false

您可以将真实文本值转换为1false将转换为0

DECLARE @myBit as Bit;
SET @myBit = 1

所以,这里有一个例子,我从SalaryFlagged1的人力资源中获取所有职位。

SELECT DISTINCT JobTitle
FROM   HumanResources.Employee
WHERE  SalariedFlag = 1

 这与我从SalaryFlaggedtrue的同一查询中选择的情况相同,它将在这里隐式地取这个true,并将其转换为1,因为它知道这是一个BIT,因此,它将转换为此数据类型为1

SELECT DISTINCT JobTitle
FROM   HumanResources.Employee
WHERE  SalariedFlag = 'TRUE'

我将一个变量声明为BIT,然后我可以将该bit设置为10。所以这些是SQL中使用的主要数据类型。

仍然有很多数据类型需要学习。总的来说,如果你学习了这七种常见的数据类型,这些是你今天可以使用的主要数据类型。设计和构建您的数据库。

 

原文地址:https://www.codeproject.com/Articles/1279827/Common-Data-Types-used-in-SQL-Server

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值