初学sql sever

1. 最简单的select语句的结构

a) 从指定的表中查询所有的数据

    select  *  from  表名

    其中,号代表表中所有的字段, from 后面给出数据的来源,可以是个表也可以是个视图。

 

b) 从指定的表中查询部分字段的数据

    select 字段1,字段2,字段3....from  表名

    只查询select后面列出的字段中的数据。当然,如果列出所有的字段,那么和上面写 作用相同。

 

c) 在SQL Serverselect 语句的from子句不是必须的,如果select 要查询的数据不是来自某个表,如查询常量表达式的值或查询某个函数的值,那么可以省略from 子句。

    查询当前的系统日期和时间:select GETDATE()

 

为查询的字段名增加个列标题   

 字段名 as 列标题

 

为了消除在查询结果集中出现完全相同的记录,那么可以在select关键字的后面添加distinct关键字

 

TOP  n  [PERCENT] 关键字的使用

a) 可以在top关键字后面写个整数n,表示前 多少行。

b) 也可以top关键字后面写:   n  percent,表示前 百分之 多少。

 

 where子句的使用

where子句中给出一个关系表达式或逻辑表达式,那么查询结果中只包含满足这个条件的记录。

 

使用的模糊查询运算符

 

order by子句的使用

通过ORDER BY子句,可以将查询结果进行排序显示

a) 关键字ASC表示按升序排列,可省略;关键字DESC表示按降序排列。

b) order by子句的位置始终在select语句的最后面,其他的子句都应在它的前面。因为order by子句是最后一个被执行的。

c) 在order by 子句的后面,可以给出多个排序字段,此时排序是:先按照第一个字段值的升序或降序排列,当第一个字段值出现重复值的时候,这些行再按照第二个排序字段值的升序或降序排列。

d) 每个排序字段的后面都应给出自己的排序关键字,可以省略。但不要理解为多个字段可以使用同一个排序关键字。如,order by 字段1,字段2 desc  该语句的意思其实是指,字段1按升序排序,字段2按降序排序。

 

into子句的使用

a) 可以在select语句中使用into子句将查询的结果存入一个新建的表中。

b) 每次执行该语句时,就会创建一个新表

c) 格式:

select *|字段列表 into 新表  from 已有的表 where 查询条件

 

查询结果集的运算

1. union all:将前后两个查询结果集进行连接,结果中的记录的个数等于原来的两个查询结果集的记录的行数之和。不消除重复行。

select * from t1

union all

select * from t2

 

2. union:将前后两个查询结果集进行连接,消除重复行。

select * from t1

union 

select * from t2

3. intersect:取两个查询结果集中的记录的交集。

select * from t1

intersect

select * from t2

 

avg() 平均值  max() 最大值 min() 最小值 sum()求和 

count() 统计所有行或满足条件的行的给定字段或表达式的有值的个数

count(*) :该函数一般用在不加where条件的查询中,用于统计表中的总行数

 

 使用group by子句

a) 使用group by 子句可以将查询结果集中的记录进行分组,并进行汇总。

b) 包含group by 子句的查询语句的格式:(注意,各个子句的位置)

c) 在select语句中使用该子句时,特别要注意以下几点:

i. 对查询结果分组时,系统会将group by后面的字段(即分组字段,当然也可以是有关字段的表达式)值相同的行(记录)当做一组。

ii. 将查询结果分组后,每个组在查询结果中只显示一行该组的统计信息。

iii. select语句中一旦有了分组子句(即group by子句),那么select

关键字的后面只能包含分组的字段或分组表达式,以及其他非分组字段(没有参与分组的字段)的聚合函数(上面介绍的)表达式。

如果包含where子句,那么只对满足where条件的记录进行分组汇总。

SELECT column_name1[,…n]

FROM table_name

WHERE search_condition

GROUP BY colum_name1[,…n]

[ HAVING search_condition ]

[order by  字段 asc|desc]

 

使用having 子句

a) having 子句也是筛选行的子句,只不过,该子句是在group by子句分组后得到的所有组中进行筛选的。因此,having子句是配合group by子句使用的。

b) 因此,对查询结果分组后再添加条件,应该使用having子句。

 

 内连接:

 关键字

inner join

格式:from 1 inner join 2 on 1.公共字段=2.公共字段  一般情况下,on关键字后面都会选择”=”等号进行两个表连接的比较条件

 

 左外连接

 关键字:

 left outer join     左外连接是显示左表中的所有行,和右表中的与左表匹配的行。

 右外连接

 关键字:

  right outer join        得到的记录集是:内连接的结果+右表中的找不到匹配的剩余行

 完全外连接

 关键字:full outer join

 得到的记录集是:内连接的结果+左表中的找不到匹配的剩余行+右表中的找不到匹配的剩余行

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值