MySQL 基础学习文档

一、MySQL 概述

1.1 核心概念

  • 数据库 (DB):存储数据的结构化仓库
  • 数据库管理系统 (DBMS):操作数据库的软件(如 MySQL、Oracle)
  • SQL:操作关系型数据库的标准语言

1.2 安装与配置

  1. 下载地址:MySQL Installer
  2. 安装步骤
    • 选择 "Developer Default" 安装类型
    • 设置 root 用户密码
    • 配置 Windows 服务(默认名称:MySQL80)
  3. 环境变量配置:将C:\Program Files\MySQL\MySQL Server 8.0\bin添加到 Path

1.3 连接方式

  • 命令行工具mysql -u root -p
  • 图形化工具:推荐使用 DataGrip

二、SQL 基础语法

2.1 通用规则

  • 语句以分号结尾
  • 不区分大小写(建议关键字大写)
  • 注释:-- 单行,/* */ 多行

2.2 分类

类型功能关键字
DDL定义数据库对象CREATE/DROP/ALTER
DML操作数据INSERT/UPDATE/DELETE
DQL查询数据SELECT
DCL控制权限GRANT/REVOKE

三、DDL 操作

3.1 数据库操作

-- 创建数据库(指定字符集)
CREATE DATABASE db_name DEFAULT CHARSET utf8mb4;-- 删除数据库
DROP DATABASE IF EXISTS db_name;-- 切换数据库
USE db_name;

3.2 表操作

3.2.1 数据类型
类型示例说明
整数TINYINT(1)0-255(无符号)
字符串VARCHAR(50)可变长度字符串
日期DATEYYYY-MM-DD
3.2.2 表结构操作
-- 创建表
CREATE TABLE user (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL,age TINYINT UNSIGNED
);-- 修改表(添加字段)
ALTER TABLE user ADD COLUMN email VARCHAR(100);-- 删除表
DROP TABLE IF EXISTS user;

四、DML 操作

4.1 数据插入

-- 插入单条记录
INSERT INTO user (name, age) VALUES ('张三', 20);-- 批量插入
INSERT INTO user (name, age) 
VALUES ('李四', 25), ('王五', 30);

4.2 数据更新

-- 更新单条记录
UPDATE user SET age = 26 WHERE id = 1;-- 更新多条记录
UPDATE user SET age = age + 1 WHERE age < 30;

4.3 数据删除

-- 删除单条记录
DELETE FROM user WHERE id = 1;-- 删除所有记录(保留表结构)
TRUNCATE TABLE user;

五、DQL 查询

5.1 基础查询

-- 查询所有字段
SELECT * FROM user;-- 查询指定字段并去重
SELECT DISTINCT age FROM user;-- 字段别名
SELECT name AS 姓名, age AS 年龄 FROM user;

5.2 条件查询

-- 范围查询
SELECT * FROM user WHERE age BETWEEN 20 AND 30;-- 模糊查询
SELECT * FROM user WHERE name LIKE '张%';-- 空值处理
SELECT * FROM user WHERE email IS NULL;

5.3 聚合函数

函数功能
COUNT()统计数量
AVG()平均值
MAX()最大值
SUM()求和
-- 统计总人数
SELECT COUNT(*) AS 总人数 FROM user;-- 计算平均年龄
SELECT AVG(age) AS 平均年龄 FROM user;

5.4 分组与排序

-- 按性别分组统计人数
SELECT gender, COUNT(*) FROM user GROUP BY gender;-- 按年龄降序排序
SELECT * FROM user ORDER BY age DESC;

5.5 分页查询

-- 每页10条,显示第2页
SELECT * FROM user LIMIT 10 OFFSET 10;

六、约束

6.1 类型

约束关键字说明
主键PRIMARY KEY唯一标识,非空
外键FOREIGN KEY关联其他表主键
唯一UNIQUE字段值唯一
非空NOT NULL字段值不能为空

6.2 外键示例

-- 创建部门表
CREATE TABLE dept (id INT PRIMARY KEY,name VARCHAR(50)
);-- 创建员工表(外键关联)
CREATE TABLE emp (id INT PRIMARY KEY,name VARCHAR(50),dept_id INT,FOREIGN KEY (dept_id) REFERENCES dept(id)
);

七、多表查询

7.1 连接类型

类型说明
内连接只返回匹配的数据
左外连接返回左表所有数据
右外连接返回右表所有数据
全外连接返回所有数据(MySQL 不支持)

7.2 示例

