SQL



SQL含义

SQL是结构化查询语言(Structured Query Language) 的英文缩写,是一种用于管理关系型数据库,并与数据库
中的数据进行通讯的计算机语言。SQL 与RDBMS协同工作,来定义数据库的结构、存储数据、操纵数据、获取数
据、控制对数据的访问以及确保数据的完整性。



SQL语句

类型作用
数据定义语言(DDL)创建,删除,修改,定义数据库和表
数据查询语言(DQL)检索数据
数据操作语言(DML)增,删,改数据
数据控制语言(DCL)创建,删除,修改用户,管理用户操作范围(权限)



数据类型

整数数据类型

数据类型描述存储
bigint长整型,取值范围从-2^63 到2^63-18 bytes
int整型,取值范围从-2^31 到2^31-14 bytes
smallint短整型,取值范围从-2^15 到2^15-12 bytes
tinyint微整型,取值范围从0到2551 bytes

浮点数据类型

数据类型描述存储
decimal(m,d)和numeric带固定精度和小数位的数据数据类型
float(m,d)多精度浮点型,占用的字节根据其小数的位数而定
real(m,d)单精度浮点型4 bytes

货币数据类型

数据类型存储
smallmoney4 bytes
money8 bytes

Character字符串类型

数据类型描述存储(max)
char(n)固定长度的字符串8000 bytes
varchar(n)可变长度的字符串8000 bytes
varchar(max)可变长度的字符串1073741824 bytes
text可变长度的字符串2GB

char:定长字符串,不论存储字符串的长度是多少,保存时占用文件的大小永远是该类型指定的最大值
varchar:可变长字符串,存储数据时会按照数据的大小自动调整所占用的存储空间,但注意只能往小收
缩,不能超过该类型指定的最大长度。

Unicode字符串类型

数据类型描述存储(max)
nchar(n)固定长度的Unicode数据4000 bytes
nvarchar(n)可变长度的Unicode数据4000 bytes
nvarchar(max)可变长度的Unicode数据36870912 bytes
ntext可变长度的Unicode数据2 GB

varchar和nvarchar的区别:
一般来说,如果含有中文字符,用nchar/nvarchar,
如果纯英文和数字,用char/varchar
它们的区别概括成:
CHAR,NCHAR定长,速度快,占空间大,需处理
VARCHAR,NVARCHAR,TEXT不定长,空间小,速度慢,无需处理
NCHAR、NVARCHAR、NTEXT处理Unicode码

Binary类型数据类型

数据类型描述存储(max)
Bit0,1或NULL
Binary(n)固定长度的二进制数据8000 bytes
vartinany(n)可变长度的二进制数据8000 bytes
vartinary(max)可变长度的二进制数据2 bytes
image可变长度的二进制数据2 GB

bit:也称为逻辑数据类型,在java或C #中指Boolean的作用,负责存储0或1的值

日期和时间数据关型

数据类型描述存储数据格式
datetime从1753年1月1日到9999年12月31日,精度为333毫秒。8 byesyyyy -MM-dd hh:mm:ss. xxx
datetme2从1753年1月1日到9999年12月31日,精度为100纳秒。6-8 bytesyyy-MM-dd hh:mm: ss. nnnnnn
smaldatetime从1900年1月1日到2079年6月6日,精变为1分钟。4 byes
date仅存储日期。从0001年1月1日到9999年12月31 日。3 bytesyyyy-MM-dd
time仅存储时间。精度为100纳秒。3-5 byteshh: mm: ss. nnnnnnn
datetmeoffset与daletme2相同,外加时区偏移。8-10 bytes
timestamp存储唯一-的数字。每当创建或修改某行时。该数字会更新。timestamp 基于内部时钟。对timestamp应真实时间。每个表只能有一个tmestamp变量。



数据索引


索引的分类

SQL SERVER中有多种索引类型。
1. 按存储结构区分:“聚集索引(又称聚类索引,簇集索引)”, “分聚集索引(非聚类索引,非簇集索引)”。
2. 按数据唯一性区分:“唯一索引”,“非唯一索引”。
3. 按键列个数区分:“单列索引”,“多列索引”。

聚集索引

1.聚集索引是一种对磁盘上实际数据重新组织以按指定的一列或多列值排序
2.由于聚集索引是给数据排序,不可能有多种排法,所以一个表只能建立一个聚集索引。科学统计建立这样的素引需要至
少相当与该表1 20%的附加空间,用来存放该表的副本和索引中间页,但是他的性能几乎总是比其它索引要快。

非聚集索引

1.sqlserver默认情况下建立的索引是非聚集索引,他不重新组织表中的数据,而是对每一行存储索引列值并用一个指针指
向数据所在的页面。对查取数据的效率也是具有的提升空间,而不需要全表扫描。
3.一个表可以拥有多个非聚集索引,每个非聚集索引根据索引列的不同提供不同的排序顺序。



管理索引


创建索引

在这里插入图片描述

UNIQUE :  					用于指定为表或视图创建唯一索引,即不允许存在索引值相同的两行。
CLUSTERED:					用于指定创建的索引为聚集索引。
NONCLUSTERED :				用于指定创建的索引为非聚集索引。
index_name:					用于指定所创建的索引的名称。
table:						用于指定创建索引的表的名称。
view:						用于指定创建索引的视图的名称。
ASCIDESC :					用于指定具体某个索引列的升序或降序排序方向。
Column:						用于指定被索引的列。
PAD_ INDEX :				用于指定索引中间级中每个页(节点).上保持开放的空间。
FILLFACTOR = fillfactor :	用于指定在创建索引时,每个索引页的数据占索引页大小的百分比, fillfactor的值为1到100
IGNORE_ DUP. _KEY :			用于控制当往包含于一个唯一聚集索引中的列中插入重复数据时SQL Server所作的反应。
DROP_ EXISTING :			用于指定应删除并重新创建已命名的先前存在的聚集索引或者非聚集索引。
STATISTICS_ NORECOMPUTE :	用于指定过期的索引统计不会自动重新计算。
SORT_INTEMPDB:				用于指定创建索引时的中间排序结果将存储在tempdb数据库中。
ON filegroup :				用于指定存放索引的文件组。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值