当前位置: 首页 > news >正文

学习日记-day30-6.15

完成目标:

知识点:

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+)

相关文章:

  • 山东大学软件学院创新项目实训开发日志——第十七周(二)
  • 手写muduo网络库(九):TcpConnection
  • 如何使用configure脚本安装PBS
  • 图形编辑器基于Paper.js教程29:基于图层的所有矢量图元的填充规则实现
  • 组策略关闭 Windows 防火墙指南(企业版/专业版)
  • SpringMVC系列(一)(介绍,简单应用以及路径位置通配符)
  • 机器学习实验报告5-K-means 算法
  • Linux--存储系统探秘:从块设备到inode
  • 影视剧学经典系列-梁祝-陶渊明《感士不遇赋并序》
  • Appium+python自动化(二十三)- Monkeyrunner与Monkey
  • React forwardRef 与 useImperativeHandle 深度解析
  • selenium点击元素出现的obscure问题
  • 设计模式精讲 Day 2:工厂方法模式(Factory Method Pattern)
  • 什么是敏捷中的迭代(Iteration)和 Sprint?
  • 计算机硬件——主板
  • 【旧题新解】第 9 集 带余除法
  • Java 常用类 Arrays:从零到实战的数组操作指南
  • ArkUI-X框架LogInterface使用指南
  • 安卓9.0系统修改定制化____深入解析安卓 9.0 各手机分区:功能、作用与差异 基础篇二
  • Java的DI依赖注入
  • 知名企业门户网站建设服务公司/产品宣传推广策划
  • 东莞网站建设方案推广/百度公司推广电话
  • wap手机网站开发asp经验/百度视频推广怎么收费
  • 专业做私募网站/站长工具无忧
  • 做游戏网站有几个要素/网站排名优化首页
  • 哪个网站可以做平面兼职/营销型网站建设多少钱