SQL基础与面试实战:全面掌握常用语句

需积分: 50 8 下载量 197 浏览量 更新于2024-09-11 1 收藏 22KB TXT 举报
本篇文章主要回顾和总结了基础SQL语句及其在面试中的常见问题,涵盖了数据库操作、数据查询、条件筛选、函数应用以及日期处理等核心知识点。以下是详细内容: 1. **表结构描述**: `desc emp` 是用于查看表`emp`的结构,包括字段名、数据类型等信息,这对于理解后续SQL查询中的列非常重要。 2. **简单查询**: `select * from salgrade;` 用于获取`salgrade`表中的所有数据。`select ename, sal * 12 from emp;` 计算员工薪水的12倍,可能用于显示年薪。 3. **运算与别名**: `select 2 * 3 from emp;` 显示乘法运算的结果,共14行。`select sysdate from dual` 获取当前系统日期。`annual_salary` 是对`sal`列的一个别名,用于清晰表示含义。 4. **特殊表和表达式**: `dual`是一个特殊的表,仅包含一行数据,常用于演示单行计算,如`select 2 * 3 from dual`只有一行。 5. **文本处理**: `select ename || 'nihao'` 运用了字符串连接操作,将员工名字和中文问候语连接在一起。字符串中嵌套单引号的处理规则也有所提及。 6. **条件查询**: `where`子句用于添加筛选条件,如`select * from emp where ename = 'CLARK';` 仅选取ename为'CLARK'的记录。字符串比较中,SQL会逐个字符比较。 7. **数值运算与空值**: `select ename, sal * 12 + comm '总年薪' from emp;` 空值与数值相加结果为空值。`is null`用于检测NULL值。 8. **字符串处理**: `ename || ' nihao'` 和 `||` 符号用于字符串拼接,而单引号用于界定字符串内容,包括中文。 9. **唯一性与分组**: `select distinct deptno from emp;` 可以去除重复的部门编号。`distinct`关键字用于去重。 10. **范围和条件筛选**: `where sal <> ALL (1500, 2000, 2500, 3000)` 表示薪水不等于指定的数值集合。`between`和`>=`/`<=`组合用来定义范围。 11. **日期处理**: `select * from emp where hiredate > '20-2-81'` 用于筛选特定日期之后的雇员。日期格式需要符合SQL标准。 12. **LIKE操作**: `like 'A%'` 用于模糊匹配,%表示任意数量的字符,用于模式搜索。 13. **排序与转义字符**: `order by`用于对结果进行排序,`escape`用于转义特殊字符,如`substr`函数。 14. **转换与函数应用**: `to_char`函数用于格式化输出,如货币金额的格式化、日期时间的表示。`nvl`函数处理空值。 15. **类型转换**: 如`to_number`函数用于将字符串转换为数字,`chr`和`ascii`用于字符和ASCII码的相互转换。 16. **复杂查询**: 如多条件筛选、混合排序和空值处理等综合运用。 这些知识点构成了SQL基础的核心内容,涵盖了数据查询、表结构理解、条件判断、函数运用等多个方面,对于准备SQL面试的人来说是非常重要的复习材料。