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

MySQL 程序设计课程复习大纲

作为一门基础的 MySQL 程序设计课程,期末复习的重点应放在常见的数据库操作、基本查询、数据建模、关系型数据库的规范化设计等方面。以下是针对基础课程的 MySQL 期末复习知识点。

1. MySQL 基础概念与数据库操作

  • 数据库基础

    • 数据库与表的概念
    • 数据库管理系统(DBMS)的作用与功能
    • MySQL 与其他数据库的区别
    • MySQL 的安装与配置
  • 基本的数据库操作

    • 创建数据库:CREATE DATABASE
    • 删除数据库:DROP DATABASE
    • 查看当前数据库:SHOW DATABASES
    • 选择数据库:USE
  • 表的创建与管理

    • 创建表:CREATE TABLE
    • 删除表:DROP TABLE
    • 修改表结构:ALTER TABLE
    • 查看表结构:DESCRIBESHOW COLUMNS
    • 表的约束:PRIMARY KEYNOT NULLUNIQUEFOREIGN KEYCHECK(根据 MySQL 版本)

2. 数据类型与表设计

  • 常用数据类型

    • 整数类型:INT, TINYINT, BIGINT
    • 浮点类型:FLOAT, DOUBLE, DECIMAL
    • 字符类型:CHAR, VARCHAR, TEXT
    • 日期和时间类型:DATE, DATETIME, TIMESTAMP, TIME
    • 布尔类型:BOOLEAN(实际上是 TINYINT(1)
    • 枚举类型:ENUMSET
  • 字段约束

    • 主键(Primary Key):唯一且不能为空,自动索引
    • 外键(Foreign Key):与其他表的字段建立关联,维护参照完整性
    • 唯一约束(Unique):保证字段值唯一
    • 非空约束(NOT NULL):字段不能为空
    • 默认值(DEFAULT):指定默认值
  • 表的设计规范

    • 数据库范式:第一范式 (1NF)第二范式 (2NF)第三范式 (3NF) 的概念与应用
    • 如何避免冗余数据,设计合适的主外键关系
    • 规范化与反规范化的选择

3. SQL 查询语言

  • 基本查询

    • SELECT 查询:选择指定的列
    • FROM 子句:指定查询的表
    • WHERE 条件:筛选满足条件的记录
    • ORDER BY 排序:根据一个或多个字段排序,ASC(升序)、DESC(降序)
    • LIMIT 限制返回的记录数
  • 常见的查询操作

    • 使用 AND, OR, NOT 来组合多个条件
    • 模糊查询:LIKE 与通配符(%, _
    • IN:指定多个可能的值
    • BETWEEN:范围查询
    • NULL 判断:IS NULL, IS NOT NULL
  • 聚合函数

    • 常见聚合函数:COUNT(), SUM(), AVG(), MIN(), MAX()
    • GROUP BY:分组查询
    • HAVING:对分组结果进行筛选(与 WHERE 的区别)

4. 多表查询

  • 连接查询

    • 内连接(INNER JOIN):返回两个表中匹配的记录
    • 左连接(LEFT JOIN):返回左表所有记录以及右表中匹配的记录
    • 右连接(RIGHT JOIN):返回右表所有记录以及左表中匹配的记录
    • 全连接(FULL JOIN):返回左右表所有记录(MySQL 不直接支持,需要使用 UNION
    • 自连接:同一个表进行连接查询
  • 子查询

    • 单行子查询:返回单行单列的结果
    • 多行子查询:使用 INANYALL 等关键字
    • 关联子查询:在子查询中使用外部查询的字段

5. 数据操作语言(DML)

  • 数据插入(INSERT)

    • 插入单行数据:INSERT INTO table (columns) VALUES (values)
    • 插入多行数据:INSERT INTO table (columns) VALUES (value1), (value2)
    • 插入时使用默认值:INSERT INTO table DEFAULT VALUES
  • 数据更新(UPDATE)

    • 更新指定字段的值:UPDATE table SET column = value WHERE condition
    • 多行更新:一次更新多条记录
  • 数据删除(DELETE)

    • 删除指定记录:DELETE FROM table WHERE condition
    • 删除所有记录DELETE FROM table(不删除表结构)

6. 数据控制语言(DCL)

  • 权限控制

    • 用户管理:CREATE USER, DROP USER, GRANT, REVOKE
    • 用户权限分配:授予、撤销权限,例如:GRANT SELECT, INSERT ON database TO 'user'@'host'
  • 事务控制

    • 事务的概念:ACID(原子性、一致性、隔离性、持久性)
    • 事务命令:START TRANSACTION, COMMIT, ROLLBACK
    • 锁机制:行级锁、表级锁

7. 索引与优化

  • 索引的基本概念

    • 索引的作用:提高查询效率
    • 常见索引类型:单列索引、多列索引、唯一索引、全文索引
    • 创建索引CREATE INDEX
    • 删除索引DROP INDEX
  • 查询优化

    • 使用 EXPLAIN 查看查询执行计划
    • 常见的查询优化技巧:避免全表扫描、减少子查询使用、合理设计索引

8. 视图与存储过程

  • 视图(View)

    • 视图的概念与创建:CREATE VIEW
    • 查询视图与删除视图:SELECT FROM viewDROP VIEW
  • 存储过程(Stored Procedures)

    • 存储过程的创建与调用:CREATE PROCEDURECALL
    • 参数:输入参数、输出参数、IN/OUT 参数
    • 存储过程的使用场景与优化

9. 常见的错误与调试

  • 常见的 SQL 错误
    • 语法错误、数据类型错误、主外键约束错误
    • 查询返回空结果或无匹配数据时的调试技巧
  • 调试技巧
    • 使用 SHOW ERRORS 查看错误信息
    • 分析查询的执行计划

复习建议:

  • 重点掌握:SELECT 查询、JOIN 操作、数据的增删改查、表结构设计、索引与优化。
  • 多做练习:通过大量的 SQL 练习来巩固知识点,尤其是多表查询、嵌套查询和子查询。

相关文章:

MySQL 程序设计课程复习大纲

作为一门基础的 MySQL 程序设计课程,期末复习的重点应放在常见的数据库操作、基本查询、数据建模、关系型数据库的规范化设计等方面。以下是针对基础课程的 MySQL 期末复习知识点。 1. MySQL 基础概念与数据库操作 数据库基础 数据库与表的概念数据库管理系统&…...

C++ : STL容器(适配器)之stack、queue剖析

STL容器适配器之stack、queue剖析 一、stack、queue的接口(一)stack 接口说明(二)queue 接口说明 二、stack、queue的模拟实现(一)stack、queue是容器适配器stack、queue底层默认容器--deque1、deque概念及…...

nuxt3安装pinia报错500[vite-node] [ERR_LOAD_URL]问题解决

按照pinia官网步骤安装运送服务会报一个500[vite-node] [ERR_LOAD_URL]问题,查阅各个网站资料没有找到有用信息. 最后解决:在package.json中把pinia的版本给降回0.5.5版本之后就正常了 "dependencies": {"element-plus/icons-vue": "^2.3.1",&q…...

青少年编程能力等级测评CPA试卷(2)Python编程(一级)

青少年编程能力等级测评CPA试卷(2) Python编程(一级) (考试时间90分钟,满分100分) 一、单项选择题(共20题,每题3.5分,共70分) 下列语句的输出结果是( &am…...

wordpress判断page页与非page页

在WordPress中&#xff0c;你可以使用is_page()函数来判断当前页面是否为page类型。以下是如何使用这个函数的示例&#xff1a; <?php if (is_page()) {// 当前页面是page类型echo 这是一个Page页面; } else {// 当前页面不是page类型echo 这不是一个Page页面; } ?> …...

JavaScript 库-qs的使用

meta.query qs.parse(query)语句解析&#xff1a;qs.parse(query) qs 是一个常用的 JavaScript 库&#xff08;全称为 query-string 或 qs&#xff09;&#xff0c;它用于处理 URL 查询字符串。qs.parse(query) 会将查询字符串解析成一个对象。举个例子&#xff1a; 假设有一…...

Leetcode 两数之和 Ⅱ - 输入有序数组

这段代码实现了在一个非递减排序的数组中找到两个数&#xff0c;使它们的和等于目标值的算法。算法使用了双指针技术&#xff0c;具体思想如下&#xff1a; 算法思想&#xff1a; 初始化指针&#xff1a;定义两个指针 left 和 right&#xff0c;分别指向数组的起始位置和末尾位…...

多处理器一致协议(MSI)协议详细介绍

多处理器一致协议 MSI 协议详细介绍 #mermaid-svg-2lc6AxM2mRiND4C0 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-2lc6AxM2mRiND4C0 .error-icon{fill:#552222;}#mermaid-svg-2lc6AxM2mRiND4C0 .error-text{fill:…...

SSH实验5密钥登录Linuxroot用户(免密登录)

当用户尝试通过SSH连接到远程服务器时&#xff0c;客户端会生成一对密钥&#xff1a;公钥和私钥。公钥被发送到远程服务器&#xff0c;并存储在服务器的~/.ssh/authorized_keys文件中。而私钥则由客户端保管&#xff0c;不会传输给服务器。 在连接过程中&#xff0c;客户端使用…...

2024 网鼎杯 - 青龙组 Web WP

2024 网鼎杯 - 青龙组 WEB - 02 打开容器一个登录界面&#xff0c;随便输入账号密码可以进到漏洞界面 这里有一个发送给boss的功能&#xff0c;一眼xss 有三个接口&#xff1a;/flag 、/update 、/submit /flag &#xff1a;要求boss才能访问&#xff0c;/update &#xf…...

ORACLE 闪回技术简介

闪回技术是若干技术的集合 包含对数据库整体的闪回 对表的闪回 对事务的闪回 经典面试题面试题&#xff1a;简述Oracle数据库闪回技术&#xff1f; 1.闪回Oracle数据库 2.闪回表 3.闪回事务 数据库闪回 要想实现数据库闪回 1.必须配置数据库的恢复区 SQL> show parameter …...

【笔记】LLC电路工作频点选择 2-2 开关管与滤波压力

LLC谐振变换器稳态工作波形分析 - 知乎&#xff0c;上面这篇文的结论相较MPS那篇文章的结论更严格。我们分析一下它的频点选择为什么会更窄&#xff1a; 1. LLC电路模型 电流滞后的特性就是电路呈感性注意这里也是开关管ZVS开通。 2.工作循环的波形 iLm的波形&#xff0c;最终…...

【CUDA】认识CUDA

目录 一、CUDA编程 二、第一个CUDA程序 三、CUDA关键字 四、device管理 4.1 初始化 4.2 Runtime API查询GPU信息 4.3 决定最佳GPU CUDA C 编程指南CUDA C在线文档&#xff1a;CUDA C 编程指南 CUDA是并行计算的平台和类C编程模型&#xff0c;能很容易的实现并行算法。只…...

Linux(CentOS)yum update -y 事故

CentOS版本&#xff1a;CentOS 7 事情经过&#xff1a; 1、安装好CentOS 7&#xff0c;系统自带JDK8&#xff0c;版本为&#xff1a;1.8.0_181 2、安装好JDK17&#xff0c;版本为&#xff1a;17.0.13 3、为了安装MySQL执行了 yum update -y&#xff08;这个时候不知道该命令的…...

AI绘画赚钱秘籍!掌握ai绘画赚钱技巧,开启副业新篇章,ai绘画赚钱实战指南!

AI绘画赚钱&#xff1a;方法与策略 一、引言 ​ 随着人工智能技术的日益发展&#xff0c;AI绘画作为新兴领域&#xff0c;正逐渐成为赚钱的新途径。本文将从多个角度探讨AI绘画赚钱的完整策略&#xff0c;帮助读者深入了解并把握这一领域的商机。 二、AI绘画赚钱的主要方式…...

HCIP-HarmonyOS Application Developer V1.0 笔记(四)

平板/折叠屏设计 自适应动态布局&#xff1a;相对拉伸、相对缩放、延伸布局 响应式动态布局&#xff1a;挪移布局、重复布局、瀑布布局 Sketch 插件 设计系统&#xff1a;提供了 HarmonyOS 设计语言中定义的视觉参数和设计资源文件。 控件库&#xff1a;按类别组织控件&…...

【前端】Svelte:组件封装与使用

在 Svelte 中&#xff0c;组件化是开发的核心理念。将页面的不同部分封装成独立组件&#xff0c;不仅可以提升代码的复用性&#xff0c;还能让项目的结构更加清晰。在本文中&#xff0c;我们将介绍如何创建、封装、引入和使用 Svelte 组件&#xff0c;帮助你快速上手 Svelte 的…...

STM32标准库-待机模式

1.1 STM32待机模式简介 STM32单片机具有低功耗模式&#xff0c;包括睡眠、停止和待机三种。 运行状态下&#xff0c;HCLK为CPU提供时钟。HCLK由AHB预分频器分频后直接输出得到。 低功耗模式选择需考虑电源消耗、启动时间和唤醒源。 睡眠模式停CPU不停外设时钟&#xff1b; 停止…...

【论文笔记】The Power of Scale for Parameter-Efficient Prompt Tuning

&#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&#xff0c;为生民立命&#xff0c;为往圣继绝学&#xff0c;为万世开太平。 基本信息 标题: The Power of Scale for P…...

几个docker可用的镜像源

几个docker可用的镜像源 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; sudo rm -rf /etc/docker/daemon.json sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": ["https://d…...

Spring学习笔记_27——@EnableLoadTimeWeaving

EnableLoadTimeWeaving 1. 介绍 在Spring框架中&#xff0c;EnableLoadTimeWeaving 是一个注解&#xff0c;它用于启用加载时织入&#xff08;Load-Time Weaving, LTW&#xff09; LWT[Spring学习笔记_26——LWT-CSDN博客] 2. 场景 AOP&#xff1a;在Spring框架中&#xf…...

【数据分析】如何构建指标体系?

有哪些指标体系搭建模型&#xff1f;五个步骤教你从0开始搭建指标体系 一、企业指标体系搭建存在什么问题 许多企业在搭建数据指标体系时遇到了诸多难题&#xff0c;如问题定位不准确、数据采集不完整、目标不一致、报表无序、指标覆盖不全面以及报表价值未充分利用等。 1、…...

大数据程序猿不可不看的资料大全

​ 随着大数据技术的发展&#xff0c;大数据程序猿在数据采集、处理、分析、存储等方面的技能需求不断增加。要在这个领域保持竞争力&#xff0c;系统性地学习和掌握大数据工具、技术架构和行业趋势是非常重要的。以下为您提供一份围绕大数据程序猿不可不看的资料大全&#xf…...

【架构设计常见技术】

EJB EJB是服务器端的组件模型&#xff0c;使开发者能够构建可扩展、分布式的业务逻辑组件。这些组件运行在EJB容器中&#xff0c;EJB将各功能模块封装成独立的组件&#xff0c;能够被不同的客户端应用程序调用&#xff0c;简化开发过程&#xff0c;支持分布式应用开发。 IOC …...

LLMs之MemFree:MemFree的简介、安装和使用方法、案例应用之详细攻略

LLMs之MemFree&#xff1a;MemFree的简介、安装和使用方法、案例应用之详细攻略 目录 MemFree的简介 1、MemFree的价值 2、MemFree 配备了强大的功能&#xff0c;可满足各种搜索和生产力需求 3、MemFree AI UI生成器功能 MemFree 安装和使用方法 1. 前端安装 2. 向量服务…...

Hive简介 | 体系结构

Hive简介 Hive 是一个框架&#xff0c;可以通过编写sql的方式&#xff0c;自动的编译为MR任务的一个工具。 在这个世界上&#xff0c;会写SQL的人远远大于会写java代码的人&#xff0c;所以假如可以将MR通过sql实现&#xff0c;这个将是一个巨大的市场&#xff0c;FaceBook就这…...

[C++] GDB的调试和自动化检测

文章目录 GDB基本使用1. bazel的debug过程2. line-tables-only的使用 Reference GDB基本使用 参考文档&#xff1a; https://zhuanlan.zhihu.com/p/655719314 1. bazel的debug过程 需要带--copt-g --copt-ggdb选项进行编译 // bazel build --stripnever --copt-g --copt-ggd…...

车机版 Android Audio 框架笔记

车机版Android Audio 框架涉及的知识点很多&#xff0c;在工作中涉及的功能板块也及其繁杂&#xff0c;后面我会根据工作中的一些实际遇到的实例&#xff0c;逐步拆解 Android Audio的知识点&#xff0c;这里从网上整理了一些思维导图&#xff0c;可以做为未来的一个研究方向&a…...

【NLP自然语言处理】深入解析Encoder与Decoder模块:结构、作用与深度学习应用

目录 &#x1f354; Encoder模块 1.1 Encoder模块的结构和作用 1.2 关于Encoder Block 1.3 多头自注意力层(self-attention) &#x1f354; Decoder模块及Add & Norm模块 3.1 Decoder模块介绍 3.2 Add & Norm模块 3.3 位置编码器Positional Encoding 3.4 Decod…...

【JAVA EE】多线程、锁、线程池的使用

目录 创建线程 方法一&#xff1a;继承Thread类来创建一个线程类 方法二&#xff1a;实现Runnable&#xff0c;重写run 线程等待 获取当前线程引用 休眠当前线程 线程的状态 synchronized synchronized的特性 1、互斥 2、刷新内存 死锁 死锁的四个必要条件 避免死…...

如何判断一个网站的关键词是否难做/百度导航下载安装手机导航

在能上网的笔记本上下载好需要的包$ sudo rm -rf /var/cache/apt/archives/* # 清空缓存目录&#xff0c;这一步也可以不做$ sudo apt-get -d install 运行完该命令后&#xff0c;需要的包及依赖都会下载到 /var/cache/apt/archives。复制到U盘中将下载好的包( /var/cache/apt/…...

重庆智能网站建设推荐/网络营销外包推广

思路&#xff1a;(1)写出代码打印实心的金字塔。(2)修改代码&#xff0c;把金字塔抛空。(3)修改代码&#xff0c;把金字塔倒转。(4)修改倒转后的代码&#xff0c;把金字塔抛空。(5)修改代码&#xff0c;把具体的数进行参数化。1、写出代码打印实心金字的金字塔&#xff1a;<…...

武汉大型网站建设/网络营销推广与策划

PyQt5安装之前安装过anaconda&#xff0c;里面是含有pyqt的&#xff0c;在环境里搜索可以看到&#xff0c;但是针对实际开发&#xff0c;并没有全部的qt5工具&#xff0c;所以需要再次安装。在cmd里面运行&#xff1a;pip install PyQt5 -i https://pypi.douban.com/simple安装…...

wordpress迁移/营销型网站一般有哪些内容

在创业的路上&#xff0c;见证了不少创业公司成长历史&#xff0c;有些成功了&#xff0c;有些失败了。总的来说&#xff0c;我认为影响创业的关键因素&#xff0c;有如下几点&#xff1a; 创意商业模式团队资金时机 我曾经认为创意是创业最重要的因素。随着时间推移&#xff0…...

wordpress 嵌入 php/昆明网络营销公司哪家比较好

经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: 一、概览 二、Camera HIDL 接口 三、Camera Provider 主程序 四、Camera HAL3 接口 一、概览 始于谷歌的Treble开源项目&#xff0c;基于接口与实现的分离的设计原则&#xff0c;谷歌加入了Camera Provi…...

建怎样的网站挣钱快/seo综合查询软件排名

前言 不收费&#xff0c;也不需要下载任何工具&#xff0c;web项目就能打包成APP&#xff0c;支持在线和离线&#xff0c;APP名称、LOGO、横竖屏、启动页、引导页等都可以自己设置&#xff0c;非常灵活&#xff0c;并且可以上架到应用市场。 操作指南 1.创建应用 注册中控易动…...