精妙的SQL语句

preview
4星 · 超过85%的资源 需积分: 0 98 下载量 73 浏览量 更新于2007-10-08 4 收藏 78KB DOC 举报
### 知识点一:复制表结构而不复制数据 **标题与描述中的知识点:** - **标题中的“精妙的SQL语句”** 暗示了这些SQL语句不仅实用,而且在某些方面有着巧妙的设计。 - **描述中的“对学习SQL有很大帮助”** 表明这些SQL语句对于学习者来说是非常有价值的。 **详细知识点说明:** 1. **复制表结构(不包含数据):** - SQL语句:`SELECT * INTO b FROM a WHERE 1=1;` - **解析**:这个SQL语句用于创建一个名为`b`的新表,并且该表的结构完全复制自表`a`。其中`WHERE 1=1`是一个常用的技巧,用于确保没有任何行被实际插入到新表中,从而实现仅复制表结构的目的。 ### 知识点二:拷贝表结构及数据 **标题与描述中的知识点:** - **标题中的“精妙的SQL语句”** 和 **描述中的“对学习SQL有很大帮助”** 表明这是一些高效的SQL语句。 **详细知识点说明:** 1. **拷贝表(包含数据):** - SQL语句:`INSERT INTO b (a, b, c) SELECT d, e, f FROM a;` - **解析**:这条语句用于将表`a`中的数据复制到新表`b`中,其中`b`的列`a, b, c`分别对应`a`表中的列`d, e, f`。需要注意的是,在执行此操作前,表`b`必须已经存在并且具有相应的列。 ### 知识点三:展示文章、提交人及其最后回复时间 **标题与描述中的知识点:** - **标题中的“精妙的SQL语句”** 和 **描述中的“对学习SQL有很大帮助”** 表明这些SQL语句是经过精心设计的。 **详细知识点说明:** 1. **展示文章、提交人及其最后回复时间:** - SQL语句:`SELECT a.title, a.username, b.add_date FROM table_a, (SELECT MAX(add_date) add_date FROM table_b WHERE table_b.title = a.title) b;` - **解析**:这条SQL语句用于查询每个文章的标题、提交人以及针对该文章的最后一条回复的时间。这里使用了一个子查询来获取每篇文章的最后回复时间,并通过内联接的方式将其与原始文章信息关联起来。 ### 知识点四:外连接查询 **标题与描述中的知识点:** - **标题中的“精妙的SQL语句”** 和 **描述中的“对学习SQL有很大帮助”** 表明这些SQL语句是高效的。 **详细知识点说明:** 1. **外连接查询(表名1:a 表名2:b):** - SQL语句:`SELECT a.a, a.b, a.c, b.c, b.d, b.f FROM a LEFT OUTER JOIN b ON a.a = b.c;` - **解析**:这条语句实现了左外连接的功能,即返回所有来自`a`表的记录以及`b`表中匹配的记录。如果`b`表中没有匹配的记录,则结果集中对应的列将为NULL。这里的连接条件是`a.a = b.c`。 ### 知识点五:日程安排提前五分钟提醒 **标题与描述中的知识点:** - **标题中的“精妙的SQL语句”** 和 **描述中的“对学习SQL有很大帮助”** 表明这些SQL语句是高效的。 **详细知识点说明:** 1. **日程安排提前五分钟提醒:** - SQL语句:`SELECT * FROM 日程安排 WHERE DATEDIFF('MINUTE', '开始时间', GETDATE()) > 5;` - **解析**:这条SQL语句用于找出所有距离当前时间超过5分钟的日程安排。这里使用了`DATEDIFF`函数来计算时间差,并用`GETDATE()`函数获取当前时间。 ### 知识点六:删除主表中副表已不存在的信息 **标题与描述中的知识点:** - **标题中的“精妙的SQL语句”** 和 **描述中的“对学习SQL有很大帮助”** 表明这些SQL语句是高效的。 **详细知识点说明:** 1. **删除主表中副表已不存在的信息:** - SQL语句:`DELETE FROM info WHERE NOT EXISTS (SELECT * FROM info_bz WHERE info.infid = info_bz.infid);` - **解析**:这条SQL语句用于删除表`info`中不在`info_bz`表中的记录。这里使用了`NOT EXISTS`子句来判断是否有匹配的记录存在于副表中。 ### 知识点七:跨表查询并计算特定字段的值 **标题与描述中的知识点:** - **标题中的“精妙的SQL语句”** 和 **描述中的“对学习SQL有很大帮助”** 表明这些SQL语句是高效的。 **详细知识点说明:** 1. **跨表查询并计算特定字段的值:** - SQL语句:涉及多表关联及日期函数的复杂查询。 - **解析**:这条SQL语句用于跨多个表进行查询,并计算特定字段的值。它包括了表连接、子查询、日期函数等复杂元素,旨在展示SQL的强大功能。 ### 知识点八:按指定条件筛选学生信息 **标题与描述中的知识点:** - **标题中的“精妙的SQL语句”** 和 **描述中的“对学习SQL有很大帮助”** 表明这些SQL语句是高效的。 **详细知识点说明:** 1. **按指定条件筛选学生信息:** - SQL语句:`SELECT * FROM student_info WHERE NOT EXISTS (SELECT * FROM student WHERE student_info.id = student.id) AND 系名称 = ‘’" & strDepartmentName & "’’ AND 专业名称 = ‘’" & strProfessionName & "’’ ORDER BY 性别, 生源地, 高考总成绩;` - **解析**:这条SQL语句用于根据特定条件筛选学生信息,如系名称和专业名称,并排除那些在`student`表中已存在的学生ID。这里还使用了字符串拼接来动态构建SQL查询。 ### 知识点九:查询过去一年内的单位电话费用统计 **标题与描述中的知识点:** - **标题中的“精妙的SQL语句”** 和 **描述中的“对学习SQL有很大帮助”** 表明这些SQL语句是高效的。 **详细知识点说明:** 1. **查询过去一年内的单位电话费用统计:** - SQL语句:涉及多表连接、日期函数和聚合函数的复杂查询。 - **解析**:这条SQL语句用于查询过去一年内各用户的电话费用情况,包括每月的实际费用统计。这里使用了`DECODE`函数来处理月份,以及多个`SUM`函数来进行聚合计算。
ak47boyl
  • 粉丝: 2
  • 资源: 21
上传资源 快速赚钱
voice
center-task 前往需求广场,查看用户热搜