网站标签设计宁波网站建设推广报价
完成目标:
知识点:
1.DDL和DML的补充
|   知识点  |   核心内容  |   重点  | 
|   快速创建表  |   使用CREATE TABLE...AS SELECT语句基于现有表快速创建新表  |   结构和数据复制 vs 仅复制结构(WHERE 1=2)  | 
|   数据删除操作  |   DELETE FROM逐条删除 vs TRUNCATE TABLE重建表结构  |   DML操作 vs DDL操作、效率差异、自增ID重置  | 
|   部分数据复制  |   通过指定列名和WHERE条件选择性复制数据  |   列筛选(SELECT s_no,s_name,age)与行筛选(WHERE s_no=2)的组合使用  | 
|   操作类型区分  |   DDL(CREATE/DROP/TRUNCATE)与DML(INSERT/UPDATE/DELETE)  |   数据库对象操作 vs 数据操作的语法差异  | 
2.DQL##表的准备
|   知识点  |   核心内容  |   重点  | 
|   DQL查询操作  |   数据库中最重要且最常用的部分,涵盖单表查询、多表查询、子查询  |   多表关联逻辑(如自关联)、NULL与零值的区别(comm字段)  | 
|   表结构设计  |   四张表(部门表dept、员工表emp、薪资等级表sale grade、奖金表bonus)  |   外键关联(emp.dept_no参考dept,emp.mgr自关联)、字段含义(如loc=location)  | 
|   Oracle与MySQL对比  |   Oracle安装后自带四张表,MySQL需手动创建  |   表移植差异(字段兼容性)  | 
|   数据插入与验证  |   批量运行SQL脚本初始化表数据  |   数据完整性检查(如部门与员工的关联性)  | 
|   薪资等级逻辑  |   sale grade表定义工资区间等级(1-5级)  |   区间边界值理解(如1200属于1级还是2级)  | 
3.最简单的SQL语句
|   知识点  |   核心内容  |   重点  | 
|   单表查询基础  |   SELECT * FROM emp 查询整表数据,SELECT 列名 筛选部分列,WHERE 子句过滤行  |   星号(*)表示所有列,WHERE 条件需注意数据类型匹配  | 
|   列别名与特殊字符处理  |   使用 AS 或直接空格定义别名(如 empno AS 员工编号),含空格/特殊符号时需加单/双引号  |   别名含空格时必须加引号,否则报错(如 "涨薪后工资")  | 
|   算术运算符应用  |   在查询中直接计算(如 sal+1000),但 NULL 参与运算结果为 NULL  |   NULL 与 0 的区别,需后续学习 NVL 函数处理  | 
|   去重操作  |   DISTINCT 对单列或多列组合去重(如 DISTINCT job, deptno)  |   多列去重时针对组合结果,非单列独立去重  | 
|   排序规则  |   ORDER BY 默认升序(ASC),降序需显式声明(DESC),支持多列混合排序  |   多列排序时优先级按字段顺序,如 ORDER BY sal ASC, deptno DESC  | 
|   经典案例  |   Oracle 示例表 emp 包含 14 条记录,如用户 SCOTT(密码 TIGER)为早期员工数据  |   表设计巧妙覆盖多数查询场景,适合教学  | 
4.where子句
|   知识点  |   核心内容  |   重点  | 
|   WHERE子句基础  |   通过WHERE子句添加过滤条件筛选数据,支持关系运算符(=、>、<、>=、<=、!=)  |   区分=与!=的写法(<>或!=均有效)  | 
|   字符型数据查询  |   字符串比较默认不区分大小写,需用BINARY关键字强制区分(如WHERE BINARY job='CLERK')  |   单引号/双引号通用,但大小写敏感需特殊处理  | 
|   日期与数值过滤  |   支持日期比较(如hiredate < '1981-12-25')和数值区间查询(sal BETWEEN 1500 AND 3000)  |   BETWEEN AND包含边界值,而> AND <不包含  | 
|   逻辑运算符  |   AND(与)、OR(或)及符号替代(&&、`  | |
|   IN运算符  |   替代多条件OR(如deptno IN (10,20)),支持字符型(job IN ('MANAGER','CLERK'))  |   IN列表内为精确匹配,非范围  | 
|   模糊查询  |   LIKE配合通配符:%(任意多字符)、_(单个字符),如ename LIKE '_A%'(第二位为A)  |   通配符位置影响匹配结果  | 
|   NULL值处理  |   需用IS NULL/IS NOT NULL判断空值,不可用=NULL  |   零值(0)与NULL本质不同  | 
|   综合查询示例  |   多条件组合(如(job='SALESMAN' OR job='CLERK') AND sal>=1500)  |   括号对逻辑表达式的关键影响  | 
5.函数的分类
|   知识点  |   核心内容  |   重点  | 
|   SQL函数概念  |   封装特定功能的可调用模块(类似JAVA方法/Python函数),通过名称直接调用  |   函数不改变原数据值,仅对展示结果加工处理  | 
|   单行函数  |   对每条记录独立计算(如LOWER()/UPPER()),输入输出记录数一致  |   与多行函数的核心区别:逐条处理 vs 聚合计算  | 
|   多行函数(分组函数)  |   对一组数据聚合运算(如MAX()/SUM()),返回单一结果  |   仅5种:MAX/MIN/COUNT/SUM/AVG  | 
|   函数分类记忆技巧  |   “除多行函数外均为单行函数”(因单行函数数量庞大)  |   易混淆点:分类依据是处理逻辑而非结果行数  | 
|   函数作用  |   提升查询能力(如大小写转换、数值统计)  |   注意:LOWER(e_name)等单行函数会保留原表行数  | 
6.单行函数(1)
7.单行函数(2)
|   知识点  |   核心内容  |   重点  | 
|   字符串/数值/日期函数  |   回顾内容,包含字符串、数值、日期与时间函数的SQL示例  |   空值处理(如NULL参与计算时需用IFNULL转换)  | 
|   流程函数-IF  |   IF(条件, 真值, 假值)实现双分支逻辑,示例:薪资分级(高薪/低薪)  |   单分支逻辑:IFNULL(com,0)解决NULL计算问题  | 
|   流程函数-NULLIF  |   NULLIF(值1,值2):相等返回NULL,不等返回值1  |   适用场景较少,需注意与IFNULL区别  | 
|   流程函数-CASE(等值判断)  |   CASE job WHEN 'clerk' THEN '店员'...实现职位中英文映射  |   必须包含END结尾,ELSE处理默认情况  | 
|   流程函数-CASE(区间判断)  |   CASE WHEN salary<=1000 THEN 'A级'...实现薪资分级(A/B/C/D)  |   区间条件需严格递进(如1000-2000需隐含>1000)  | 
|   其他函数  |   DATABASE()/USER()/VERSION()查询当前库/用户/版本信息  |   版本号识别(如8.0.21对应MySQL 5.8+)  | 
