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

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 KEYNOT 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,不通过代理服务器,而是直接在前台发送请求&#xff0…...

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年诞生以来不断演进,逐渐成为了众多领域的主流编程语言。为了进一步提升开发效率和代码质量&#xff0…...

杭电1008电梯

提供两种做法&#xff0c;第一种不知道为啥不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&#xff0c;出现命令框。 输入以下命令&#xff1a; Python: Select Interpreter输入命令回车后即出现不同的Python解释器选项&#xff0c;选择想要切换的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 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…...

【机器学习随笔】概率论与实际问题的对应

主要从直观看待问题的角度&#xff0c;对概率分布进行分类。 一、时间维度 1、一个事件两次发生的时间间隔或者说&#xff0c;单位时间内发生了两次的概率&#xff0c;用指数分布 2、多个事件发生的时间间隔&#xff0c;用Gamma分布。 3、单位时间了发生了k次的概率&#xff0c…...

C++初阶学习——探索STL奥秘——模拟实现list类

1、基本框架 list 由三个类构建而成: 节点类:每个节点必须的三部分(指向前一个节点的指针、指向后一个节点的指针、当前节点存储的数据) 迭代器类:此时的迭代器为双向迭代器&#xff0c;比较特殊&#xff0c;需要对其进行封装&#xff0c;如 it并非使迭代器单纯向后移动&…...

生命之光不灭:帕金森综合征晚期,如何携手共度温暖岁月

在岁月的长河中&#xff0c;每个人都是自己故事的作者&#xff0c;而面对帕金森综合征这一挑战&#xff0c;尤其是步入晚期的老人&#xff0c;他们的故事更显坚韧与温情。今天&#xff0c;就让我们一起探索&#xff0c;如何在科学护理与人文关怀的双重滋养下&#xff0c;让帕金…...

Matlab simulink建模与仿真 第十五章(信号源库)

参考视频&#xff1a;simulink1.1simulink简介_哔哩哔哩_bilibili 一、信号源库中的模块概览 注&#xff1a;部分模块在第二章中有介绍&#xff0c;本章不再赘述。 二、from输入源模块 1、From Workspace模块 &#xff08;1&#xff09;该模块可从MATLAB工作区、模型工作区…...

从代码学习深度强化学习 - 初探强化学习 PyTorch版

文章目录 前言强化学习的概念强化学习的环境强化学习中的数据强化学习的独特性总结前言 本文将带你初步了解强化学习 (Reinforcement Learning, RL) 的基本概念,并通过 PyTorch 实现一些简单的强化学习算法。强化学习是一种让智能体 (agent) 通过与环境 (environment) 的交互…...

【Auto.js例程】华为备忘录导出到其他手机

目录 问题描述方法步骤1.安装下载Visual Studio Code2.安装扩展3.找到Auto.js插件&#xff0c;并安装插件4.启动服务器5.连接手机6.撰写脚本并运行7.本文实现功能的代码8.启动手机上的换机软件 问题描述 问题背景&#xff1a;华为手机换成一加手机&#xff0c;华为备忘录无法批…...

[BIOS]VSCode zx-6000 编译问题

前提&#xff1a;Python 3.6.6及以上版本安装成功&#xff0c;Python 3.6.6路径加到了环境变量# DEVITS工具包准备好 问题&#xff1a;添加环境变量 1&#xff1a;出现环境变量错误&#xff0c;“py -3” is not installed or added to environment variables #先在C:\Windows里…...

每日Prompt:双重曝光

提示词 新中式&#xff0c;这幅图像将人体头像轮廓与山水中式建筑融为一体&#xff0c;双重曝光&#xff0c;体现了反思、内心平静以及人与自然相互联系的主题&#xff0c;靛蓝&#xff0c;水墨画&#xff0c;晕染&#xff0c;极简...

DelayQueue、ScheduledThreadPoolExecutor 和 PriorityBlockingQueue :怎么利用堆实现定时任务

DelayQueue DelayQueue 的最大亮点&#xff1a; 并不是简单全局锁的“单调队列”实现&#xff0c;而是用Leader-Follower 模式极大减少了线程唤醒的开销。插入与唤醒、等待与 leader 变更&#xff0c;都通过巧妙的锁和条件变量组合完成。 如果只关注“线程安全的优先队列全局…...

VSCode主题定制:CSS个性化你的编程世界

在今天的数字世界&#xff0c;编程环境已成为开发者的第二大脑&#xff0c;而主题正是个性化你的创意空间的关键。本文将指导你如何使用CSS自定义VSCode的主题&#xff0c;让你的IDE不仅功能强大&#xff0c;更具视觉个性。 思路分析 设计思路&#xff1a; 创建主色调基调和…...

《Brief Bioinform》: 鼠脑单细胞与Stereo-seq数据整合算法评估

一、写在前面 基因捕获效率、分辨率一直是空间转录组细胞类型识别的拦路虎&#xff0c;许多算法能够整合单细胞(single-cell, sc)或单细胞核(single-nuclear, sn)数据与空间转录组数据&#xff0c;从而帮助空转数据的细胞类型注释。此前我们介绍过近年新出炉的Stereo-seq平台&…...

微算法科技(NASDAQ:MLGO)基于信任的集成共识和灰狼优化(GWO)算法,搭建高信任水平的区块链网络

随着数字化转型的加速&#xff0c;区块链技术作为去中心化、透明且不可篡改的数据存储与交换平台&#xff0c;正逐步渗透到金融、供应链管理、物联网等多个领域&#xff0c;探索基于信任的集成共识机制&#xff0c;并结合先进的优化算法来提升区块链网络的信任水平&#xff0c;…...

黑龙江云前沿服务器租用:便捷高效的灵活之选​

服务器租用&#xff0c;即企业直接从互联网数据中心&#xff08;IDC&#xff09;提供商处租赁服务器。企业只需按照所选的服务器配置和租赁期限&#xff0c;定期支付租金&#xff0c;即可使用服务器开展业务。​ 便捷快速部署&#xff1a;租用服务器能极大地缩短服务器搭建周期…...

2025五大免费变声器推荐!

在游戏开黑时想靠声音搞怪活跃气氛&#xff0c;或是在直播中用独特声线吸引观众&#xff0c;又或者给视频配音时想尝试不同角色 —— 但市面上的变声软件要么收费高昂&#xff0c;要么效果生硬、操作复杂&#xff0c;难道找到一款好用又免费的变声器真的这么难&#xff1f; 今…...