侧边栏壁纸
  • 累计撰写 793 篇文章
  • 累计创建 1 个标签
  • 累计收到 1 条评论
标签搜索

目 录CONTENT

文章目录

查询

Dettan
2021-04-10 / 0 评论 / 0 点赞 / 197 阅读 / 947 字
温馨提示:
本文最后更新于 2022-07-23,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
/ DATA / 查询

常用值处理函数where 子句语法top n [with ties]嵌套用where 用结果处理排序结果入表结果整合group byhavingcomputeexceptintersect联结查询视图创建重命名删除和操作表一样的操作例子
TOC
where 子句语法
top n [with ties]
显示结果中的最高几个,ties 的意思是联系的.
top 3 with ties //ties 意思是层次,加上ties就是把同一排名的都输出
清华大学出版社 4 北京铁道出版社 2 北京邮电大学出版社 2 中南大学出版社 2
top 3
清华大学出版社 4 北京铁道出版社 2 北京邮电大学出版社 2
嵌套用
<字段> <比较符> (子查询)
all
> all 集合 大于集合内所有值的值
any/some
in
=
where 用
between .. and ..
in
like _代表一个字符,%代表多个字符 [] 代表范围,[^] 代表非范围
exists
结果处理
在用于 GROUP BY 子句分组依据列表的表达式中,不能使用聚合或子查询。
排序
select * from 读者信息 order by 办卡时间 desc,借阅证件类型 asc desc 降序 asc 升序
结果入表
into select * into 新表名 from 读者信息 where 借阅证件类型=2004 新建一个表,把查到的内容的指定列放进去
结果整合
union 两个select 语句中间加上union. 两个语句查询结果的列应该一样.
group by
having
对聚合后的数据加条件 与group by 一起用 select avg(c1) from .. group by c2 having avg(c1)>20
compute
对查出来的每一列数据的指定列进行计算,可以和group by同用. select 学号,成绩 from 选课 where 课程='数学' compute avg(成绩) by 班级 最后在select结果后正常显示算粗来的avg.
stdev 标准偏差
stdevp 总体标准偏差
var 方差
varp 总体方差
except
返回结果里有右边没有的
intersect
返回左右两边都有的.
联结查询
return (Db::query("select course.name as courseName,class.name as className from schedule join course on courseId=course.id join class on classId=class.id where teacherId=1"));
from table1 join_type table2 [on condition]
join_type
inner join 内联结,inner可省,只列出符合条件的
outjoin
left outer join 左全列出
视图
就跟新建表一样,但是叫视图,给用户看的. 作用 : 把常用的查询语句写成视图,避免重复输入
创建
create view v_borrow as select 借阅信息.借阅证号,姓名,图书信息.书名,借阅日期 from 读者信息,借阅信息,图书信息 where 图书信息.图书编号=借阅信息.图书编号 and 借阅信息.借阅证号=读者信息.借阅证号
重命名
sp_rename v_reader ,v_reader_info
删除
drop view v_info
和操作表一样的操作
select * from v_borrow where 借阅证号=’B00001’

alter view v_book
as
select 图书编号,书名 ,作者,出版单位,单价,分类号 from 图书信息

insert into dbo.v_book 
values('10170001','计算机导论','王艺','清华大学出版社','35','17')

delete from v_book
where 图书编号='10150004'
例子
select * from 读者信息 where 办卡时间 > '2010-1-1'
sSELECT COUNT(*) FROM 读者信息
SELECT SUBSTRING(姓名,1,1) FROM 读者信息
不是取姓名的第一个字,是取查出来的姓名的这一列的第一个字
SELECT UPPER('database') SELECT REPLICATE('database',3) SELECT 2,3,POWER(2,3) SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE())
select top 3 with ties 出版单位,COUNT(图书编号) as 出版数目 from 图书信息 group by 出版单位 order by 出版数目 descelect 借阅证号,COUNT() as 借阅本数 from 借阅信息 group by 借阅证号 having COUNT() > 1
0

评论区