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 1 AND 100;

3.用update语句更改数据

update 表名 set 列名 =‘更新的值’ where 列名 =‘老的值’或者是 需要更改的那列的随意列名和随意列名的值

注意:有一些列是不能更新或者不建议更新的,比如timestamp 还有主键最好不要更新。

3.DELETE语句

时间: 2024-10-11 01:42:34

SQL Server ---T-SQl基本语句的相关文章

SQL Server集成服务最佳实践:语句优化

SQL Server集成服务(SQL Server Integration Services,SSIS)在其前辈DTS(Data Transformation Services,数据转换服务)的根基上进步了不少,从可用性.性能和并行等方面来说,它已经成长为一个企业级ETL(Extraction, Transformation and Loading,抽取.转换和加载)产品,除了是一个ETL产品外,它也供给了各种内置任务来管理SQL Server实例.虽然SSIS的内部架构已经被设计为供给极好的性

SQL SERVER 查看SQL语句IO,时间,索引消耗

1.查看SQL语句IO消耗 set statistics io on     select * from dbo.jx_order where order_time>'2011-04-12 12:49:57.580' set statistics io off 2.查看SQL语句时间消耗 set statistics time on      select * from dbo.jx_order where order_time>'2011-04-12 12:49:57.580' set st

连接SQL Server执行SQL语句

public static DataTable GetData() { string Connect = ConfigurationManager.AppSettings["ConnectionString"].ToString(); SqlConnection sc = new SqlConnection(Connect); sc.Open(); SqlCommand cm = new SqlCommand("select * from Department");

SQL Server 常用日期查询语句

--本月月初select  dateadd(mm,datediff(mm,0,getdate()),0) --本月月末select  DATEADD(DD,-1,DATEADD(MONTH,1+DATEDIFF(MONTH,0,GETDATE()),0))--设置每周的第一天为星期一SET  DateFirst 1declare @cur_week1 varchar(10)--本周第一天select @cur_week1=DATEADD(DAY,1-DATEPART(WEEKDAY,getdat

SQL Server FOR XML PATH 语句的应用---列转行

经常在论坛看到高手使用了 for xml path,由于是搜索一下,记录了详细的使用方法.在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用示例. DECLARE @TempTable table(UserID int , UserName nvarchar(50));insert into @TempTable (UserID,UserName) values (1,'a')insert into @TempTable (UserID

Sql Server中sql语句自动换行

怎么让sql server中的sql语句自动换行呢? 如下图: 工具--选项--所有语言 Sql Server中sql语句自动换行

PowerDesigner反向数据库时遇到[Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句。SQLSTATE = 37错误解决方法

逆向工程中,有时会出现如下错误 ... [Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句 SQLSTATE = 37000 解决方案: 1.选择菜单栏中的Database -> Change Current DBMS ,给DBMS选择SQL Server2005. 2.重新配置ODBC连接,管理工具 -> 数据源ODBC -> 在用户DSN Tab选项中点添加 ->出现创建新数据源的选择框口,拖动滚动条到最下方,选择SQL

sql server 数据库机种 insert 语句用法insert into emproyee(e_name,e_sex)values('唐家三少',0); insert into emproyee

刚倒弄sql server 对insert 语句插入多条数据时总结下> 单条数据插入: insert into emproyee(e_name,e_sex)values('唐家三少',0); insert into emproyee(e_name,e_sex)select'骷髅精灵',0 多条数据插入: insert into emproyee(e_name,e_sex)select'天蚕土豆',0 union all select '我吃西红柿',0 union all select '逆苍天

SQL SERVER 一个SQL语句的执行顺序

原文:SQL SERVER 一个SQL语句的执行顺序 一个SQL 语句的执行顺序 1.From (告诉程序 来自哪张表  如果是表表达式 依旧是如此顺序) 2.Where(条件筛选  谓词筛选 ) 3.Group by(分组) 4.Having(分组  谓词筛选 ) 5.Select (表达式) 6.表达式(开窗函数 聚合函数 等等) 7.Distinct(去重复) 8.ORDER BY 9.TOP/OFFSET-FETCH 原文地址:https://www.cnblogs.com/lonely

SQL Server 2008——SQL命令INSERT

T-SQL的INSERT命令的语法: INSERT [INTO]     {table_name|view_name}     [{(column_name,column_name,-)}]     {VALUES (expression,expression,-)} 方括号内是可选的. 列名的列表必须用圆括号包围住,逗号分隔. 关键字VALUES是必须的,数据值用圆括号包围,逗号分隔. 最好是尽量避免在名称中包含空格: 如果表或视图的名称与保留字相同或包含空格,则必须用方括号或双引号将名称包围