mysql常用语句

MySQL常用命令技术文章大纲

数据库操作
  • 创建数据库
    CREATE DATABASE database_name;
  • 删除数据库
    DROP DATABASE database_name;
  • 查看所有数据库
    SHOW DATABASES;
  • 使用数据库
    USE database_name;
表操作
  • 创建表

    sql 复制代码
    CREATE TABLE table_name (
        column1 datatype constraints,
        column2 datatype constraints,
        ...
    );
  • 删除表
    DROP TABLE table_name;

  • 查看表结构
    DESCRIBE table_name;SHOW COLUMNS FROM table_name;

  • 修改表结构

    sql 复制代码
    ALTER TABLE table_name 
    ADD column_name datatype;
  • 重命名表
    RENAME TABLE old_name TO new_name;

数据操作
  • 插入数据

    sql 复制代码
    INSERT INTO table_name (column1, column2, ...) 
    VALUES (value1, value2, ...);
  • 查询数据
    SELECT * FROM table_name;

  • 更新数据

    sql 复制代码
    UPDATE table_name 
    SET column1 = value1, column2 = value2 
    WHERE condition;
  • 删除数据
    DELETE FROM table_name WHERE condition;

索引操作
  • 创建索引
    CREATE INDEX index_name ON table_name (column_name);
  • 删除索引
    DROP INDEX index_name ON table_name;
用户与权限管理
  • 创建用户
    CREATE USER 'username'@'host' IDENTIFIED BY 'password';

  • 授予权限

    sql 复制代码
    GRANT permission_type ON database_name.table_name 
    TO 'username'@'host';
  • 撤销权限

    sql 复制代码
    REVOKE permission_type ON database_name.table_name 
    FROM 'username'@'host';
  • 删除用户
    DROP USER 'username'@'host';

备份与恢复
  • 导出数据库
    mysqldump -u username -p database_name > backup.sql
  • 导入数据库
    mysql -u username -p database_name < backup.sql
事务与锁
  • 开启事务
    START TRANSACTION;
  • 提交事务
    COMMIT;
  • 回滚事务
    ROLLBACK;
性能优化
  • 查看执行计划
    EXPLAIN SELECT * FROM table_name;
  • 优化表
    OPTIMIZE TABLE table_name;

联表查询的基本概念

联表查询(Join)用于从多个表中组合数据,基于表之间的关联字段。常见的联表类型包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN)。

内连接(INNER JOIN)

内连接返回两个表中匹配的行。语法示例:

sql 复制代码
SELECT A.column1, B.column2
FROM TableA A
INNER JOIN TableB B ON A.key = B.key;

仅返回 TableATableBkey 字段匹配的行。

左连接(LEFT JOIN)

左连接返回左表的所有行,即使右表没有匹配。右表无匹配时填充 NULL。语法示例:

sql 复制代码
SELECT A.column1, B.column2
FROM TableA A
LEFT JOIN TableB B ON A.key = B.key;

右连接(RIGHT JOIN)

右连接返回右表的所有行,即使左表没有匹配。左表无匹配时填充 NULL。语法示例:

sql 复制代码
SELECT A.column1, B.column2
FROM TableA A
RIGHT JOIN TableB B ON A.key = B.key;

全连接(FULL JOIN)

全连接返回左右表的所有行,无匹配时填充 NULL。语法示例:

sql 复制代码
SELECT A.column1, B.column2
FROM TableA A
FULL JOIN TableB B ON A.key = B.key;

自连接(Self Join)

自连接是表与自身的连接,通常用于层级数据查询。语法示例:

sql 复制代码
SELECT A.column1, B.column2
FROM Table A, Table B
WHERE A.key = B.foreign_key;

多表连接

可以连接多个表,语法示例:

sql 复制代码
SELECT A.column1, B.column2, C.column3
FROM TableA A
INNER JOIN TableB B ON A.key = B.key
INNER JOIN TableC C ON B.key = C.key;

性能优化建议

  • 为连接字段创建索引。
  • 避免不必要的联表,仅选择需要的字段。
  • 使用 EXPLAIN 分析查询执行计划。

联表查询是数据库操作的核心功能,合理使用能高效整合多表数据。

  • 查看MySQL版本
    SELECT VERSION();
  • 查看当前用户
    SELECT USER();
  • 查看当前时间
    SELECT NOW();
相关推荐
设计师小聂!11 小时前
宝塔 Linux 面板保姆级教程
linux·mysql·开源·运维开发
小小龙学IT12 小时前
Go 泛型深度解析:从设计哲学到工程实践
服务器·数据库·golang
天行健,君子而铎12 小时前
2026年通用行业数据分类分级产品排名——聚焦成本低、全链路覆盖与高性能计算的优质选型
大数据·数据库·人工智能
Tong Z12 小时前
Mysql DDL中的ALGORITHM
数据库·mysql
电商API_1800790524713 小时前
Python 实现闲鱼商品列表批量采集,接口异常重试机制搭建
大数据·开发语言·数据库·爬虫·python
焦虑的说说14 小时前
redis和数据库的一致性如何保证
数据库·redis·缓存
阿狸猿14 小时前
论基于云原生数据库的企业信息系统架构设计
数据库·云原生
MXsoft61815 小时前
**配置自动备份与变更告警:杜绝“黑变更”风险**
网络·数据库
骑士雄师16 小时前
19.3 langgraph的工作节点和路由函数
java·前端·数据库
梓䈑16 小时前
C++ 接入 SQLite 数据库:环境搭建、API 详解 与 两种执行方式对比
数据库·c++·sqlite