-- 内连接查询员工及其部门
SELECT e.name, d.name 
FROM emp e 
JOIN dept d ON e.dept_id = d.id;-- 左外连接查询所有员工
SELECT e.name, d.name 
FROM emp e 
LEFT JOIN dept d ON e.dept_id = d.id;

八、事务

8.1 基本操作

-- 开启事务
START TRANSACTION;-- 提交事务
COMMIT;-- 回滚事务
ROLLBACK;

8.2 隔离级别

级别脏读不可重复读幻读
READ UNCOMMITTED
READ COMMITTED
REPEATABLE READ
SERIALIZABLE

九、函数

9.1 常用函数

类型函数示例
字符串CONCAT(a,b)CONCAT('Hello', 'MySQL') → 'HelloMySQL'
日期CURDATE()获取当前日期
流程控制IF(condition, t, f)IF (age>18, ' 成年 ', ' 未成年 ')

十、权限管理

10.1 用户管理

-- 创建用户
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';-- 修改密码
ALTER USER 'user'@'localhost' IDENTIFIED BY 'new_password';-- 删除用户
DROP USER 'user'@'localhost';

10.2 权限控制

-- 授予权限
GRANT SELECT, INSERT ON db.* TO 'user'@'localhost';-- 撤销权限
REVOKE INSERT ON db.* FROM 'user'@'localhost';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/72730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

火山引擎(豆包大模型)(抖音平台)之火山方舟的Prompt的使用测试

前言 在大模型的使用过程当中&#xff0c;Prompt的使用非常的关键。原来&#xff0c;我对Prompt的理解不深&#xff0c;觉得Prompt的产生并不是很有必要。但是&#xff0c;自从使用了火山方舟中的“Prompt优解”之后&#xff0c;感受加深了&#xff0c;觉得Prompt是我们和大模型…

SpringBoot入门-(2) Spring IOC机制【附实例代码】

SpringBoot入门-(2) Spring IOC机制 Spring Spring是一个当前主流的轻量级的框架&#xff0c;发展到形状已经不仅仅是一个框架&#xff0c;而是形成以Spring为基础的生态圈&#xff0c;如(Spring Boot,Spring Cloud,Spring Security等) Spring 两大核心技术 控制反转(IoC)面…

备赛蓝桥杯之第十六届模拟赛3期职业院校组

提示&#xff1a;本篇文章仅仅是作者自己目前在备赛蓝桥杯中&#xff0c;自己学习与刷题的学习笔记&#xff0c;写的不好&#xff0c;欢迎大家批评与建议 由于个别题目代码量与题目量偏大&#xff0c;请大家自己去蓝桥杯官网【连接高校和企业 - 蓝桥云课】去寻找原题&#xff0…

【AI大模型】提示词(Prompt)工程完全指南:从理论到产业级实践

【AI大模型】提示词&#xff08;Prompt&#xff09;工程完全指南&#xff1a;从理论到产业级实践 一、Prompt 提示词介绍&#xff1a;AI的“密码本” 1. Prompt的底层定义与价值 本质&#xff1a;Prompt是人与AI模型的“协议语言”&#xff0c;通过文本指令激活模型的特定推理…

Excel 小黑第12套

对应大猫13 涉及金额修改 -数字组 -修改会计专用 VLOOKUP函数使用&#xff08;查找目标&#xff0c;查找范围&#xff08;F4 绝对引用&#xff09;&#xff0c;返回值的所在列数&#xff0c;精确查找或模糊查找&#xff09;双击填充柄就会显示所有值 这个逗号要中文的不能英…

基于Spring Boot的冷链物流系统的设计与实现的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

python环境集成整理

接口测试过程中&#xff0c;可能会切换测试环境&#xff0c;通过配置相关信息修改 设计思路&#xff1a; 1、 准备各个环境配置文件信息&#xff0c;包括http、common 、redis、db 2、创建不同环境配置信息 测试环境&#xff1a;env_test.yml、 预生产环境:env_prepro.yml、生产…

动平衡仿真程序设计

以下是针对动平衡振动信号分析的模块扩展方案&#xff0c;基于原有信号发生器架构进行增强&#xff1a; 一、动平衡专用信号生成器 // UnbalanceVibrationGenerator.h #pragma once #include "SignalGenerator.h" #include <vector>class UnbalanceVibration…

牛客周赛85 题解 Java ABCDEFG

