sql
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语句只是一个辅助,最重要的还是你对表与表之间的关系的理解,这是我的一个理解。