sql server2012学习笔记
第1章 SQL安装
- 1-1 [SQL Server基础]前言 (10:44)
- 1-2 SQL Server安装 (08:29)
- 1-3 第一次登陆 SQL Server (02:58)
- 1-4 [SQL Server基础]附加、分离(Attach、Detach)数据库文件 (03:21)
- 1-5 [SQL Server基础]数据库图表关系图(ER图) (04:22)




简单记忆:一个table中的primary Keys是另一个Table中的Foreign Key

重点::区分好主键和外键
第2章 T-SQL语句





实际工作中少用*,因为可能会出现成千上万的数据
select Top 100 * from [Production].[Product] 选择前一百行数据

select ProductID, Name, ProductNumber, Color, Size, ListPrice 
from Production.Product
按信息读取数据

select ProductID, Name, ProductNumber, Color, Size, ListPrice 
from Production.Product
order by listprice desc  //安装listprice倒序排序
asc=ascending order //正序排序

第一个按照listprice倒序排序,第二个按照listprice和Name倒序排序

按照第2个Name正序排序

isnull(size,'') 空值null变换为单引号‘’里面的数据

改变列的名称
select ProductID, Name as ProductName, --using an alias
'The list price for ' + ProductNumber + ' is $ ' + convert(varchar,ListPrice) +'.' ,--using the concatenation to join character end-to-end.
'The list price for ' + ProductNumber + ' is $ ' + convert(varchar,ListPrice) +'.' as [Description] --using brackets to let SQL server conside the strin as a column name
from Production.Product
在where语句中用>,=,<等字符
eg:
select * from [Sales].[SalesOrderHeader]
where SalesPersonID=275
select * from [Sales].[SalesOrderHeader]
where SalesOrderNumber='so43670'  //string类型加单引号
where语句中使用or或and
eg:
select SalesOrderID,OrderDate,SalesPersonID,TotalDue as TotalSales 
from [Sales].[SalesOrderHeader]
where SalesPersonID=275 and TotalDue>5000 and Orderdate between '2005-08-01' and '1/1/2006'
like中使用%号 //%表示可以有,可以没有
select * from [Production].[Product]
where name like'Mountain'
select * from [Production].[Product]
where name like'%Mountain%' --Wildcard % matches any zero or more characters
_下划线表示前面有一个不知道的字符
select * from [Production].[Product]
where name like'_ountain%'
Where语句中使用in或not in
select * from [Production].[Product]
where color in ('red','white','black')
select * from [Production].[Product]
where class not in ('H') -- same as using: <> 'H'//没有H的
is null 与is not null
--Topic 10
select * from [Production].[Product]
where size is null
select * from [Production].[Product]
where size is not null
or与and的理解
--Topic 11
select * from [Production].[Product]
where color ='white'or color ='black'
select * from [Production].[Product]
where color ='white'and color ='black'
select SalesOrderID,OrderDate,SalesPersonID,TotalDue as TotalSales 
from [Sales].[SalesOrderHeader]
where (SalesPersonID=275 or SalesPersonID=278)  and TotalDue>5000
工作中常用的聚合函数&经典查询语句实例
select count(SalesPersonID)     //count--总和
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null
select distinct(SalesPersonID)    //l列出
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null
select count(distinct(SalesPersonID))  //数目
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null
--Topic 13
select 
Avg(TotalDue) as AverageTotalSales --aggregate functions
from [Sales].[SalesOrderHeader]
select 
Avg(TotalDue) as AverageTotalSales
,Min(TotalDue) as MinimumTotalSales  
,Max(TotalDue) as MaximumTotalSales
,Sum(TotalDue) as SummaryTotalSales
from [Sales].[SalesOrderHeader]
select SalesPersonID,OrderDate,Max(TotalDue) as MaximumTotalSales 
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null
group by SalesPersonID,OrderDate 
having Max(TotalDue)>150000  //大于15万的提取出来
order by SalesPersonID
----The classical T-SQL query!!!
select SalesPersonID,OrderDate,Max(TotalDue) as MaximumTotalSales 
from [Sales].[SalesOrderHeader]
where SalesPersonID is not null and OrderDate >='2007/1/1'
group by SalesPersonID,OrderDate 
having Max(TotalDue)>150000
order by SalesPersonID
--order by OrderDate desc

sql server2012学习笔记的更多相关文章
- 【SQL Server学习笔记】Delete 语句、Output 子句、Merge语句
		原文:[SQL Server学习笔记]Delete 语句.Output 子句.Merge语句 DELETE语句 --建表 select * into distribution from sys.obj ... 
