1、select 简单语句
--select语句 select 12*13 --select子句 select 12*13 AS result --select子句,可以将结果保存在result中 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ select * From table_name --查询table_name所有信息 select name From table_name --查询table_name表中name select name as 学生姓名 From table_name --查询table_name表中name且列名字以“学生姓名”显示 select name,Gender,Address From table_name --查询table_name的姓名,性别,地址 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ select distinct name From table_name --查询table_name的姓名且去除重复信息(此例时去除重复name)
2、设置查询条件
select * From table_name where name=‘张三‘ 精确查询 select * From table_name where name=‘张三‘ AND Gender=‘女‘ 精确查询 需要同时满足name=‘张三‘ 和 Gender=‘女‘ select * From table_name where name=‘张三‘ OR Gender=‘女‘ 精确查询 满足name=‘张三‘ 和 Gender=‘女‘任一条件就可 select * From table_name where Age>18 and Age<=45 精确查询 满足任一条件就可 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ select * From table_name where Address like ‘河南%‘ 精确查询 %为通配符,like用于模糊查询,此语句满足以河南开头的住址
select * From 成绩查询 where 考试编号=‘0802‘ AND (分数 between 90 and 95) --查询考试编号为0802且 分数位于90~95之间的分数 select * From 成绩查询 where 考试编号=‘0802‘ AND (分数 % 5=0) --查询考试编号为0802且 分数除以5的余数为0(求余是0) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ select * From 成绩查询 where 考试编号=‘0802‘ AND 分数 in (85,86,87,90) --查询考试编号为0802且 分数是85(86或87或90) select * From 成绩查询 where 考试编号=‘0802‘ AND 分数 not in (85,86,87,90) --查询考试编号为0802且 分数不是85、86、87、90 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3、排序
select * From table_name where 考试编号=‘0801’ order by 分数 -->查询考试编号为0801的成绩,按分数默认(升序)排序 select * From table_name where 考试编号=‘0801’ order by 分数 ASC -->查询考试编号为0801的成绩,按分数 升序 排序 select * From table_name where 考试编号=‘0801’ order by 分数 DESC -->查询考试编号为0801的成绩,按分数默认 降序 排序 select * From table_name where 考试编号=‘0801’ order by 分数 DESC,学生编号 ASC(可不写) -->查询考试编号为0801的成绩,按分数默认 降序 排序,(成绩相同的)学生编号按 升序 排序
4、使用函数
select * From 成绩查询 where 考试编号=‘0801‘ AND 课程编号=‘2‘ --查询考试编号=‘0801‘ AND 课程编号=‘2‘的成绩查询表 select Max(分数) From 成绩查询 where 考试编号=‘0801‘ AND 课程编号=‘2‘ --查询考试编号=‘0801‘ AND 课程编号=‘2‘的成绩查询表的最高分数 select Min(分数) From 成绩查询 where 考试编号=‘0801‘ AND 课程编号=‘2‘ --查询考试编号=‘0801‘ AND 课程编号=‘2‘的成绩查询表的最低分数 select AVG(分数) From 成绩查询 where 考试编号=‘0801‘ AND 课程编号=‘2‘ --查询考试编号=‘0801‘ AND 课程编号=‘2‘的成绩查询表的平均分数 select SUM(分数) From 成绩查询 where 考试编号=‘0801‘ AND 课程编号=‘2‘ --查询考试编号=‘0801‘ AND 课程编号=‘2‘的成绩查询表的求和 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ select top 3 分数 From 成绩查询 where 考试编号=‘0801‘ AND 课程编号=‘2‘ order by 分数 DESC --top函数:查询考试编号=‘0801‘ AND 课程编号=‘2‘的成绩查询表的前三个数据并降序排列(前三名)
5、分组
select 课程编号,AVG(分数) From 成绩查询 where 考试编号=‘0801‘ Group by 课程编号 --查询考试编号为0801且以课程编号分组的平均成绩
注意分组的group的关键字rollup和cube
select 课程编号,AVG(分数) From 成绩查询 where 考试编号=‘0801‘ Group by rollup(课程编号) --查询考试编号为0801且以课程编号分组的平均成绩,且最后有个总成绩的平均值 select 课程编号,AVG(分数) From 成绩查询 where 考试编号=‘0801‘ Group by cube(课程编号) --查询考试编号为0801且以课程编号分组的平均成绩,且最后有个总成绩的平均值
千万注意rollup和cube的区别
select 考试编号,课程编号,AVG(分数) From 成绩查询 Group by 考试编号,课程编号 --查询考试编号,课程编号和课程编号且以此分组的平均成绩, select 考试编号,课程编号,AVG(分数) From 成绩查询 Group by rollup(考试编号,课程编号) --查询考试编号,课程编号和课程编号且以此分组的平均成绩,且以考试编号进行汇总,后面有总汇总 select 考试编号,课程编号,AVG(分数) From 成绩查询 Group by cube(考试编号,课程编号) --查询考试编号,课程编号和课程编号且以此分组的平均成绩,且以课程编号进行汇总,后面有总汇总
6、Having子句
select 考试编号,课程编号,AVG(分数) From 成绩查询 Group by 考试编号,课程编号 order by 考试编号 --查询考试编号,课程编号和课程编号且以此分组的平均成绩, select 考试编号,课程编号,AVG(分数) From 成绩查询 Group by 考试编号,课程编号 Having AVG(分数) >=90 order by 考试编号 --查询考试编号,课程编号和课程编号且以此分组的平均成绩,增加having条件
7、插入语句
Insert,插入数据,手动指定
Insert Insert into table_name VALUES(‘xx‘,‘xxx‘......) --不写列,代表向表中全部的列都插入数据 例如: Insert into 学生信息 VALUES(‘2019100101‘,‘李白‘,’男‘,’1999-10-21‘,‘汉‘,‘河南郑州‘) Insert into table_name (column1,column2...) VALUES(‘xx‘,‘xxx‘......) Insert into 学生信息 (学号,姓名,地址) VALUES(‘2019100101‘,‘李白‘,‘河南郑州‘)
Insert......Select:向数据表中插入从其他地方获取的值
语法: Insert table_name [column_list] select column From table_list Where search_condirions 例子: Insert 学生信息1 select * From 学生信息 或者 Insert 学生信息1 select * From 学生信息 where 地址 like ’%郑州‘
SELECT......INTO
--语法 Select <select_list> Into new_table From {<table_name>} where <search_condition> --这么做或新建一个表,把查询结果放到新表当中 --例子 select * into #学生信息2 from 学生信息 where 性别=‘男‘ --新建表就是不希望查询中新建实例表
7、改语句:Update
---语法 Update [top] {table_name|view_name} Set {column_name{expression|DEFAULT|NULL}|@variable=expression} where {search_condition} --例子 Update 学生信息 set 姓名=‘杜甫‘ where 学号=‘2019100101‘ Update 学生信息 set 姓名=‘杜甫‘,出生日期=‘2000-8-9‘ where 学号=‘2019100101‘
update中使用From子句
update 学生信息 set s_sex=b.性别,s_address=b.家庭住址 from 学生信息 a join stuudent b on a.s_name = b.姓名 whhere b.性别=‘女‘
8、删除语句:Delect
--语法 Delete From <table_name> where <search_condition> --例子: delete From table_name --或者 delete * From table_name --删除所有行 delete From table_name whhere 学号=‘2019-10010‘
SqlServer2012——Select,分组,排序、插入
原文:https://www.cnblogs.com/javier520/p/10859913.html