SQL语法面试题 整理 精华 微软面试题目 1、复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 1<>1 法二:select top 0 * into b from a 2、拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用) insert into b(a, b, c) select d,e,f from b; 3、跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用) insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件 例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where.. 4、子查询(表名1:a 表名2:b) select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3) 5、显示文章、提交人和最后回复时间 select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b 6、外连接查询(表名1:a 表名2:b) select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c 7、在线视图查询(表名1:a ) select * from (SELECT a,b,c FROM a) T where t.a > 1; SQL是Structured Query Language的缩写,是用于管理关系数据库的标准语言。以下是一些关于SQL高级面试题的关键知识点,以及它们的解释和应用: 1. **复制表(只复制结构)**: - 使用`SELECT * INTO`语句,配合`WHERE 1<>1`或`TOP 0 *`,可以创建一个新表并复制源表的结构,但不包含数据。这种方法在Access中有效。 2. **拷贝表(拷贝数据)**: - `INSERT INTO ... SELECT`语句用于从一个表(源表a)复制数据到另一个表(目标表b)。 3. **跨数据库之间表的拷贝**: - 当需要在不同数据库间拷贝数据时,可以使用`FROM ... IN '具体数据库'`结构,配合条件语句,来指定绝对路径。 4. **子查询**: - 子查询可以在`WHERE`子句中使用,例如`WHERE a IN (SELECT d FROM b)`,或者直接提供一组值`WHERE a IN (1,2,3)`。 5. **显示文章、提交人和最后回复时间**: - 使用嵌套的子查询来找到每个文章的最新回复日期。 6. **外连接查询**: - `LEFT JOIN`或`LEFT OUTER JOIN`用于获取左表(a)的所有记录,即使在右表(b)中没有匹配的记录。未匹配的记录在右表列中显示为NULL。 7. **在线视图查询**: - 创建一个临时视图,然后在其上执行查询,如`SELECT * FROM (SELECT a, b, c FROM a) T WHERE t.a > 1;`。 8. **BETWEEN的用法**: - `BETWEEN`操作符用于选取在两个值之间的数据,包括边界值。`NOT BETWEEN`则排除这个范围。 9. **IN的使用**: - `IN`操作符用于选取列值在特定列表中的行,`NOT IN`则是排除这些值。 10. **删除已不存在关联的记录**: - `DELETE`语句结合`NOT EXISTS`子句,用于从主表中删除在副表中找不到对应记录的行。 11. **四表联查**: - `JOIN`语句可以链接多个表,例如`LEFT INNER JOIN`, `RIGHT INNER JOIN`和`INNER JOIN`组合,实现复杂的多表查询。 12. **日程安排提醒**: - `DATEDIFF`函数用于计算两个日期之间的差值,可以用来判断是否已超过提醒时间。 13. **数据库分页**: - 通过子查询和`TOP`关键字,可以实现高效的分页查询。 14. **选择前n条记录**: - `SELECT TOP n * FROM`用于选取前n个记录,配合`WHERE`条件可以进一步限定范围。 15. **分组内最大值**: - 使用子查询和聚合函数`MAX()`,可以找出每个分组内某列的最大值对应的完整记录。 16. **排除重复行**: - `EXCEPT`操作符用于排除在多个表中的重复行。 17. **随机选择记录**: - 在SQL Server中,可以使用`ORDER BY NEWID()`来随机排序并选取记录。 18. **生成唯一ID**: - `NEWID()`函数在SQL Server中生成全局唯一标识符(GUID)。 19. **删除重复记录**: - 删除所有非最小ID的重复记录,可以使用子查询和`NOT IN`。 以上是SQL面试中可能遇到的一些高级问题和解答,涵盖了表操作、查询优化、联接、聚合函数、分页、子查询等多个方面,对于理解和掌握SQL的高级用法非常重要。在面试中,理解并能够灵活运用这些技巧将有助于展示你的专业技能。
剩余8页未读,继续阅读
- yuyue59452015-12-05蛮适合我的,谢谢!~
- 粉丝: 143
- 资源: 33
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助