A小紫的均势博弈 判断输入的 n 是奇数还是偶数 import java.io.*; import java.math.*; import java.util.*;public class Main {static IoScanner sc new IoScanner();static final int mod(int) (1e97);static void solve() throws IOException {int nsc.nextInt();if(n%2…

python——UI自动化(1) selenium之介绍和环境配置

一、selenium介绍 selenium是一个第三方库&#xff0c;python有很多库&#xff1b; 1、什么是ui自动化? 通过模拟手工操作用户ui页面的方式&#xff0c;用代码去实现自动化操作和验证的行为。 2、ui自动化的优点&#xff1f; &#xff08;1&#xff09;解决重复性的功能测…

Can通信流程

下面给出一个更详细的 CAN 发送报文的程序流程说明&#xff0c;结合 HAL 库的使用及代码示例&#xff0c;帮助你了解每一步的具体操作和内部原理。 一、系统与外设初始化 1.1 HAL 库初始化 在 main() 函数开头&#xff0c;首先调用 HAL 库初始化函数&#xff1a; HAL_Init()…

15 数据结构及算法应用

15 数据结构及算法应用 15.1 算法策略区分 15.1.1、分治法 特征:把一个问题拆分成多个小规模的相同子问题&#xff0c;一般可用递归解决。 经典问题:斐波那契数列、归并排序、快速排序、矩阵乘法、二分搜索、大整数乘法、汉诺塔。 15.1.2、贪心法 (一般用于求满意解) …

基于大模型的唇裂手术全流程预测与应用研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目标与内容 二、唇裂相关医学知识概述 2.1 唇裂的定义、分类与发病原因 2.2 唇裂对患者生理与心理的影响 2.3 传统唇裂治疗方法与局限性 三、大模型技术原理与应用基础 3.1 大模型概述 3.2 适用于唇裂预测的大模型类型及特…

环境变量设置异常导致UOS文件管理器无法正常运行

编译QT5.15.2&#xff0c;与UOS20.9的QT依赖冲突 现象原因解决方法 现象 重启系统后UOS桌面变成黑色&#xff0c;没有任何图标&#xff0c;任务栏的应用本来是有预览的&#xff0c;但也变得不可用。 原因 找了很久&#xff0c;查到原来是dde-file-manager未能正常启动。直接…

《认知觉醒》改变的核心方法论

《认知觉醒》改变的核心方法论 一、认知觉醒的核心目标 改变 → 提升能力 → 获得更好生活 二、大脑运作机制 脑区运算速度作用特点本能脑1.1亿次/秒自动化反应&#xff0c;能量消耗低情绪脑1.1亿次/秒情感驱动型决策​理智脑​40次/秒战略指挥官角色 关键差异&#xff1a…

Python中的字典:深度解析与应用实践

一、字典的本质与特性 Python字典&#xff08;Dictionary&#xff09;是以**键值对&#xff08;Key-Value Pair&#xff09;**形式存储数据的无序集合&#xff0c;使用大括号{}定义。其核心特性包括&#xff1a; 快速查找&#xff1a;基于哈希表实现&#xff0c;通过键&#…

【蓝桥杯python研究生组备赛】005 数学与简单DP

题目1 01背包 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi&#xff0c;价值是 wi。 求解将哪些物品装入背包&#xff0c;可使这些物品的总体积不超过背包容量&#xff0c;且总价值最大。 输出最大价值。 输入格式 第一行两个整数&a…

2024年国赛高教杯数学建模E题交通流量管控解题全过程文档及程序

2024年国赛高教杯数学建模 E题 交通流量管控解题 原题再现 随着城市化进程的加快、机动车的快速普及&#xff0c;以及人们活动范围的不断扩大&#xff0c;城市道路交通拥堵问题日渐严重&#xff0c;即使在一些非中心城市&#xff0c;道路交通拥堵问题也成为影响地方经济发展和…

穿越是时空之门(java)

emm&#xff0c;之前做过一道类似的题目&#xff0c;但是这次又忘了 一开始的错误代码 package Lanqiao;import javax.swing.plaf.synth.SynthTextAreaUI; import java.math.BigInteger;/*** author zb* date2025/3/19 21:33*/ public class L19701 {public static void main…

npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本的处理方法

1、安装了node.js后&#xff0c;windows powershell中直接输入npm&#xff0c;然后就报错 2、出现原因&#xff1a;权限不够 系统禁用了脚本的执行&#xff0c;所以我们在windows powershell输入npm -v的时候&#xff0c;就会报上面的错误。 3、解决 Set-ExecutionPolicy Un…