SQL Server ---T-SQl基本语句
T-SQL 是 SQL-Server 的结构化查询语言。
基本数据操作语言.
基础语句

先创建表 我后面的列子都是用的这一个表,列名啥的 就大概看看吧~~ 纯粹为了学习语句,语法~~所以先创建个表吧~

1.SELECT语句
注意 : 最好选择想要的列,不要因为省事用 “ * ” 去选择所有的列,因为这样检索的数据会比你实际需要的数据多 ,实际使用中也会降低应用程序 和 网络 的使用 性能。
where 子句
不加限制条件的查询在填充 列表框和组合框 时非常有用,并且在其他想要提供域列表的情况下也非常有用。
在where子句中运算顺序NOT、AND、OR是酱紫的。
In 左边表达式 和 右边任意值匹配时 返回TURE。常用于子查询。
Order by 子句
决定数据的输出顺序,会选择系统开销最小的方法来输出查询结果
DECS 降序 ASC 升序
Group by 子句
用于聚合信息。
如果不使用group by 子句,那么 sum函数将返回指定列的所有行之和。用了group by ,sum函数返回的是每一组的和(ps:图里最后一行忘记删掉了~没用~)

注意:使用Group by子句时,select 列表中所有列必须是聚合列 要么就是 Group by 中包含的列。
如果在select 列表中用了聚合列,那么select 列表必须只包含聚合列,否则 必须有一个 Group by子句。
有点晕么 没关系 来翻一下
就是说 select 聚合,聚合 from XX where xx 列都是聚合列 可以不用 Group by
但是 select ID, 聚合 from XX where xx Group By 因为不都是聚合列,所以要有 Group by
下面那句 同理可证。
A.聚合函数
聚合函数独立使用时,聚合函数只是用于聚合整个结果集 就像图里的第三条语句那样。但是和Group by 一起使用时会很强大。
B.AVG 平均数
C.MAX/MIN 最大值/最小值
当求最大值和最小值时,为了分辨 列,可以使用AS关键字。虽然AS关键列是可选的,但是一为了程序可读性,二为了编写代码符合ANSI/ISO标准。

D.COUNT(表达式 / * )
计算查询中返回的行数
分为2种情况 第一种count(*)时

第二种count(表达式)时
写这个时候碰到一点问题,关于主键约束,唯一约束的定义用法,回来专门写一篇好好研究下。
好,可以看见我写了两个不同的表达式,既然每一行都有列,那为什么出来的结果不一样?
这里就是要注意的地方了。
注意:除了COUNT(*)函数外,所有的聚合函数都忽略NULL值。

COUNT函数和GROUP BY函数一起使用时

E.使用HAVING 子句给分组设置条件
如果要将查询条件放到分组后,可以用HAVing
注意:HAVING子句仅用于带有GROUP BY子句的查询语句。where子句应用于某一行,而having子句应用于分组的聚合值。

F.使用for xml语句输出XML
这里以后会放一个专门介绍的链接,在这不做过多介绍。
G.通过option子句利用提示
这里以后会放一个专门介绍的链接,在这不做过多介绍。
H.distinct和all谓词
这两个与重复数据的处理有关。
上图 秒懂~

这样就可以筛选出 不重复的数据,在实际操作中这样会让返回的数量 大大的减小,而且下面的语句也比上面的语句执行速度要快。这里以后会有个链接来讨论为什么会更快。
在聚合函数也可以使用distinct,语法:Select COUNT(distinct ID)from 表名。
ALL的含义刚好和distinct相反,所以他表示的就是除了distinct之外的情况。现在就需要了解就好, 以后会放一个专门介绍的链接,在这不做过多介绍。
2.使用insert语句添加数据

into 关键字可加可不加,加了就是为了增强语句可读性。随意~
注意:在插值时有三种情况下,列不能设置为null值
1.列定义为默认值。
2.列定义为接受某种形式的系统生成值。比如说identity值
3.插入数据时已经提供了该列的值。
(存储过程sp_help功能给出任意数据库对象、用户自定义数据类型或sql server数据类型的信息。如图:查看course表属性)

insert into ...select语句
如果要插入的数据块儿是从以下获得:
- 数据库中的另一个表
- 同一服务器上一个完全不同的数据库
- 来自另一sql server的异类查询或其他数据
- 同一表
insert into 需要插数据的表 Select 列名 from 输出数据的表 where ID between AND ;
3.用update语句更改数据

update 表名 set 列名 =‘更新的值’ where 列名 =‘老的值’或者是 需要更改的那列的随意列名和随意列名的值
注意:有一些列是不能更新或者不建议更新的,比如timestamp 还有主键最好不要更新。
3.DELETE语句

