想学好SQL Server吗?这有一份SQL Server语言基础~~

1、SQL Server语言功能概述

SQL功能动词
数据定义CREATE、DROP、ALTER
数据查询SELECT
数据操纵INSERT、UPDATE、DELETE
数据控制GRANT、REVOKE、DENY

2、SQL Server提供的数据类型类别

数据类型类别名
精确数字类型Unicode字符串类型
近似数字类型二进制字符串类型
日期和时间类型其他数据类型
字符串类型
  • 2.1 数字类型

  • 2.1.1 精确数字类型
    数据类型范围存储
    bitbit数据类型是整型,其值只能是0、1或NULL。这种数据类型用于存储只有两种可能值的数据,如Yes 或No、True 或False 、On 或Off. (很省空间的一种数据类型,如果能够满足需求应该尽量多用)。SQL Server 数据库引擎可优化bit列的存储。如果表中有不多于8个列是bit类型,则这些列公用1字节存储。如果bit 类型的列为9~16个,则这些列作为2字节存储,以此类推,字符申值TRUE和FALSE可转换为bit值: TRUE将转换为1. FALSE将转换为01字节
    tinyinttinyint 数据类型能存储从0到255 之间的整数。它在你只打算存储有限数目的数值时很有用。1字节
    smallint存储从- 215(-32768)到215-1(32767)之间的整数。这种数据类型对存储一些常限定在特定范围内的数值型数据非常有用。 (如果tinyint类型太单调不能满足您的需求,您可以考虑用smallint类型,因为这个类型相对也是比较安全的,不接受恶意脚本内容的嵌入)2字节
    int存储从- 2的31次幂(-2147483648)到2的31次幂 (2147483 647)之间的整数。存储到数据库的几乎所有数值型的数据都可以用这种数据类型4字节
    bigint存储从-263( -9 223 372 036 854 775 808)到263-1 (9 223 372 036854 775 807 )范围的整数8字节
    decimal[(p[,s])]或numeric[(p[,s])]使用最大精度时,有效值的范围为-1038+1到+1038- 1。decimal 的ISO同义词为dec和dec(p, s)。numeric 在功能上等价于decimal。 p:精度最多可以存储的十进制数字的总位数,包括小数点左边的和右边的位数。该精度必须是1-38之间的值。默认精度是18,s:小数点右边的数字位数至多17个字节
    定点小数类型
    精度存储字节数
    1~95
    10~199
    20~2813
    29~3817
  • 2.1.2近似数字类型
    数据类型说明存储
    Float[(n)]-1.79E十308 ~ - 2.23E- 308、 0,以及2.23E- 308 ~ 1.79E+ 308取决于n的值
    real-3.40E+38 ~-1.18E- 38、0,以及1.18E- 38 ~ 3.40E+ 384字节
    float[(n)]中的n为用于存储float数值尾数的位数(以科学计数法表示),因此可以确定精度和存储大小。n的值介于1~53,默认值为53。下表列出了n的值对应的精度和存储空间。
    Float[(n)]中n的值对应的精度和存储空间
    n值精度存储
    1~247位数4字节
    25~5315位数8字节

    说明: SQL Server将n视为下列两个可能值之一。如果1≤n≤24,则将n视为24。如 果25≤n≤53,则将n视为53
  • 2.2字符串类型

    目前字符的编码方式有两种:非Unicode和Unicode编码。非Unicode编码指的是不同国家或者地区的编码长度不一样;Unicode编码:指不管对哪个地区、哪个语言均采用双字节(16字节)编码,即将世界上所有的字符进行统一的编码。

  • 2.2.1非Unicode字符串类型
    非Unicode字符串类型
    数据类型说明存储
    Char[(n)]固定长度,非Unicode字符串数据。n用于定义字符串长度,取值范围为1~8000。char 的ISO同义词为character(若实际字符串控件小于n,系统自动在后面补空格),char(2)才可以放一个汉字n字节
    Varcahr[(n、max)]可变长度,非Unicode字符串数据。n用于定义字符串长度,取值范围为1~ 8000。max指示最大存储大小是231-1字节( 2GB)。varchar的ISO同义词为char varying或character varyingn+2字节
    text可存储231-1(2 147 483 647)个长度可变的非Unicode字符数据一个字符一个字节

    说明: 如果没有在数据定义或变量声明语句中指定n,则默认长度为1.

    n值比较小(小于4),用char类型更好些。


  • 2.2.2 统一编码字符串类型(Unicode)
    Unicode字符串类型
    数据类型说明存储
    nchar[(n)]固定长度的Unicode字符串数据。n用于定义字符串长度,取值范围为1~4000。nchar 的ISO同义词为national char和national character,nchar(1)就可以放一个汉字。2n字节
    nvarchar[(n、max)]可变长度的Unicode字符串数据。n用于定义字符串长度,取值范围为1~4000。max指示最大存储大小是231-1字节(2GB)。nvarchar 的ISO同义词为national char varying和national character varying2n+2字节
    ntext长度可变的Unicode字符串数据,字符串最大长度为230- 1(1 073 741 823)字节。ntext的ISO同义词为national text所输入字符串长度的2倍

    说明: 如果没有在n数据定义或变量声明语句中指定n,则默认长度为1.


    前缀var,是可变长的意思,nchar/char,如果长度没有占满,会补空格,nvarchar/varchar是变长的,长度占不满也不补空格
    Unicode和非Unicode使用建议
    数据类型使用建议
    char、nchar列数据项的大小-致
    varchar、nvarchar列数据项的大小差异相当大
    varchar(max) 、nvarchar(max)列数据项大小相差很大,而且大小可能超过8000字节
    nchar、nvarchar希望支持多语言,最大限度地消除字符转换问题
  • 2.3二进制字符串类型

  • 2.3.1
    二进制字符串类型
    数据类型说明存储
    binary(m)]固定长度为n字节的二进制数据,n的取值从1到8000n字节
    varbinary[(n、max)]可变长度二进制数据。n的取值从1到8000,max指示最大存储大小为231-1字节。varbinary 的ANSI SQL同义词为binary varying所输入数据的实际长度+2字节
    image长度可变的二进制数据,二进制数据最大长度为231-1(2 147 483 647)字节0~231-1字节

    说明: 如果没有在数据定义或变量声明语句中指定n,则默认长度为1.


    注意:在Microsoft SQL Server的未来版本中将删除ntext、text 和image数据类型。请避免在新开发工作中使用这些数据类型,并考虑修改当前已使用这些数据类型的应用程序。请改用nvarchar(max)、 varchar (max)和varbinary (max)。

  • 2.4日期和时间类型

  • 2.4.1日期和时间类型
    日期和时间类型
