mysql 常用知识点总结
MySQL 是一种广泛使用的关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)。了解 MySQL 的语法对数据库管理和操作非常重要。以下是 MySQL 语法的详细完整解释,涵盖基本概念、创建表、查询、修改数据等内容。
1. 基础概念
- 数据库 (Database): 数据库是存储数据的容器,里面可以包含多个表。
- 表 (Table): 表是数据库中的核心元素,包含行(记录)和列(字段)。
- 行 (Row): 一行数据代表表中的一条记录。
- 列 (Column): 列是数据的属性,每个列都有一个特定的数据类型。
- 数据类型 (Data Types): 定义列中数据的类型,如整数、浮点数、字符串、日期等。
2. 常见数据类型
| 数据类型 | 描述 |
|---|---|
INT | 整数 |
FLOAT | 浮点数 |
VARCHAR | 变长字符串 |
CHAR | 固定长度字符串 |
TEXT | 大文本 |
DATE | 日期(格式:YYYY-MM-DD) |
DATETIME | 日期和时间(格式:YYYY-MM-DD HH:MM:SS) |
3. 数据库管理
-
创建数据库
CREATE DATABASE db_name;db_name: 数据库名称。
-
选择数据库
USE db_name; -
查看现有数据库
SHOW DATABASES; -
删除数据库
DROP DATABASE db_name;
4. 表操作
-
创建表
CREATE TABLE table_name (column_name1 data_type constraints,column_name2 data_type constraints,... );table_name: 表的名称。data_type: 列的数据类型。constraints: 列的约束,如PRIMARY KEY、NOT NULL等。
示例:
CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50) NOT NULL,age INT,enrollment_date DATE ); -
查看表结构
DESCRIBE table_name; -
删除表
DROP TABLE table_name; -
修改表结构
- 添加新列:
ALTER TABLE table_name ADD new_column_name data_type; - 修改列类型:
ALTER TABLE table_name MODIFY column_name new_data_type; - 删除列:
ALTER TABLE table_name DROP COLUMN column_name;
- 添加新列:
5. 数据操作
5.1 插入数据
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
示例:
INSERT INTO students (id, name, age, enrollment_date) VALUES (1, 'John Doe', 20, '2023-09-01');
5.2 查询数据
-
基本查询
SELECT column1, column2, ... FROM table_name;示例:
SELECT name, age FROM students; -
查询所有列
SELECT * FROM table_name; -
使用条件过滤查询
SELECT column1, column2, ... FROM table_name WHERE condition;示例:
SELECT * FROM students WHERE age > 18; -
排序
SELECT * FROM table_name ORDER BY column1 [ASC|DESC];示例:
SELECT * FROM students ORDER BY age DESC; -
限制查询结果
SELECT * FROM table_name LIMIT number;示例:
SELECT * FROM students LIMIT 5; -
聚合函数
COUNT():返回记录数SUM():返回总和AVG():返回平均值MIN():返回最小值MAX():返回最大值
示例:
SELECT COUNT(*) FROM students;
5.3 更新数据
UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
示例:
UPDATE students SET age = 21 WHERE id = 1;
5.4 删除数据
DELETE FROM table_name WHERE condition;
示例:
DELETE FROM students WHERE id = 1;
6. 连接 (JOIN) 操作
-
内连接 (INNER JOIN): 返回两个表中匹配的记录。
SELECT columns FROM table1 INNER JOIN table2 ON table1.column = table2.column; -
左连接 (LEFT JOIN): 返回左表中的所有记录,即使右表中没有匹配。
SELECT columns FROM table1 LEFT JOIN table2 ON table1.column = table2.column; -
右连接 (RIGHT JOIN): 返回右表中的所有记录,即使左表中没有匹配。
SELECT columns FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;
7. 索引 (Index)
索引用于提高查询速度。
-
创建索引
CREATE INDEX index_name ON table_name (column_name); -
删除索引
DROP INDEX index_name ON table_name;
8. 事务 (Transaction)
事务确保一组 SQL 操作要么全部执行,要么全部不执行。
-
开始事务
START TRANSACTION; -
提交事务
COMMIT; -
回滚事务
ROLLBACK;
9. 视图 (View)
视图是基于 SQL 查询的虚拟表。
-
创建视图
CREATE VIEW view_name AS SELECT columns FROM table_name WHERE condition; -
删除视图
DROP VIEW view_name;
10. 存储过程 (Stored Procedure)
存储过程是一组预编译的 SQL 语句,封装起来可以复用。
-
创建存储过程
CREATE PROCEDURE procedure_name (parameters) BEGINSQL_statements; END; -
调用存储过程
CALL procedure_name(parameters); -
删除存储过程
DROP PROCEDURE procedure_name;
11. 触发器 (Trigger)
触发器在某个事件(如插入、更新或删除)发生时自动执行。
-
创建触发器
CREATE TRIGGER trigger_name BEFORE|AFTER INSERT|UPDATE|DELETE ON table_name FOR EACH ROW BEGINSQL_statements; END; -
删除触发器
DROP TRIGGER trigger_name;
12. 权限管理
-
创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password'; -
赋予权限
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host'; -
撤销权限
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'host'; -
删除用户
DROP USER 'username'@'host';
13. 常用工具
-
EXPLAIN: 查看查询的执行计划。
EXPLAIN SELECT * FROM table_name; -
SHOW PROCESSLIST: 查看当前运行的 SQL 查询。
SHOW PROCESSLIST;
这是 MySQL 的完整语法概述,适用于基本数据库操作、数据查询、表结构管理、索引、事务、存储过程等内容。通过学习和使用这些语法,能够有效管理和查询数据库。
相关文章:
mysql 常用知识点总结
MySQL 是一种广泛使用的关系型数据库管理系统(RDBMS),它基于结构化查询语言(SQL)。了解 MySQL 的语法对数据库管理和操作非常重要。以下是 MySQL 语法的详细完整解释,涵盖基本概念、创建表、查询、修改数据…...
conda常用指令
1、查看conda版本 conda --version 2、更新conda conda update conda 3、查看conda环境信息 conda info 4、查看已有虚拟环境 conda info --envs conda info -e conda env list 5、创建新虚拟环境 conda create --name myenv python3.8 6、激活环境和退出环境 conda…...
前后端分离项目--下载功能
文章目录 不使用代理服务器blobblob构造函数通过FormData对象的getBlob方法创建Blob对象将Blob对象转换成UR 使用代理服务器 前后端分离项目中下载与其他接口的使用不同,一般下载不走node,不通过代理服务器,而是直接在前台发送请求࿰…...
PMP--一模--解题--81-90
文章目录 4.整合管理81、 [单选] 一位先前不活跃的干系人参与程度突然增加,这种意外的参与导致了一些变更请求。项目经理应该做什么? 4.整合管理82、 [单选] 公司的新产品系列将在两个月内发布,95%的项目任务均已完成。但是,管理层…...
计算机网络 --- 【2】计算机网络的组成、功能
目录 一、计算机网络的组成 1.1 从组成部分看 1.2 从工作方式看 1.3 从逻辑功能看 1.4 总结 二、计算机网络的功能 2.1 数据通信 2.2 资源共享编辑 2.3 分布式处理 2.4 提高可靠性 2.5 负载均衡 一、计算机网络的组成 1.1 从组成部分看 我们举例分析计算机网络从…...
『功能项目』切换职业技能面板【49】
我们打开上一篇48切换职业面板的项目, 本章要做的事情是制作第二职业法师技能面板、第三职业面板并且完成切换 双击打开Canvas进入预制体空间 复制三个技能栏面板 重命名 设置第一技能栏 设置第二职业技能栏 设置第三职业技能栏 修改脚本:ChangeProfess…...
寻找排名好的自闭症学校?这些关键因素不可忽视
郑州市如果有一家如星贝育园这样的自闭症公办学校,那无疑将为当地的自闭症儿童及其家庭带来巨大的福音。星贝育园所展现出的专业性、承诺的康复效果保障、以及为特殊儿童提供的全方位支持,都体现了其对自闭症儿童教育康复事业的深刻理解和高度责任感。 …...
Git常用命令(记录)
提交代码 git status 查看状态git add .或者git add xx选择提交全部或者某文件git commit -m “提交信息”git push 创建新分支提交到新的分支 git checkout -b [branch-name] 创建并切换到新分支git add [file-name] 将要上传的文件添加到暂存区git commit -m “commit mes…...
STM32+ESP8266 WiFi连接机智云平台APP远程控制教程
本文档将介绍如何用STM32ESP8266 WiFi模块从零开始连接上机智云,并通过APP进行远程控制。 机智云官网:机智云|智能物联网操作系统 (gizwits.com) 准备:STM32、ESP8266、手机、可上网的WiFi。 1.创建设备 1.1 注册登陆 请自行注册账号并登陆…...
学懂C++(六十):C++ 11、C++ 14、C++ 17、C++ 20新特性大总结(万字详解大全)
一、引言 随着计算机科学与技术的飞速发展,编程语言也在不断进化以满足日益增长的需求。C是一门集高性能和灵活性于一身的编程语言,自1983年诞生以来不断演进,逐渐成为了众多领域的主流编程语言。为了进一步提升开发效率和代码质量࿰…...
杭电1008电梯
提供两种做法,第一种不知道为啥不ac。。。 #include<iostream> using namespace std; //不清楚为什么报错了 int a[10000],x[10000]; int main(){int n;while(cin>>n,n!0){for(int i0;i<n;i){cin>>a[i];if(i0) x[i](65)*a[i]-5;else {if(a[i-…...
【Python小知识 - 2】:在VSCode中切换Python解释器版本
文章目录 在VSCode中切换Python解释器版本 在VSCode中切换Python解释器版本 在VSCode中按下快捷键CtrlShiftP,出现命令框。 输入以下命令: Python: Select Interpreter输入命令回车后即出现不同的Python解释器选项,选择想要切换的Python解释器…...
ubuntu meson安装
安装 sudo python3 -m pip install meson sudo python3 -m pip install ninja问题 libdrm ERROR: Dependency “libdrm” not found, tried pkgconfig and cmake Unable to correct problems, you have held broken packages. sudo apt-get update --fix-missing sudo apt in…...
记者协会评审系统-需求分析
记者协会评审系统-需求分析 文章目录 记者协会评审系统-需求分析一、参与角色二、业务流程2.1 作品推荐收集2.2 初步审核2.3 评审功能(初评)2.4&5 定评和审定三、功能清单2.1 基础功能2.2 业务功能2.3.1.单位投稿功能2.3.2.推荐作品分类管理2.3.3. 稿件初审2.3.4.评审功能…...
python 检索与该查询最相似的句子 使用库hflayers和sentence_transformers来实现遇到的问题
此篇文章总结遇到三个问题(3. OSError: We couldn’t connect to ‘https://huggingface.co’ to load this file, couldn’t find it in the cached files and it looks like sentence-transformers/all-mpnet-base-v2 is not the path to a directory containing a file nam…...
计算机毕业设计 在线新闻聚合平台的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...
【机器学习随笔】概率论与实际问题的对应
主要从直观看待问题的角度,对概率分布进行分类。 一、时间维度 1、一个事件两次发生的时间间隔或者说,单位时间内发生了两次的概率,用指数分布 2、多个事件发生的时间间隔,用Gamma分布。 3、单位时间了发生了k次的概率,…...
C++初阶学习——探索STL奥秘——模拟实现list类
1、基本框架 list 由三个类构建而成: 节点类:每个节点必须的三部分(指向前一个节点的指针、指向后一个节点的指针、当前节点存储的数据) 迭代器类:此时的迭代器为双向迭代器,比较特殊,需要对其进行封装,如 it并非使迭代器单纯向后移动&…...
生命之光不灭:帕金森综合征晚期,如何携手共度温暖岁月
在岁月的长河中,每个人都是自己故事的作者,而面对帕金森综合征这一挑战,尤其是步入晚期的老人,他们的故事更显坚韧与温情。今天,就让我们一起探索,如何在科学护理与人文关怀的双重滋养下,让帕金…...
Matlab simulink建模与仿真 第十五章(信号源库)
参考视频:simulink1.1simulink简介_哔哩哔哩_bilibili 一、信号源库中的模块概览 注:部分模块在第二章中有介绍,本章不再赘述。 二、from输入源模块 1、From Workspace模块 (1)该模块可从MATLAB工作区、模型工作区…...
量子密钥分发系统的工程实现(四):后处理流程与FPGA硬件加速剖析
1. QKD后处理流程的核心挑战 量子密钥分发(QKD)系统的后处理流程就像是一场精密的"密钥提纯"手术。想象一下Alice和Bob通过量子信道传递的原始密钥,就像刚从矿场挖出的原石——含有大量杂质(误码)、存在形状…...
C语言宏定义封装函数参数的工程实践
1. 宏定义封装函数参数的核心价值在嵌入式开发中,我们经常遇到需要传递大量固定参数的场景。以NXP RT1052 SDK中的GPIO配置为例,每个引脚复用配置需要传递6个参数,其中5个都是固定值。这种场景下,宏定义封装技术能显著提升代码的可…...
新手入门指南:基于快马生成代码学习注册表单开发与验证
新手入门指南:基于快马生成代码学习注册表单开发与验证 作为一个前端新手,我最近在学习如何开发一个完整的注册表单页面。正好用InsCode(快马)平台尝试实现了一个谷歌风格的账号注册页面,整个过程收获很大,下面分享我的学习心得。…...
Wireshark网络协议分析与故障排查实战指南
1. Wireshark网络分析入门指南作为一名网络工程师,我使用Wireshark进行网络故障排查已有8年时间。这款开源网络协议分析器确实改变了我的工作方式,让我能够直观地"看到"网络流量。记得第一次使用Wireshark分析一个棘手的TCP连接问题时…...
构建具备 Cyclic Loop(循环反思) 与 Self-Correction(自我修正) 能力的企业级 Agent
摘要:当"降本增效"成为常态,企业知识流失的速度远超你的想象。本文将不再停留在简单的 RAG demo 层面,而是深入 LangGraph 的底层架构,带你从零构建一个具备 Cyclic Loop(循环反思) 与 Self-Corr…...
OpenClaw 龙虾消耗的 token 跟 Java 开发中调用接口用到的 token 是一个概念吗
OpenClaw 龙虾消耗的 token 跟 Java 开发中调用接口用到的 token 是一个概念吗 不是同一个概念。虽然它们都叫 “token”,但在 Java 开发和人工智能这两个领域中,它们是完全不同的两个东西。 简单来说,Java 开发中的 Token 是身份凭证&#x…...
房屋租赁管理系统开发教程:基于SSM框架实战全记录
房屋租赁管理系统 java项目ssm框架开发,全套视频教程Verio 房屋租赁系统“我的收藏”功能深度解析——从用户点击到数据落地的全流程设计一、业务定位在房屋租赁平台中,“收藏”是连接「浏览」与「决策」的关键节点。Verio 把收藏做成一个轻量级、可复用的“微服务”…...
兼容FX3U源码的增强版:支持以太网与串口下载,集成MODBUS-TCP协议,实现相对定位与绝...
18650锂电池高温热失控一、模块概述 FX3U系列PLC CAN网络通信模块是基于STM32F10x系列微控制器开发的专用通信组件,旨在实现多节点PLC设备间的可靠数据交互。该模块采用STM32F10x CAN外设硬件资源,结合自定义应用层协议,支持主从式网络架构&a…...
ESP32自动登录校园网实战:绕过网页认证,实现设备永久在线(附完整Arduino代码)
ESP32校园网自动登录全攻略:从逆向分析到模块化封装 校园网环境下的IoT设备部署常面临一个棘手问题——每次断电重启后都需要手动登录网页认证系统。想象一下凌晨三点实验室的温湿度监测系统突然掉线,而你不得不顶着寒风跑去教学楼重新登录的场景。本文将…...
Kevin喜欢零(困难版本)【牛客tracker 每日一题】
Kevin喜欢零(困难版本) 时间限制:1秒 空间限制:256M 网页链接 牛客tracker 牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品࿰…...