注意:sql server 是不允许删除作为外键约束被引用的行。如果一行使用了外键引用另一行(无论是否在同一个表),都要先删除被引用行后才能删除引用行。
本章总结完毕 光看可不行 一定要动手敲一敲~~~~由于很多后面都会再详细介绍 所以以后介绍到了会再来这边添加相应链接~ 如此带来不便敬请谅解~~~~~~~
SQL Server ---T-SQl基本语句的更多相关文章
- PowerDesigner反向数据库时遇到[Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句。SQLSTATE = 37错误解决方法
逆向工程中,有时会出现如下错误 ... [Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句 SQLSTATE = 37000 解决方案: 1. ...
- SQL Server Profiler监控执行语句
SQL Server Profiler监控执行语句,这个功能主要用在实时的监控对数据库执行了什么操作,从而及时有效的跟踪系统的运行. 常规配置选项,名称.模板.保存到文件(可以复用). 事件选择,可以 ...
- SQL Server FOR XML PATH 语句的应用---列转行
经常在论坛看到高手使用了 for xml path,由于是搜索一下,记录了详细的使用方法.在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用 ...
- SQL Server中的流控制语句
begin···end 该语句定义sql代码块,通常在if和while语句中使用 declare @num int ; ; begin ; print 'hello word' end if···el ...
- SQL Server参数化SQL语句中的like和in查询的语法(C#)
sql语句进行 like和in 参数化,按照正常的方式是无法实现的 我们一般的思维是: Like参数化查询:string sqlstmt = "select * from users whe ...
- Linux下用freetds执行SQL Server的sql语句和存储过程
Linux下用freetds执行SQL Server的sql语句和存储过程 http://www.linuxidc.com/Linux/2012-06/61617.htm freetds相关 http ...
- sql server的sql 语句中的列名包含[]时候,把]替换成]]就可以
sql server的sql 语句中的列名包含[]时候,把]替换成]]就可以eg: create table p.e_LOG_WebServer ( [BSCFlg] int, ), ) ); sel ...
- SQL Server集成服务最佳实践:语句优化
SQL Server集成服务(SQL Server Integration Services,SSIS)在其前辈DTS(Data Transformation Services,数据转换服务) ...
- SQL Server查看Sql语句执行的耗时和IO消耗
原文:SQL Server查看Sql语句执行的耗时和IO消耗 在做系统过程中,经常需要针对某些场景进行性能优化,那么如何判定性能优化的效果呢?肯定需要知道优化之前Sql语句的耗时和优化之后Sql语句的 ...
- 【SQL Server DBA】维护语句:删除并创建外键约束、获取建表语句
原文:[SQL Server DBA]维护语句:删除并创建外键约束.获取建表语句 1.删除外键约束,建立外键约束 先建立3个表: /* drop table tb drop table tb_b dr ...
随机推荐
- CSS3学习系列之盒样式(一)
盒的基本类型 在css中,使用display属性来定义盒的类型,总体上来说,css中的盒分为block类型与inline类型 inline-block类型 inline-block类型是在css2.1 ...
- MiniProfiler使用点滴记录-2017年6月23日11:08:23
1.看似针对同样一段查询表ef达式,重复执行却没有被记录下来.其实这是正常情况,因为ef并没有重复去执行 相同sql查询. 2.MiniProfiler结合MVC过滤器进行 拦截记录Sql,示例代码: ...
- 《基于Node.js实现简易聊天室系列之详细设计》
一个完整的项目基本分为三个部分:前端.后台和数据库.依照软件工程的理论知识,应该依次按照以下几个步骤:需求分析.概要设计.详细设计.编码.测试等.由于缺乏相关知识的储备,导致这个Demo系列的文章层次 ...
- grid栅格布局
前面的话 Grid布局方式借鉴了平面装帧设计中的格线系统,将格线运用在屏幕上,而不再是单一的静态页面,可以称之为真正的栅格.本文将详细介绍grid布局 引入 对于Web开发者来说,网页布局一直是个比较 ...
- .NET Core 2.0 Preview2 发布汇总
前言 关于 ASP.NET Core 2.0 的新功能可以查看我的这篇博客. 这篇文章是 Priview2中的一些改进. .NET Core 2.0 - Preview2 Azure 的改进 Dock ...
- 在CentOS7上使用systemctl配置tomcat
最近买了一台阿里云,现在阿里云CentOS都已经支持7了(前面都是使用CentOS6),索性直接使用CentOS7,7上面目前最大区别就是service变成了现在的systemctl,简单的查了一下并 ...
- 详细介绍Java虚拟机(JVM)
1. JVM生命周期 启动.启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例 ...
- SAP PI入门
本教程的目的是让读者理解:SAP Process Intergration(以下简称SAP PI)是什么.我们不需要探究课题的本质,但是会讨论SAP PI的架构和不同特点.本文只会覆盖到PI的基本特点 ...
- python2和python3中的类
经典类与新式类 例如: A B C D 四个类 D 包含 BC : B和C分别包含A py2 在经典类中是按深度优先来继承 例如: D中查找B,B没有从A中查找 新式类中是按广度优先来查找继承的 ...
- Git恢复指定文件
Git恢复指定文件 修改这个文件的commit有哪些? git log -- <文件路径> 猜测需要还原的commit. 这个文件作了哪些更改? git diff <需要还原的com ...