SqlServer2012——Select,分组,排序、插入

1、select 简单语句

1--select语句 2select 12*13 3--select子句 4 5select 12*13 AS result 6--select子句,可以将结果保存在result中 7~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 8 9select * From table_name 10--查询table_name所有信息 11 12select name From table_name 13--查询table_name表中name 14 15select name as 学生姓名 From table_name 16--查询table_name表中name且列名字以“学生姓名”显示 17 18select name,Gender,Address From table_name 19--查询table_name的姓名,性别,地址 20~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 21 22select distinct name From table_name 23--查询table_name的姓名且去除重复信息(此例时去除重复name)

2、设置查询条件

1select * From table_name where name='张三' 2精确查询 3 4select * From table_name where name='张三' AND Gender='女' 5精确查询 需要同时满足name='张三' 和 Gender='女' 6 7select * From table_name where name='张三' OR Gender='女' 8精确查询 满足name='张三' 和 Gender='女'任一条件就可 9 10select * From table_name where Age>18 and Age<=45 11精确查询 满足任一条件就可 12~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13 14select * From table_name where Address like '河南%' 15精确查询 %为通配符,like用于模糊查询,此语句满足以河南开头的住址 16 17select * From 成绩查询 where 考试编号='0802' AND (分数 between 90 and 95) 18--查询考试编号为0802且 分数位于90~95之间的分数 19 20select * From 成绩查询 where 考试编号='0802' AND (分数 % 5=0) 21--查询考试编号为0802且 分数除以5的余数为0(求余是0) 22 23~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 24select * From 成绩查询 where 考试编号='0802' AND 分数 in (85,86,87,90) 25--查询考试编号为0802且 分数是85(86或87或90) 26 27select * From 成绩查询 where 考试编号='0802' AND 分数 not in (85,86,87,90) 28--查询考试编号为0802且 分数不是85、86、87、90 29~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

3、排序

1select * From table_name where 考试编号=‘0801’ 2order by 分数 3-->查询考试编号为0801的成绩,按分数默认(升序)排序 4 5select * From table_name where 考试编号=‘0801’ 6order by 分数 ASC 7-->查询考试编号为0801的成绩,按分数 升序 排序 8 9select * From table_name where 考试编号=‘0801’ 10order by 分数 DESC 11-->查询考试编号为0801的成绩,按分数默认 降序 排序 12 13select * From table_name where 考试编号=‘0801’ 14order by 分数 DESC,学生编号 ASC(可不写) 15-->查询考试编号为0801的成绩,按分数默认 降序 排序,(成绩相同的)学生编号按 升序 排序

4、使用函数

1select * From 成绩查询 where 考试编号='0801' AND 课程编号='2' 2--查询考试编号='0801' AND 课程编号='2'的成绩查询表 3 4select Max(分数) From 成绩查询 where 考试编号='0801' AND 课程编号='2' 5--查询考试编号='0801' AND 课程编号='2'的成绩查询表的最高分数 6 7select Min(分数) From 成绩查询 where 考试编号='0801' AND 课程编号='2' 8--查询考试编号='0801' AND 课程编号='2'的成绩查询表的最低分数 9 10select AVG(分数) From 成绩查询 where 考试编号='0801' AND 课程编号='2' 11--查询考试编号='0801' AND 课程编号='2'的成绩查询表的平均分数 12 13select SUM(分数) From 成绩查询 where 考试编号='0801' AND 课程编号='2' 14--查询考试编号='0801' AND 课程编号='2'的成绩查询表的求和 15~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 16 17select top 3 分数 From 成绩查询 where 考试编号='0801' AND 课程编号='2' 18order by 分数 DESC 19--top函数:查询考试编号='0801' AND 课程编号='2'的成绩查询表的前三个数据并降序排列(前三名)

5、分组

1select 课程编号,AVG(分数) From 成绩查询 where 考试编号='0801' Group by 课程编号 2--查询考试编号为0801且以课程编号分组的平均成绩

注意分组的group的关键字rollup和cube

1select 课程编号,AVG(分数) From 成绩查询 where 考试编号='0801' Group by rollup(课程编号) 2--查询考试编号为0801且以课程编号分组的平均成绩,且最后有个总成绩的平均值 3 4select 课程编号,AVG(分数) From 成绩查询 where 考试编号='0801' Group by cube(课程编号) 5--查询考试编号为0801且以课程编号分组的平均成绩,且最后有个总成绩的平均值

千万注意rollup和cube的区别

1select 考试编号,课程编号,AVG(分数) From 成绩查询 Group by 考试编号,课程编号 2--查询考试编号,课程编号和课程编号且以此分组的平均成绩, 3 4select 考试编号,课程编号,AVG(分数) From 成绩查询 Group by rollup(考试编号,课程编号) 5--查询考试编号,课程编号和课程编号且以此分组的平均成绩,且以考试编号进行汇总,后面有总汇总 6 7select 考试编号,课程编号,AVG(分数) From 成绩查询 Group by cube(考试编号,课程编号) 8--查询考试编号,课程编号和课程编号且以此分组的平均成绩,且以课程编号进行汇总,后面有总汇总

6、Having子句

1select 考试编号,课程编号,AVG(分数) From 成绩查询 Group by 考试编号,课程编号 2order by 考试编号 3--查询考试编号,课程编号和课程编号且以此分组的平均成绩, 4 5select 考试编号,课程编号,AVG(分数) From 成绩查询 Group by 考试编号,课程编号 6Having AVG(分数) >=90 7order by 考试编号 8--查询考试编号,课程编号和课程编号且以此分组的平均成绩,增加having条件

7、插入语句

Insert,插入数据,手动指定

1Insert 2Insert into table_name VALUES('xx','xxx'......) 3--不写列,代表向表中全部的列都插入数据 4例如: 5Insert into 学生信息 VALUES('2019100101','李白',’男‘,’1999-10-21‘,'汉','河南郑州') 6 7Insert into table_name (column1,column2...) VALUES('xx','xxx'......) 8Insert into 学生信息 (学号,姓名,地址) VALUES('2019100101','李白','河南郑州')

Insert......Select:向数据表中插入从其他地方获取的值

1语法: 2Insert table_name [column_list] 3select column 4From table_list 5Where search_condirions 6 7例子: 8Insert 学生信息1 9select * From 学生信息 10 11或者 12Insert 学生信息1 13select * From 学生信息 14where 地址 like ’%郑州‘

SELECT......INTO

1--语法 2Select <select_list> 3Into new_table 4From {<table_name>} 5where <search_condition> 6--这么做或新建一个表,把查询结果放到新表当中 7--例子 8select * 9into #学生信息2 10from 学生信息 11where 性别='男' 12--新建表就是不希望查询中新建实例表

7、改语句:Update

1---语法 2Update [top] {table_name|view_name} 3Set 4{column_name{expression|DEFAULT|NULL}|@variable=expression} 5where {search_condition} 6 7--例子 8Update 学生信息 9set 姓名='杜甫' 10where 学号='2019100101' 11 12Update 学生信息 13set 姓名='杜甫',出生日期='2000-8-9' 14where 学号='2019100101'

update中使用From子句

1update 学生信息 2set s_sex=b.性别,s_address=b.家庭住址 3from 学生信息 a join stuudent b on a.s_name = b.姓名 4whhere b.性别='女'

8、删除语句:Delect

1--语法 2Delete From <table_name> 3where <search_condition> 4 5--例子: 6delete From table_name 7--或者 8delete * From table_name 9--删除所有行 10 11delete From table_name 12whhere 学号='2019-10010'
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )