数据库查询的基本方法,有很多不全的地方,自己学习使用

简单查询:

一、查询表名和列名

select *from  表名

select  列1,列2···from 表名

select distinct 列名 from表名            去重只能是一列

二、筛选

select top 3* from 表名   查询表的前三行

select top 3 列名 from 表名 where age >22 查询年龄大于22 岁的的前三行

1、等值与不等值

select *from 表名 where 列名=(!= ,>,<,>=,<=)值

2、多条件与范围

select*from 表名 where 条件 1 and或or 条件2

select*from 表名where  between····and···

select*from 表名 where 列  in(值)

三、排序

select *from 表名 order by 列名 asc/ desc   把一列进行升序或者降序排列

select*from 表名 where age<25 order by age asc ,code desc   把小于年龄25岁的按照升序排列,如果有相同年龄的,再把相同年龄的按照降序排列

四、分组

聚合函数

count(),max(), min(),sum(),avg()

select count(*) from 表名 where 列名       统计总行数

select count(列名)from 表名    只统计这一列中的非空值,如果有一格为空,会少统计一行

select  min(列名) from 表名   找这一列的最小值

select avg(列名)from 表名 算这一列的平均分

 

group by....having.....

1、group by后面跟的是列名

2、一旦使用group by分组了,则select 和from中间就不能用星号,只能包含两类东西,一类是 group by后面的列名,另一类是统计函数

select 列名,avg(列名) from 表名 group by 列名

having 后面一般跟的统计函数,根据分组后的结果进行进一步筛选

select 列名 from 表名 group by 列名 having count(*)>1  可以把重复的找出来,并且显示有几个相同的

子查询(嵌套查询)

使用查询语句查询一列数据出来,然后作为其他查询的查询条件中的参数来使用

 

     内连接:     select*from 表 1

                    join 表2  on 表1列=表2列

                     join 表3 on表2列=表3列

   外连接:左连接和右连接

合并数据

select  sname,ssex, sbirthdy from student
union
select Tname,Tsex,Tbirthday from Teacher

1、union中的所有选择列表必须具有相同的列数,相似的数据类型和相同的顺序

2、结果集中的列名来自第一个select语句

 

连接查询是列的扩展

联合查询是行的扩展

 

posted @ 2015-04-21 23:41  zhenximeiyitian  阅读(307)  评论(0编辑  收藏  举报