数据类型说明范围存储
date定义一个日期,格式:YYYY-MM-DD0001-01-01~9999-12-313字节
time定义一天中的时间,格式:hh:mm:ss[.n*],n*是0到7位的数字,范围为0到9999999,表示秒的小数部分00:00:00.0000000~23:59:59.99999995字节
datetime2定义结合了24小时制时间的日期。可将datetime2视作现有datetime 类型的扩展,其数据范围更大,默认的小数精度更高,并具有可选的用户定义的精度,格式::YYYY-MM-DD hh:mm:ss[.n*]n*代表0到7位的数字,范围从0到9999999,表示秒的小数部分。准确度为100ns,默认精度为7位数0001-01-01~9999-12-31精度小于3时为6字节;精度为3和4时为7字节。所有其他精度则需要8字节
datetimeoffset用于定义一个与采用24小时制并可识别时区的一日内时间相组合的日期YYYY-MM-DD hh:mm:ss[.nnnnnn] [{±}hh:mm]n*是0到7位的数字,范围为0到999999,表示秒的小数部分hh是两位数,范围为- 14到+ 14mm是两位数,范围为00到590001-01-01~9999-12-3110字节

SQL Server中的字符串常量要用单引号括起来,比如'计算机系'。
日期和时间类型的数据常量要用单引号括起来,比如'2015-8- 20'、'2015-8-22 10:23:50'。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值