【MySQL】常用语句

目录

      • 1. 数据库操作
      • 2. 表操作
      • 3. 数据操作(CRUD)
      • 4. 高级查询
      • 5. 索引管理
      • 6. 用户与权限
      • 7. 数据导入导出
      • 8. 事务控制
      • 9. 其他实用语句
      • 注意事项
    • 如果这篇文章对你有所帮助,渴望获得你的一个点赞!

1. 数据库操作

  • 创建数据库

    CREATE DATABASE dbname;
    CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 指定字符集
    
  • 查看数据库

    SHOW DATABASES; -- 列出所有数据库
    SHOW CREATE DATABASE dbname; -- 查看创建语句
    
  • 使用数据库

    USE dbname; -- 切换当前数据库
    
  • 删除数据库

    DROP DATABASE dbname; -- 谨慎操作!
    

2. 表操作

  • 创建表

    CREATE TABLE users (
      id INT PRIMARY KEY AUTO_INCREMENT,
      name VARCHAR(50) NOT NULL,
      email VARCHAR(100) UNIQUE,
      age INT DEFAULT 18,
      created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    
  • 查看表结构

    DESC users; -- 查看表结构
    SHOW CREATE TABLE users; -- 查看建表语句
    
  • 修改表

    ALTER TABLE users ADD COLUMN gender VARCHAR(10); -- 添加列
    ALTER TABLE users MODIFY COLUMN name VARCHAR(100); -- 修改列类型
    ALTER TABLE users DROP COLUMN age; -- 删除列
    ALTER TABLE users RENAME TO members; -- 重命名表
    
  • 删除表

    DROP TABLE users; -- 删除表(谨慎!)
    

3. 数据操作(CRUD)

  • 插入数据

    INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
    INSERT INTO users (name, email) VALUES 
      ('Bob', 'bob@example.com'),
      ('Charlie', 'charlie@example.com'); -- 插入多行
    
  • 查询数据

    SELECT * FROM users; -- 查询所有数据
    SELECT name, email FROM users WHERE age > 20; -- 条件筛选
    SELECT DISTINCT name FROM users; -- 去重
    SELECT * FROM users ORDER BY created_at DESC; -- 排序
    SELECT * FROM users LIMIT 10 OFFSET 5; -- 分页(第2页,每页10条)
    
  • 更新数据

    UPDATE users SET age = 25 WHERE id = 1; -- 更新单条
    UPDATE users SET status = 'active' WHERE last_login > '2023-01-01'; -- 批量更新
    
  • 删除数据

    DELETE FROM users WHERE id = 1; -- 删除单条
    DELETE FROM users WHERE status = 'inactive'; -- 条件删除
    TRUNCATE TABLE users; -- 清空表(不可回滚,速度比DELETE快)
    

4. 高级查询

  • 连接查询(JOIN)

    -- 内连接
    SELECT users.name, orders.amount 
    FROM users 
    INNER JOIN orders ON users.id = orders.user_id;
    
    -- 左连接
    SELECT users.name, orders.amount 
    FROM users 
    LEFT JOIN orders ON users.id = orders.user_id;
    
  • 聚合函数

    SELECT COUNT(*) FROM users; -- 统计行数
    SELECT AVG(age) AS avg_age FROM users; -- 平均值
    SELECT MAX(created_at) AS latest FROM users; -- 最大值
    SELECT city, COUNT(*) FROM users GROUP BY city; -- 分组统计
    SELECT city, COUNT(*) FROM users GROUP BY city HAVING COUNT(*) > 100; -- 分组后筛选
    
  • 子查询

    SELECT name FROM users 
    WHERE id IN (SELECT user_id FROM orders WHERE amount > 100);
    

5. 索引管理

  • 创建索引

    CREATE INDEX idx_name ON users(name); -- 普通索引
    CREATE UNIQUE INDEX idx_email ON users(email); -- 唯一索引
    
  • 删除索引

    DROP INDEX idx_name ON users;
    

6. 用户与权限

  • 创建用户

    CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
    
  • 授予权限

    GRANT SELECT, INSERT ON dbname.* TO 'username'@'localhost';
    GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION; -- 谨慎使用
    
  • 撤销权限

    REVOKE INSERT ON dbname.* FROM 'username'@'localhost';
    
  • 删除用户

    DROP USER 'username'@'localhost';
    
  • 刷新权限

    FLUSH PRIVILEGES;
    

7. 数据导入导出

  • 导出数据

    SELECT * INTO OUTFILE '/tmp/users.csv' 
    FIELDS TERMINATED BY ',' 
    LINES TERMINATED BY '\n' 
    FROM users;
    
  • 导入数据

    LOAD DATA INFILE '/tmp/users.csv' 
    INTO TABLE users 
    FIELDS TERMINATED BY ',' 
    LINES TERMINATED BY '\n';
    

8. 事务控制

  • 开启事务

    START TRANSACTION;
    -- 执行操作(如INSERT/UPDATE/DELETE)
    COMMIT; -- 提交事务
    ROLLBACK; -- 回滚事务
    
  • 设置自动提交

    SET autocommit = 0; -- 关闭自动提交
    SET autocommit = 1; -- 开启自动提交(默认)
    

9. 其他实用语句

  • 条件判断

    SELECT name, 
      CASE 
        WHEN age < 18 THEN 'Minor'
        ELSE 'Adult' 
      END AS age_group 
    FROM users;
    
  • 日期函数

    SELECT NOW(); -- 当前时间
    SELECT DATE_FORMAT(created_at, '%Y-%m-%d') FROM users; -- 格式化日期
    
  • 字符串函数

    SELECT CONCAT(name, ' (', email, ')') AS info FROM users;
    SELECT SUBSTRING(email, 1, 5) FROM users; -- 截取字符串
    

注意事项

  • 数据安全:执行DELETEUPDATE时务必检查WHERE条件,避免误操作。
  • 备份:重要操作前使用mysqldump备份数据。
  • 性能优化:合理使用索引,避免全表扫描。

掌握这些语句后,可覆盖MySQL日常开发与管理的90%场景。进阶学习可探索存储过程、触发器、视图等高级功能。


如果这篇文章对你有所帮助,渴望获得你的一个点赞!

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于多智能体强化学习的医疗AI中RAG系统程序架构优化研究

一、引言 1.1 研究背景与意义 在数智化医疗飞速发展的当下,医疗人工智能(AI)已成为提升医疗服务质量、优化医疗流程以及推动医学研究进步的关键力量。医疗 AI 借助机器学习、深度学习等先进技术,能够处理和分析海量的医疗数据,从而辅助医生进行疾病诊断、制定治疗方案以…

使用 Elastic Cloud Hosted 优化长期数据保留:确保政府合规性和效率

作者&#xff1a;来自 Elastic Jennie Davidowitz 在数字时代&#xff0c;州和地方政府越来越多地承担着管理大量数据的任务&#xff0c;同时确保遵守严格的监管要求。这些法规可能因司法管辖区而异&#xff0c;通常要求将数据保留较长时间 —— 有时从一年到七年不等。遵守刑事…

【NLP 20、Encoding编码 和 Embedding嵌入】

目录 一、核心定义与区别 二、常见Encoding编码 (1) 独热编码&#xff08;One-Hot Encoding&#xff09; (2) 位置编码&#xff08;Positional Encoding&#xff09; (3) 标签编码&#xff08;Label Encoding&#xff09; (4) 注意事项 三、常见Embedding词嵌入 (1) 基础词嵌入…

【Envi遥感图像处理】010:归一化植被指数NDVI计算方法

文章目录 一、NDVI简介二、NDVI计算方法1. NDVI工具2. 波段运算三、注意事项1. 计算结果为一片黑2. 计算结果超出范围一、NDVI简介 归一化植被指数,是反映农作物长势和营养信息的重要参数之一,应用于遥感影像。NDVI是通过植被在近红外波段(NIR)和红光波段(R)的反射率差异…

7、怎么定义一个简单的自动化测试框架?

定义一个简单的自动化测试框架可以从需求理解、框架设计、核心模块实现、测试用例编写和集成执行等方面入手&#xff0c;以下为你详细介绍&#xff1a; 1. 明确框架需求和范围 确定测试类型&#xff1a;明确框架要支持的测试类型&#xff0c;如单元测试、接口测试、UI 测试等…

web-XSS-CTFHub

前言 在众多的CTF平台当中&#xff0c;作者认为CTFHub对于初学者来说&#xff0c;是入门平台的不二之选。CTFHub通过自己独特的技能树模块&#xff0c;可以帮助初学者来快速入门。具体请看官方介绍&#xff1a;CTFHub。 作者更新了CTFHub系列&#xff0c;希望小伙伴们多多支持…

Linux中的基本指令(二)

一、移动和重命名指令mv 1.1基本作用及使用规范 基本作用是进行文件的移动和重命名&#xff0c;使用规范如&#xff1a; mv src[目录/文件]dst[路径/文件] 回车 1.2三种不同的作用 通过在src部分和dst部分写入不同的内容&#xff0c;来实现文件的移动和重命名的等不同功能…

【RL Latest Tech】安全强化学习(Safe RL):理论、方法与应用

&#x1f4e2;本篇文章是博主强化学习&#xff08;RL&#xff09;领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对相关等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅…

qt-Quick笔记之Dark Mode And Light Mode In Application

qt-Quick笔记之Dark Mode And Light Mode In Application code review! 文章目录 qt-Quick笔记之Dark Mode And Light Mode In Application1.运行2.目录结构3.main.qml4.main.cpp5.main.pro6.main.qrc 本例修改自视频教程&#xff1a;Qt QML | &#x1f319; Dark Mode And ☀…

visual studio安装

一、下载Visual Studio 访问Visual Studio官方网站。下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux 在主页上找到并点击“下载 Visual Studio”按钮。 选择适合需求的版本&#xff0c;例如“Visual Studio Community”&#xff08;免费版本&#xff09;&#x…

基于Springboot框架的学术期刊遴选服务-项目演示

项目介绍 本课程演示的是一款 基于Javaweb的水果超市管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3.该项目附…

【C++篇】位图与布隆过滤器

目录 一&#xff0c;位图 1.1&#xff0c;位图的概念 1.2&#xff0c;位图的设计与实现 1.5&#xff0c;位图的应用举例 1.4&#xff0c;位图常用应用场景 二&#xff0c;布隆过滤器 2.1&#xff0c;定义&#xff1a; 2.2&#xff0c;布隆过滤器的实现 2.3&#xff0c; 应…

GESP2023年12月认证C++六级( 第三部分编程题(1)闯关游戏)

参考程序代码&#xff1a; #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> #include <string> #include <map> #include <iostream> #include <cmath> using namespace std;const int N 10…

list容器(详解)

list的介绍及使用&#xff08;了解&#xff0c;后边细讲&#xff09; 1.1 list的介绍&#xff08;双向循环链表&#xff09; https://cplusplus.com/reference/list/list/?kwlist&#xff08;list文档介绍&#xff09; 1. list是可以在常数范围内在任意位置进行插入和删除的序…

RGB565转BITMAP[C#---2]

这是楼主在开发C#上位机的时候遇到的另一个问题&#xff0c;怎么把RGB565转为BITMAP&#xff0c;在CSDN上搜索&#xff0c;要么是安卓平台的&#xff0c;要么是2011年的古早代码&#xff08;还没排版&#xff09;&#xff0c;还是靠自己和DEEPSEEK的智慧解决了(●’◡’●) 当然…

pytorch实现门控循环单元 (GRU)

人工智能例子汇总&#xff1a;AI常见的算法和例子-CSDN博客 特性GRULSTM计算效率更快&#xff0c;参数更少相对较慢&#xff0c;参数更多结构复杂度只有两个门&#xff08;更新门和重置门&#xff09;三个门&#xff08;输入门、遗忘门、输出门&#xff09;处理长时依赖一般适…

【赵渝强老师】Spark RDD的依赖关系和任务阶段

Spark RDD彼此之间会存在一定的依赖关系。依赖关系有两种不同的类型&#xff1a;窄依赖和宽依赖。 窄依赖&#xff1a;如果父RDD的每一个分区最多只被一个子RDD的分区使用&#xff0c;这样的依赖关系就是窄依赖&#xff1b;宽依赖&#xff1a;如果父RDD的每一个分区被多个子RD…

为何在Kubernetes容器中以root身份运行存在风险?

作者:马辛瓦西奥内克(Marcin Wasiucionek) 引言 在Kubernetes安全领域,一个常见的建议是让容器以非root用户身份运行。但是,在容器中以root身份运行,实际会带来哪些安全隐患呢?在Docker镜像和Kubernetes配置中,这一最佳实践常常被重点强调。在Kubernetes清单文件中,…

Docker 安装详细教程(适用于CentOS 7 系统)

目录 步骤如下&#xff1a; 1. 卸载旧版 Docker 2. 配置 Docker 的 YUM 仓库 3. 安装 Docker 4. 启动 Docker 并验证安装 5. 配置 Docker 镜像加速 总结 前言 Docker 分为 CE 和 EE 两大版本。CE即社区版&#xff08;免费&#xff0c;支持周期7个月&#xff09;&#xf…

[MRCTF2020]Ez_bypass1(md5绕过)

[MRCTF2020]Ez_bypass1(md5绕过) ​​ 这道题就是要绕过md5强类型比较&#xff0c;但是本身又不相等&#xff1a; md5无法处理数组&#xff0c;如果传入的是数组进行md5加密&#xff0c;会直接放回NULL&#xff0c;两个NuLL相比较会等于true&#xff1b; 所以?id[]1&gg…