SQL 语言
SQL语言的特点
- 一体化。SQL语言风格统一,可以完成数据库活动中的全部工作,包括创建数据库、定义模式、更改和查询数据以及安全控制和维护数据库等。
- 高度非过程化。在使用SQL语句访问数据库时,用户没有必要告诉计算机如何一步步完成任务,只需要用SQL语言描述要做什么就行了,数据库管理系统会自动完成全部工作。
- 面向集合的操作方式。SQL语言采用集合操作方式,不仅查询结果是记录的集合,而且插入、删除和更新操作也是记录的集合。
- 提供多种方式使用。SQL既是自含式语言,又是嵌入式语言。自含式语言可以独立地联机交互,即用户可以直接以命令的方式交互使用。嵌入式语言是指SQL可以嵌入到向Java、C#等高级程序设计语言中使用。
- 语言简洁。SQL语法简单,易学易用。
SQL语言的功能
SQL语言按其功能可分为4大部分:数据定义、数据查询、数据操作、数据控制。相关谓词为:
| SQL功能 |
谓词 |
| 数据定义(DDL) |
CREATE、DROP、ALTER |
| 数据查询(DQL) |
SELECT |
| 数据操纵(DML) |
INSERT、UPDATE、DELETE |
| 数据控制(DCL) |
GRANT、REVOKE、DENY |
- 数据定义功能用于定义、删除和修改数据库中的对象,数据库、关系表、视图、索引等都是数据库对象。
- 数据查询功能用于实现查询数据的功能,数据查询是数据库中使用最多的操作。
- 数据操作功能用于添加、删除和修改数据库。
- 数据控制功能用于控制用户对数据的操作权限。
SQL支持的数据类型
主要是 Microsoft SQL Server 中的类型
数值型
精确数字
| 数据类型 |
描述 |
存储 |
| tinyint |
允许从0到255的所有数字 |
1字节 |
| smallint |
允许从-32 768到32 767的所有数字 |
2字节 |
| int |
允许从-2 147 483 648 到 2 147 483 647 的所有数字 |
4字节 |
| bigint |
允许从 -9 233 372 036 854 775 808 到 9 233 372 036 854 775 807 的所以数字 |
8字节 |
decimal(p,s)
或
numeric(p,s) |
固定精度和比例的数字,允许从 -10^38+1 到 10^38-1 之间的数字,p表示可以存储的最大位数(小数点左侧和右侧),p必须是 1~38 之间的值。默认是18;s表示小数点右侧存储的最大位数,s必须是0到p之间的值,默认是0 |
5-17字节 |
| smallmoney |
介于 -214 748. 364 8 和 214 748. 364 7 之间的货币数据 |
4字节 |
| money |
介于 -922 337 203 685 477. 850 8和 922 337 206 685 477. 580之间的货币数据 |
8字节 |
近似数据
| 数据类型 |
描述 |
存储 |
| float(n) |
从 -1.79E+308 到 1.79E+308 的浮动精度数字数据;参数n表示该字段保留4字节还是8字节,float(24)保存4字节,float(53)保存8字节,n的默认值为53 |
4或8字节 |
| real |
从 -3.40E+38 到 3.40E+38 的浮动精度数字数据 |
4字节 |
日期类型
| 数据类型 |
描述 |
存储 |
| datetime |
从1753年1月1日到9999年12月31日,精度为3.33ms |
8字节 |
| datetime2 |
从1753年1月1日到9999年12月31日,精度为100ns |
6~8字节 |
| smalldatetime |
从1900年1月1日到2079年6月6日,精度为1min |
4字节 |
| date |
仅存储日期,从0001年1月1日到9999年12月31日 |
3字节 |
| datetimeoffset |
与datetime2相同,外加时区偏移 |
8~10字节 |
| timestamp |
存储唯一的数字,每当创建或修改某行时,该数字会更新。timestamp基于内部时钟,不对应真实时间,每个表只能有一个timestamp变量 |
|
字符串型
普通字符编码串
| 数据类型 |
描述 |
存储 |
| char(n) |
固定长度的字符串,最多8000个字符 |
n字节 |
| varchar(n) |
可变长度的字符串,最多8000个字符 |
由实际长度决定 |
| varchar(max) |
可变长度的字符串,最多1073741824个字符 |
由实际长度决定 |
| text |
可变长度的字符串,最多2GB字符数据 |
由实际长度决定 |
统一字符编码串
| 数据类型 |
描述 |
存储 |
| nchar(n) |
固定长度的Unicode数据,最多4000个字符 |
n字节 |
| nvarchar(n) |
可变长度的Unicode数据,最多4000个字符 |
由实际长度决定 |
| nvarchar(max) |
可便长度的Unicode数据,最多536870912个字符 |
由实际长度决定 |
| ntext |
可变长度的Unicode数据,最多2GB字符数据 |
由实际长度决定 |
二进制串
| 数据类型 |
描述 |
存储 |
| bit |
允许0,1或NULL |
|
| binary(n) |
固定长度的二进制数据,最多8000B |
n B |
| varbinary(n) |
可变长度的二进制数据,最多8000B |
由实际长度决定 |
| varbinary(max) |
可变长度的二进制数据,最多2GB |
由实际长度决定 |
| image |
可变长度的二进制数据,最多2GB |
由实际长度决定 |
其他类型
| 数据类型 |
描述 |
| sql_variant |
存储最多8000字节不同数据类型的数据,除了text、ntext、timestamp |
| uniqueidentifier |
存储全局标识符(GUID) |
| xml |
存储XML格式化数据,最多2GB |
| cursor |
存储对用于数据库操作的指针的引用 |
| table |
存储结果集,供稍后处理 |
所有评论(0)