- SQL server2005学习笔记(一)数据库的基本知识、基本操作(分离、脱机、收缩、备份、还原、附加)和基本语法
		在软件测试中,数据库是必备知识,假期闲里偷忙,整理了一点学习笔记,共同探讨. 阅读目录 基本知识 数据库发展史 数据库名词 SQL组成 基本操作 登录数据库操作 数据库远程连接操作 数据库分离操作 数 ... 
- sql注入学习笔记,什么是sql注入,如何预防sql注入,如何寻找sql注入漏洞,如何注入sql攻击 (原)
		(整篇文章废话很多,但其实是为了新手能更好的了解这个sql注入是什么,需要学习的是文章最后关于如何预防sql注入) (整篇文章废话很多,但其实是为了新手能更好的了解这个sql注入是什么,需要学习的是文 ... 
- 郝斌–SQL Server2005学习笔记
		数据库(Database)狭义上是指存储数据的仓库,广义上包含对数据进行存储和管理的软件(DBMS)和数据本身.数据库由表.关系和操作组成. 一.数据库简介 1.为什么需要数据库 数据库简化了对数据的 ... 
- sql注入学习笔记 详解篇
		sql注入的原理以及怎么预防sql注入(请参考上一篇文章) https://www.cnblogs.com/KHZ521/p/12128364.html (本章主要针对MySQL数据库进行注入) sq ... 
- SQl语句学习笔记(二)
		merge into when matched then... when not mached then... merge into t_road_pre_parameter a fr ... 
- SQL语句学习笔记
		从外部EXCEl文件导入sqlserver数据库操作命令 reconfigure reconfigure go select * into abc1_1 from OPENROWSET('MICROS ... 
- SQL server 学习笔记1
		1.查询安装的排序规则选项喝当前的排序规则服务器属性 select * from fn_helpcollations(); 2.查看当前服务器的排序规则 select serverproperty(' ... 
- sql视图学习笔记--视图
		视图是为用户对数据多种显示需求而创建的,其主要用在一下几种情况: (1)限制用户只能访问特定表特定条件的内容,提高系统的安全性. (2)隐藏表结构.创建多种形式的数透视,满足不同用户需求. (3)将复 ... 
随机推荐
- 蓝牙BLE设备主机重启回连流程分析
			如果一个BLE设备已经与蓝牙中心设备连接上,那么当中心设备的断电重启,其依然会和配对过的BLE设备连接上,而不需要重新走配对的流程,这个过程叫做回连. 这篇文章就分析一下当中心设备断电重启之后,其与B ... 
- Vue常规后台系统,路由懒加载实现基于菜单数据并解耦
			路由依赖菜单 场景:文件名与路由组件名完全一致(随便大小写均可) 菜单使用一套,路由又存在一套,这样就很不舒服,于是做了如下处理: 尝试不用懒加载发现有难度,使用懒加载就很轻松了 data.js ex ... 
- .Net外包篇:我是如何看待外包的
			前言 从工作至今,我在工作之余大大小小接了六次外包,不多不少,虽然没有为我带来很大收益,但也让我开拓了人脉,接触了不少知识,锻炼了全栈开发能力. 菜鸟时代 第一家客户(成功) 我接的第一个外包是为一家 ... 
- Rollup处理并打包JS文件项目实例
			关于Rollup rollup是一款用来es6模块打包代码的构建工具(支持css和js打包).当我们使用ES6模块编写应用或者库时,它可以打包成一个单独文件提供浏览器和Node.js来使用. 它的优点 ... 
- CentOS 6 升级 curl
			zabbix 发邮件报 Support for SMTP authentication was not compiled in 其实出现这种问题的原因是我们机器上的 libcurl 版本太低所致.在z ... 
- bug总结
			1.被除数为0 2.Java 空指针异常(java.lang.NullPointerException) 即对象没有进行实例化便进行了使用.实例化的意义,就是将对象实例的地址赋值给对象符号. 比如 S ... 
- iOStextField/textView在输入时限制emoji表情的输入
			https://www.jianshu.com/p/5227e6aab4d4 2017.02.27 13:08* 字数 146 阅读 6109评论 6喜欢 14 又遇到输入框输入表情的情况了,之前写了 ... 
- mysql常用命令行操作(二):表和库的操作、引擎、聚合函数
			一.查看.创建.删除数据库 create database library default character set utf8 collate utf8_general_ci; # 创建数据库并设置 ... 
- mysql问题汇总——持续更新
			1.this is incompatible with sql_mode=only_full_group_by set @@sql_mode='STRICT_TRANS_TABLES,NO_ZERO_ ... 
- 便捷的ajax请求
			为什么要做这个呢?如果后端给的数据不单有JSON字符串,还有对象呢?这个时候我们就要每个都处理(JSON.parse).万一后端又改了,所有都是对象呢?如此一来我们就需要对我们的ajax进行封装. 这 ... 
 
			
		