美文网首页
SQL server学习笔记

SQL server学习笔记

作者: codingHi | 来源:发表于2021-03-03 09:18 被阅读0次

前置基础知识:

关系型数据库的基本要素是二维表。这些二维表可以被独立使用或者通过使用Join语句连接起来使用。主键(primary key)和外键(foreign key)是用来连接二维表之前的重要工具。

主键是用来唯一地标识一行数据。而且主键列必须包含唯一的值,并且不能包含空值(null)
主键可以建立在每张二维表中单列或者多列上。
一张二维表上的外键可以引用另一张二维表上对应的主键。

在SSMS中选中查询语句,按F5执行

基本的语法结构

SELECT <table fields list>  //选出所需要的fields/列
FROM <table names list>  //从**table里
WHERE <row constraints specification>  //对行row做一些限制条件
GROUP BY <grouping specification>  //指一些集合运算--比如取平均数
HAVING <grouping selection specification>  //针对刚才的集合运算进行一些限制条件
ORDER BY <order rules specification>  //结果进行排序--

1.SELECT...FROM...语句是必须的
2.WHERE,GROUP BY以及ORDER BY三个语句不是必须的


select相关语法

SELECT * FROM [Production].[Product]     //* 星号表示所有列
SELECT Top 100 FROM [Production].[Product]     //前100行

手动打库名表明可以不用加方括号[],
在SSMS中,也可以拖动表明进去语法区,默认有方括号

SELECT * FROM SALES.SALESORDERDETAIL
SELECT ProductID, Name, Number, Color,  Size, ListPrice FROM Production.Product


//对于查询结果按照name关键字进行排序desc-倒序,asc正序
SELECT ProductID, Name, Number, Color,  Size, ListPrice 
FROM Production.Product
ORDER BY name desc   


//对于查询结果按照name和color进行排序
SELECT ProductID, Name, Number, Color,  Size, ListPrice 
FROM Production.Product
ORDER BY name desc,color   


 //对于查询结果按照select的第二个条件,也就是name进行正序排列
SELECT ProductID, Name, Number, Color,  Size, ListPrice 
FROM Production.Product
ORDER BY 2  

在SSMS中,同时选中两个select语句会产生两个相应的查询结果列表。

select相关语法2

//将查询出来的数据中,color列中为null的值替换为空,来显示。//color列的列名会变成No column name
SELECT ProductID, Name, Number, isnull(Color,’’),  Size, ListPrice 
FROM Production.Product  


//Color列的列名变为Color123
SELECT ProductID, Name, Number, isnull(Color,’’) as Color123,  Size, ListPrice 
FROM Production.Product


SELECT ProductID, Name, Number, Color as Color123,  Size
, rate*40*52 as newRate
, round(rate*40*52,1) as nowRate2 //小数点之后的四舍五入保留1位(就是个位)比如:153.10,121.30
, round(rate*40*52,0) as nowRate2 //小数点之后的四舍五入保留0位(就是个位)比如:153.00,121.00
FROM Production.Product

where相关语法2

SELECT * FROM Production.Product
WHERE ID=5   //其他写法:WHERE ID>5   WHERE name=’小明’   
// =,>,<,>=,<=,<>,    <>不等于的意思


SELECT * FROM Production.Product
WHERE ID=5 or name=’小红’   //ID等于5或者name为小红的数据


SELECT * FROM Production.Product
WHERE ID=5 and name=’小红’  //


SELECT * FROM Production.Product
WHERE ID=5 and name=’小红’ and Orderdate between ‘2005-01-05’ and ‘1/2/2006’  //between...and...    注意斜线的写法规则:月/日/年


SELECT * FROM Production.Product
WHERE name like ’aa’  //name字段为aa的数据


SELECT * FROM Production.Product
WHERE name like ’%aa%’  // 姓名里包含aa的数据    %符号   %aa%,表示在aa前可以有或没有任何字符,在aa后可以有可以没有任何字符


SELECT * FROM Production.Product
WHERE name like ’%aa’


SELECT * FROM Production.Product
WHERE name like ’_aa%’  //姓名里包含_aa的数据, _表示忘记这个位置是什么值了,且aa后可以有可以没有任何字符。


SELECT * FROM Production.Product
WHERE color in (’red’,’black’,’blue’)//找出color列里值为 red,black,blue的值


SELECT * FROM Production.Product
WHERE size in (’60’,’61’,’62’)


SELECT * FROM Production.Product
WHERE color not in (’red’) //找出color列里值不为 red的值


SELECT * FROM Production.Product
WHERE color is null         //color列所有值为null的数据


SELECT * FROM Production.Product
WHERE color is not null       //color列所有值不为null的数据

常用的语法

count()  //数一下有多少行,输出一个数字
SELECT count(uuID)
FROM Production.Product
WHERE uuID is not null 

distinct() //去重
SELECT distinct(color)
FROM Production.Product
WHERE color is not null 

SELECT count(distinct(uuID)) //先去重,再查多少个
FROM Production.Product
WHERE uuID is not null 


集合运算

SELECT Avg(payNumb) as payNumb2 //求平均数
FROM Production.Product

SELECT 
Avg(payNumb) as payNumb2 //求平均数
,Min(payNumb) as minPay  //最小值
,Max(payNumb) as maxPay //最大值
,Sum(payNumb) as sumPay  //总和
FROM Production.Product


SELECT ppID,Max(payNumb) as payNumb2
FROM Production.Product
where ppID is not null
--group by ppID    //--表示注释
order by ppID

相关文章

网友评论

      本文标题:SQL server学习笔记

      本文链接:https://www.haomeiwen.com/subject/lyvtqltx.html