查看: 2052|回复: 0

[SQLServer] sql

发表于 2018-1-8 08:00:02

SQL Server中的添加语句:

insert into 表名(你自己建立的表,想那个表中添加就写那个表名) values('','','','')------------->这种形式是向这个表内所有属性赋值

insert into 表名(填写列名)values('')-------------->这种形式是单独向该表中的某一列添加值

SQL Server中的查询语句:

select * from 表名--------------------->查看这个表(查看该表内所以内容)

select (列名)from 表名------------------>查看这个表(查看该表中的某一列)

select count(*) from 表名 group by 列名---------------->查询人数有多少

select count(*) 人数, dizhi 地址 from stu_info group by dizhi-------------------------->查询地址人数有多少

SQL删除语句:
一、delete from 表名

二、Truncate table 表名 --------->彻底删除,无法通过工具恢复

SQL查询语句
一、select distinct dizhi(列名) from stu_xinxi(表名)------->查出所以的地址(列(每一种都会出现))

二、select count(*) from stu_xinxi group by dizhi

select count(*)人数,dizhi 地址 from stu_xinxi group by dizhi
以上两种:1)查询人数一共有多少。 2)第一种的优化版,加上了别名。

三、select count(*)人数 from stu_xinxi
查看一共都多少人,只会返回一个数字

四、排序:
select * from stu_chengji(表名) order by score(列名) desc(降序)
按照从大到小的方式进行排序

select * from stu_chengji(表名) order by score(列名) asc(升序)
按照从小到大的方式进行升序

五、查看最高分(最低分)
select max(score) from stu_chengji-----------=----------select max(列名) from (表名)
查看最高分

select min(score) from stu_chengji
查看最低分

六(*)、分组
select dizhi(列名) from stu_info(表名) group by dizhi(列名)

七、分组排序
select max(score(列名)),id from stu_chengji(表名) group by id

select max(score),id from stu_chengji group by id

select max(score)最高分,id 科目,riqi 日期 from stu_chengji group by id,riqi order by riqi desc

按照每个科目的最高分且按照日期进行降序排列。

八、查询规定范围内的数据
select top 10 * from stu_xinxi
查询前十条

select top 10 * from stu_xinxi where id not in (select top 10 id from stu_xinxi)
查询第十一条到第二十条

select * from stu_chengji where score between 60 and 66

九、基础查询
select * from stu_xinxi where name in('龙王1')-----------------当确切知道只有一个人叫'龙王1'的可以用in=
如果不确切应该用In()

*当数据超过两万条时,In 是查询不出来东西的,两万条以上应该用Exists
*Exists在查询时只返回True 或 false

select * from stu_xinxi where exists(select * from stu_xinxi where name='宙斯')
Exists查询方法

查询从第一个数字到第二个数字之间的所以值

SQL通配符

1)count(*):统计选择的记录的个数

2)sum(列名):对某列计算总和

3)avg(列名):对某列计算平均值

4)max(列名):对某列求最大值

5)min(列名):对某列求最小值


SQL筛选

where 后面不能使用聚合函数 但是having后面可以使用聚会函数

select avg(score) cid from stu_chengji group by cid having avg(score)>=60
筛选成绩大于或等于60的各科平均分

SQL求和

select sum(score) from stu_chengji where cid = (select id from stu_kemu where kecheng = 'java')
求出所有java成绩之和

SQL连接
inner join---on---内连接
内连接:重合了多少,就展示多少。

left join---on---左连接
左连接:以左表为主,右表不足就以null补足,展示左表

right join---on---右连接
右连接:以右表为主,左表不足以null补足,展示右表

full:将左连接与右连接拼起来

sql语句只是一个辅助,最重要的还是你对表与表之间的关系的理解,这是我的一个理解。



回复

使用道具 举报