T-SQL语法基础
一、T-SQL语言的分类
DDL-数据定义语言
create-创建
alter-修改
drop-删除(针对对象)
DML-数据操作语言
Insert-插入
update-更新
delete-删除(针对对象的内容)
DQL-数据查询语言
select-查询
DCL-数据控制语言
revoke-撤销
deny-拒绝
grant-同意、授权
二、语法元素
批处理元素
go-语法结束标志,执行前面的语句或一个完成的处理过程
exec-调用执行存储过程
注释
行注释:--
块注释:/* */
三、数据类型
整数型
Bigint:8个字节,范围:-263~263-1,精度:19
Integer:4个字节,范围:-231~231-1,精度:10
Smallint:2个字节,范围:-215~215-1,精度:5
Tinyint:1个字节,范围0~255,精度:3
精确数值型
Numeric(5,3) -共五位数,其中三位是小数
Decimal(15,5)-共15位数,其中五位是小数(默认精度为18)
Decimal(p,s)-p为精度,s为小数位数
精度为1-9,长度为5个字节
精度为10-19,长度为9个字节
精度为20-28,长度为13个字节
精度为29-38,长度为17个字节
注:Numeric与Decimal在是同义词,可互换使用,建议使用Decimal
近似数值型
real等价于float(24)
float[(n)]其中n为存储float数值尾数的尾数(以科学记数法表示),因此可以确定精度和存储大小。如果指定了n,则它必须是介于1和53之间的某个值。n的默认值为53。
| n 值 | 精度 | 存储大小 |
|---|---|---|
| 1-24 | 7 位数 | 4 个字节 |
| 25-53 | 15 位数 |
8 字节 |
货币型
Money 范围:-263~263-1,精确小数后4位,占8个字节
Smallmoney 范围:-231-231-1,精确小数后4位,占4个字节
位型
bit 表示0或1
SQL Server 数据库引擎 可优化 bit 列的存储。 如果表中的 bit 列为 8 列或更少,则这些列作为 1 个字节存储。 如果 bit 列为 9 到 16 列,则这些列作为 2 个字节存储,以此类推。
字符串值 TRUE 和 FALSE 可转换为 bit 值:TRUE 转换为 1,FALSE 转换为 0。
转换为 bit 会将任何非零值升为 1。
日期时间型
date 范围:0001-01-01 到 9999-12-31 字符长度:10位 存储大小:固定3个字节
datetime 日期范围:1753 年 1 月 1 日到 9999 年 12 月 31 日 时间范围:00:00:00 到 23:59:59.997 字符长度:最低 19 位到最高 23 位 存储大小:8 字节
smalldatetime 日期范围:1900-01-01 到 2079-06-06 时间范围:00:00:00 到 23:59:59(2017-07-07 23:59:59 将舍入为2017-07-08 00:00:00) 字符长度:最高19位 存储大小:固定4个字节 精度:一分钟
time 范围:00:00:00.0000000 到 23:59:59.9999999 存储大小:固定5个字节 精度:100纳秒 字符长度:最小 8 位 (hh:mm:ss),最大 16 位 (hh:mm:ss.nnnnnnn)
字符型
char 固定长度(以空格填补多余长度)
varchar 可变长度
Nchar “Nuicode”固定长度
Nvarchar “Nuicode”可变长度
“Nuicode”国际标准码:双字节模式 如:一个汉字=两个字节
文本型
text 一个字符占用一个字节,数据的最大长度为231-1(2,147,483,647)个字符
Ntext 一个字符占用两个字节,数据的最大长度为230-1(1,073,741,823)个字符
使用数据类型的指导原则
1.如果列的长度可变,使用某个可变数据类型
2.要为以后数据的拓展预留空间
3.精确数值型,建议使用decimal
4.如果存储量超过了8000字节,使用text.如果存储量小于8000字节,使用char,可能时,最好使用varchar,原因在于它比text和image有更强的功能
5.对于货币类型来说,使用money数据类型
6.不要把float和real数据类型作为主键,原因在于这些数据类型的值是不精确的,它们不适于在比较中使用
四、标识符
标准标识符
标准标识符可以包含1到128位字符,包括字母,符号(_、@或#)及数字。标准标识符中不允许有空格。
限定标识符([ ]/””)
当对象名字包含空格时
当保留关键字被用作对象名或对象部分的名字时
标识符的命名规则
名字尽量短
尽量使用有意义的名字
使用简单的清晰的命名习惯
使用能区分出对象类型的标识符,尤其是视图和存储过程的名字
保持对象名和用户名的唯一性
特殊标识符
# 局部临时变量
## 临时变量
@ 局部变量
@@ 全局变量
五、变量
变量是可以赋值的SQL语句元素。
在T-sql中,你可以使用局部变量。
用户可以使用decare语句来定义一个局部变量,通过使用set和select语句为这个局部变量赋值,局部变量名前必须带有@.如果一个变量前有两个@@符号,那么它将被作为函数处理。
例:定义一个字符型变量,赋值为"customer",并显示变量内容
declare @tempName varchar(20)
set @tempName='customer'
select @tempName
六、运算符
概述
运算符是进行数学计算、字符操作及字段、常量和变量比较的符号。
运算符的种类
算述运算符:+,-,*,/,%
比较运算符:=,>,<,>=,<=,<>
字符运算符:+
逻辑运算符:and,or,not用于连接where 子句中的查询条件
运算符的优先级
| 运算符 | 优先级 |
| +(正)-(负)~(按位取反) | 1 |
| *、/ | 2 |
| +(加),-(减) | 3 |
| =,>,<,>=,<=,<> | 4 |
| Not | 5 |
| And | 6 |
| all,between,in,like,or | 7 |
| =(赋值) | 8 |
T-SQL语法基础的更多相关文章
- SQL语法基础之高级应用
SQL语法基础之高级应用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.存储过程与函数 1>.CREATE PROCEDURE 用来创建存储过程 mysql> ? ...
- SQL语法基础之DROP语句
SQL语法基础之DROP语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看DROP帮助信息 mysql> ? DROP Many help items for yo ...
- SQL语法基础之SELECT
SQL语法基础之SELECT 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.SELECT查看帮助信息 1>.查看SELECT命令的帮助信息 mysql> ? SEL ...
- SQL语法基础之ALTER语句
SQL语法基础之ALTER语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看ALTER的帮助信息 mysql> ? ALTER Many help items fo ...
- SQL语法基础之INSEART语句
SQL语法基础之INSEART语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看帮助信息 1>.查看INSERT方法的帮助信息 mysql> ? INSERT ...
- SQL语法基础之UPDATE语句
SQL语法基础之UPDATE语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看UPDATE语句的帮助信息 1>.查看UPDATE的帮助信息 mysql> ? ...
- SQL语法基础之DELETE语句
SQL语法基础之DELETE语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看帮助信息 1>.查看DELETE的帮助信息 mysql> ? DELETE Na ...
- SQL语法基础之CREATE语句
SQL语法基础之CREATE语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看帮助信息 1>.使用“?”来查看MySQL命令的帮助信息 mysql> ? CR ...
- oracle PL/SQL语法基础
目录 数据类型 定义变量 PL/SQL控制结构 参考资料 Oracle10g数据类型总结 PL/SQL之基础篇 数据类型 学习总结 字符类型 char.nchar.varchar.nvarchar:有 ...
- SQL——语法基础篇(上)
用数据库的方式思考SQL是如何执行的 虽然 SQL 是声明式语言,我们可以像使用英语一样使用它,不过在 RDBMS(关系型数据库管理系统)中,SQL 的实现方式还是有差别的.今天我们就从数据库的角度来 ...
随机推荐
- 【转】js 好的程序设计,应该什么时候使用 try catch 呢?
比如在检测浏览器是否支持某些功能的时候 if (!xx) { console.error('此浏览器不支持 xx 功能') } 还是 try { xx; } catch(e) { throw new ...
- Nginx安装及配置
Nginx是一款速度快,功能强大的http以及反向代理服务器,经过简单的配置之后即可以用来托管页面. 不幸的是,和很多其他系统管理工具一样,相关的原理教程和配置说明文档都很少.虽然官方提供了一个wik ...
- redis常见重要性能指标数据分析和相关问题解决方案
性能相关的数据指标 通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息.通过这些信息来分析文章后面提到的一些性能指标. info命令输出的数 ...
- SSM-MyBatis-01:IDEA的安装,永久注册和简单的MyBatis用例
一,IDEA的安装和永久注册 1.安装: 那到安装包,下一步,选路径,上面可以选操作系统64/32位,下面是程序的默认打开方式,可以不必勾选,也可以全选 路径一定不包含中文,重点 2.永久注册: 将此 ...
- Linux时间子系统之五:低分辨率定时器的原理和实现
专题文档汇总目录 Notes:低精度timer在内核中的数据结构以及API接口:低精度timer精巧高效的分组,使用cascade进行定时器移位,组内Timer FIFO:低精度Timer的初始化流程 ...
- 安装VirtualBox中的增强功能包VBoxLinuxAdditions
首先,增强功能包VBoxLinuxAdditions有什么作用呢?请看: (1)实现客户机和主机间的鼠标切换. (2)与主机实现文件共享. (3)自动调整客户机分辨率. (4)与主机共享剪贴板的内容. ...
- Kali Linux虚拟机安装完整安装过程及简单配置(视频)
点击播放视频 附:视频中出现的两个txt文本,包含了大致的安装与配置过程: 文本1:KaliLinux虚拟机安装和初步配置 Kali Linux虚拟机安装和初步配置 大家好,今天给大家演示一下在VMw ...
- nake_api_protect 请求保护器——防止请求被恶意刷
github : https://github.com/xjnotxj/wechat_interaction_auth -- nake_api_protect 接口请求保护器,根据 频率 + 次数 的 ...
- hibulder中使用git教程
https://jingyan.baidu.com/article/25648fc19c14839191fd0027.html
- codeForces 472D 最小生成树
题目大意:给出一个图中点的两两距离,问是否是一棵树,若是,求出平均边权最大的点 prim最小生成树,若原图是树,则最小生成树的距离就是原距离.否则不是. 搞出来树了,第二问随便dfs就好了. #inc ...