- where子句用来筛选from子句中指定的数据源所产生的行数据,group by子句用来对经where子句筛选出来后的结果数据进行分组,having 子句用来对分组后的结果数据再进行筛选。建议将所有应该在分组之前进行的搜索条件放在where子句中而不是having子句中,这样会减少参与分组的数据行执行效率高。
- 内连接 select * from student inner join sc on student.sno = sc.sno
- 为表取别名 from student as s ,当为表取了别名以后,在查询语句的其他地方,所有用到表名的地方都要使用别名
- 每链接一个表就要添加一个join子句。
- 自连接 select c1.name , c1.credit from course c1 join course c2 on c1.credit=c2.credit where c2.name = '数据结构'
- 使用子查询进行比较测试select sno,grade, from sc where cno = 'c005' and grade > ( select avg(grade) from sc where cno = 'c05' )
- 将查询结果保存到新表中:select sdept ,count(*) as 人数 into dept_cnt from student group by sdept
- select s.sno 学号,sname 姓名,
case sdept
when '计算机系' then 'cs'
when '信息系' then 'im'
when '数学系' then 'ma'
end as 所在系,grade 成绩 from student - select s.sno 学号,sname 姓名,
case
when sdept='计算机系' then 'cs'
when sdept='信息系' then 'im'
end as 所在系 from student - update sc set grade = grade +
case dept
when '数学系' then 10
when '信息系' then 5
else 0
end from student - 查询结果的并、交、差运算
并
select 语句1
union all
select 语句2
union all
select 语句3
交
select 语句1
intersect
select 语句2
intersect
select 语句3
差
select 语句1
except
select 语句2
except
select 语句3 - 当查询语句的目标列中包含聚合函数时,若没有分组子句,则目标函数中只能写聚合函数,而不能再写其他列名,若包含分组子句,则在查询的目标列中除了可以写聚合函数外,只能写分组依据列。
- 对行的过滤条件一般用where子句实现,对组的过滤条件用having子句实现
- 不能将对统计后的结果进行筛选的条件写在where子句中,应该写在having子句后
- 能否通过视图修改数据的基本原则:如果这个操作能够最终落实到基本表中上,成为基本表的基本操作,则可以进行,否则就不能通过视图修改数据。
- 如果被删除的视图是其他视图的数据源,那么删除该视图则其导出视图无法再使用,如果定义视图的基本表被删除了,则视图将无法使用。
- 视图一定程度上提供了数据的逻辑独立性,因为它对应的是数据库的外模式,当数据库的表结构变了,但应用程序可以不必修改,新建的视图保证了用户原来的关系,使用户的外模式未发生改变。
- 标准数据仓库,数据集市,多层数据仓库,联合式数据仓库
数据库学习笔记
vivi_and_qiao2025-08-30 14:40
相关推荐
真上帝的左手11 小时前
30. 技术专题-应用框架组件-关系型数据库-MySQL-Mybatis为思念酝酿的痛11 小时前
MySQL表的连接程序猿乐锅11 小时前
万字详解Single-flight(单飞模式)数字新视界11 小时前
机房动环监控系统在提升数据中心能效与安全中的应用探索bksczm12 小时前
MySQL之存储引擎大模型最新论文速读12 小时前
text-to-sql:从学术玩具到生产落地赵谨言13 小时前
多语种在线语言学习平台LinguaVerse的设计与实现毕业论文ManageEngineITSM13 小时前
工单分类怎么设计?类别、子类别与自动分派的实用方法一支蜉蝣13 小时前
Day26 XD安全学习笔记--PHP 应用&模版引用&Smarty渲染&MVC 模型&数据联动&RCE 安全ClouGence13 小时前
MongoDB 双向同步如何防止数据循环?(附实操指南)