T-SQL查询语句


1. SELECT语法结构 T-SQL中查询基本格式是有SELECT子句、FROM子句、WHERE子句组成的查询块:select 列名 from 表名 where 查询限定条件其中
* select 指定了想要查看哪些列的数据* from 指定这些数据来自于哪些表* where 指定了想要查看哪些行SELECT语句的语法如下:
2. 表达式 表达式是符号和运算符的一种组合,并且可以对它求值得到单个数据值(1)条件表达式常量:单个指定数据值的符号(字母、数字、符号)
列名:表中列的名称一元运算符:仅有一个操作数的运算符(+正数、-负数)二元运算符:将两个操作数组合执行操作的运算符,可以是算数运算符、赋值运算符、位运算符、比较运算符、逻辑运算符、字符串串联运算符、一元运算符 在查询LIKE运算符的SQL语句需要使用以下的通配符运算符:

例如:要求查找“员工信息表”中电话号码前两位数为“13”,可以编写如下约束表达式
(2)逻辑表达式
3. 查询举例(1)查询student表中成绩为90-100的学生所有信息
select * from student where 成绩 between 90 and 100
(2)查询student表中成绩低于90或高于95分学生信息select * from student where 成绩95
(3)查询student表中成绩为89、90、91分的学生信息select * from student where 成绩 in (89,90,91)
(4)查询student表中所有姓刘的学生信息select * from student where 姓名 like ‘刘%’
(5)查询student表中前5行的数据select top 5 * from student
(6)查询student表中所有学生信息,按照成绩从高到低显示查询结果select * from student order by 成绩 desc
4. 分组查询 分组查询就是将表中的数据按照一定的条件分类组合,在根据需要得到统计信息,通过grou开发云主机域名p by子句可以实现 在group by子句查询中,select指定的列名要么是group by子句中指定的列,要么是聚合函数。聚合函数用于对一组值进行计算,并返回单个值,如求总和、最大值、最小值、平均值等。T-SQL中常见的聚合函数有SUM()、AVG()、MAX()、MIN()、COUNT()等(1)查询student表中所有学生的总成绩,列表名显示为“总成绩”select SUM(成绩)as 总成绩 from student
(2))查询student表中所有学生的平均成绩select AVG(成绩)as 平均成绩 from student
(3)查询student表中所有学生的最高分和最低分select MAX(成绩)as 最高分 MIN(成绩)as 最低分from student
(4)查询student表中所有行数select COUNT(*)as 总行数 from student
(5)查询student表中每个班级的总成绩select SUM(成绩)as 总成绩 from student group by 班级
(6)查询student表中总成绩大于200的班级select SUM(成绩)as 总成绩 from student group by 班级 havingSUM(成绩)>200
(7)将student表中2班的学生信息保存到表student_new中select * intostudent_new from student where 班级=2
5. 子查询 子查询就是查询中又嵌套的查询案例1:查询student表中的最高分或最低分是哪个学生select 姓名,成绩from studentwhere 成绩=(select MAX(成绩) from student) or成绩=(select MIN(成绩) from student)
案例2:查询每个季度的生产数量,百分比select 季度,sum(生产数量) AS 每个季度的生产数量,str((sum(生产数量)/(select sum(生产数量) from 生产表))*100)+’%’ AS 百分比 from 生产表group by 季度order by 季度


使用T-SQL实现多表查询 前面的查询都是单表的查询。如果一个查询需要对多个表进行操作,就称为连接查询,就是通过各个表之间共同列的关联性来查询数据。
1. 内连接(INNER JOIN) 内连接(INNER JOIN)是最常用的一种连接方式,只显示两个表中数据的集合部分案例:在表A和表B中使用内连接查询学生姓名、学校、职业* 实现方式一:在where子句中指定连接条件,写法如下select A.name 姓名A,A.school 学校A,B.name 姓名B,B.job 职业Bfrom A,B
where A.name=B.name
* 实现方式二:在from子句中使用inner join …on子句来实现,写法如下select A.name 姓名A,A.school 学校A,B.name 姓名B,B.job 职业Bfrom A inner join B onA.name=B.name
2. 外连接
外连接是对内连接的扩充,除了将两个表中数据重复部分连接起来,还可以要求显示左侧或右侧全部的数据(1)左外连接(LEFT JOIN) 左外连接的结果集包括左表的所有行案例:在表A和表B中使用左外连接查询学生姓名、学校、职业select A.name 姓名A,A.school 学校A,B.name 姓名B,B.job 职业Bfrom A left join B onA.name=B.name
(2)右外连接(RIGHT JOIN) 右外连接是左外连接的反向连接,其结果集包括右侧所有行案例:在表A和表B中使用右外连接查询学生姓名、学校、职业select A.name 姓名A,A.school 学校A,B.name 姓名B,B.job 职业Bfrom A right join B onA.name=B.name
(3)全连接(FULL JOIN) 全连接右成完整外连接,包括左表和右表中的所有行案例:在表A和表B中使用完整外连接查询学生姓名、学校、职业select A.name 姓名A,A.school 学校A,B.name 姓名B,B.job 职业Bfrom A full join B onA.name=B.name
3.合并两个结果集案例:将两个表的结果合并到一个结果显示SELECT 姓名,学号,班级,国籍FROM 二班UNIONselect +’ ‘+,学号,班级,国籍from 一班order by 班级 desc,学号 asc
4. 自连接案例:查找每个员工的上司姓名SELECT Y.员工姓名,S.员工姓名 AS 上司姓名from 员工信息表 as Y inner join 员工信息表 as Son Y.上司ID=S.员工ID
5.交叉连接 交叉连接就是表之间没有任何连接,左表与右表每一行一一组合,相当于两个表相乘SELECT T.教师姓名,C.课程名from 教员基本信息表 AS T cross join 课程表 AS C

相关推荐: 操作MySQL元数据或者全局命令方法

下面讲讲关于操作MySQL元数据或者全局命令方法,文字的奥妙在于贴近主题相关。所以开发云主机域名,闲话就不谈了,我们直接看下文吧,相信看完这篇文章你一定会有所受益。1,mysql -u root -p 登录对于以上操作MySQL元数据或者全局命令方法相关内容,…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/09 16:52
下一篇 06/09 16:52

相关推荐