Mysql常见的SQL语句格式及实用技巧

 更新时间:2025年06月24日 11:14:08   作者:杨了个杨8982  
本文系统梳理MySQL常见SQL语句格式,涵盖数据库与表的创建、删除、修改、查询操作,以及记录增删改查和多表关联等高级查询,同时提供索引优化、事务处理、临时表等实用技巧,感兴趣的朋友一起看看吧

一、常用语法汇总

数据库(database)表(table)记录
CREATE DATABASE [IF NOT EXISTS] database_name;CREATE TABLE [IF NOT EXISTS] table_name (
  column1 datatype [constraint],
  column2 datatype [constraint],
  ...
  [PRIMARY KEY (column_list)]
);

-- 插入记录(单条)
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

-- 插入多条记录
INSERT INTO table_name (column1, column2, ...)
VALUES (value1_1, value1_2, ...),
       (value2_1, value2_2, ...);

DROP DATABASE [IF EXISTS] database_name;DROP TABLE [IF EXISTS] table_name;DELETE FROM table_name WHERE condition;
-- 切换数据库
USE database_name;
-- 修改表结构(示例:添加列)
ALTER TABLE table_name ADD column_name datatype;
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
SHOW DATABASES;

-- 查看所有表
SHOW TABLES;

-- 查看表结构
DESCRIBE table_name;

-- 查询记录(全量)
SELECT * FROM table_name;

-- 查询特定字段
SELECT column1, column2 FROM table_name;

-- 条件查询
SELECT * FROM table_name WHERE condition;

-- 排序查询
SELECT * FROM table_name ORDER BY column [ASC|DESC];

-- 分页查询(LIMIT 从 0 开始)
SELECT * FROM table_name LIMIT offset, count;

常用约束与修饰符
-- 主键约束(唯一标识)
PRIMARY KEY (column)
-- 唯一约束(值不能重复)
UNIQUE (column)
-- 非空约束
NOT NULL
-- 默认值
DEFAULT value
-- 自增(整数类型)
AUTO_INCREMENT

二、示例

1.数据库操作

-- 创建数据库(存在则跳过)
CREATE DATABASE IF NOT EXISTS db_name;
-- 删除数据库(谨慎使用)
DROP DATABASE IF EXISTS db_name;
-- 查看所有数据库
SHOW DATABASES;
-- 切换数据库
USE db_name;

2.表操作

(1)创建表

CREATE TABLE IF NOT EXISTS users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL,
  age INT DEFAULT 18,
  email VARCHAR(100) UNIQUE,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

(2)修改表结构

-- 添加列
ALTER TABLE users ADD COLUMN phone VARCHAR(20);
-- 修改列类型
ALTER TABLE users MODIFY COLUMN age TINYINT;
-- 重命名列
ALTER TABLE users CHANGE COLUMN phone mobile VARCHAR(20);
-- 删除列
ALTER TABLE users DROP COLUMN mobile;

(3)删除表

DROP TABLE IF EXISTS users;

(4)查看表信息

-- 查看表结构
DESCRIBE users;
-- 查看建表语句
SHOW CREATE TABLE users;

3.记录操作 

(1)插入数据

-- 单条插入
INSERT INTO users (name, age, email)
VALUES ('Alice', 25, 'alice@example.com');
-- 批量插入
INSERT INTO users (name, age)
VALUES ('Bob', 30), ('Charlie', 22);
-- 插入查询结果
INSERT INTO users_backup (name, age)
SELECT name, age FROM users WHERE age > 25;

(2)查询数据

-- 基础查询
SELECT * FROM users;
-- 条件查询
SELECT name, age FROM users WHERE age > 25 AND name LIKE 'A%';
-- 去重查询
SELECT DISTINCT age FROM users;
-- 排序与分页
SELECT * FROM users ORDER BY age DESC LIMIT 10 OFFSET 20;
-- 聚合函数
SELECT COUNT(*), AVG(age), MAX(age) FROM users;
-- 分组查询
SELECT age, COUNT(*) FROM users GROUP BY age HAVING COUNT(*) > 1;

(3)更新数据

-- 单条件更新
UPDATE users SET age = age + 1 WHERE name = 'Alice';
-- 多字段更新
UPDATE users SET age = 30, email = 'bob@new.com' WHERE id = 2;
-- 批量更新(基于子查询)
UPDATE users u
JOIN user_scores s ON u.id = s.user_id
SET u.age = s.age + 5;

(4)删除数据

-- 按条件删除
DELETE FROM users WHERE age < 18;
-- 清空表(保留结构)
TRUNCATE TABLE users;

4.高级查询

(1)多表关联

-- 内连接
SELECT u.name, o.order_id
FROM users u
JOIN orders o ON u.id = o.user_id;
-- 左连接
SELECT u.name, o.order_id
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;

(2)子查询

SELECT * FROM users
WHERE age > (SELECT AVG(age) FROM users);

(3)联合查询

SELECT name FROM users
UNION
SELECT product_name FROM products;

三、实用技巧

1.避免全表扫描:为查询字段添加索引

CREATE INDEX idx_age ON users (age)

2.事务处理:保证数据一致性

START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT; -- 或 ROLLBACK

3.临时表:提升查询效率与隔离性,会话内有效,会话关闭自动删除。

-- 创建临时表并填充数据
CREATE TEMPORARY TABLE temp_orders AS
SELECT order_id, user_id, amount
FROM orders
WHERE create_time > '2023-01-01';
-- 使用临时表进行后续查询
SELECT user_id, SUM(amount)
FROM temp_orders
GROUP BY user_id;

到此这篇关于Mysql常见的SQL语句格式的文章就介绍到这了,更多相关mysql sql语句格式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mysql实现merge into问题

    mysql实现merge into问题

    文章介绍了在数据库操作中,如何使用`REPLACE INTO`和`INSERT INTO ON DUPLICATE KEY UPDATE`语句进行数据更新和插入操作,如果不想创建唯一性索引,可以通过存储过程实现,文章通过实验和验证,展示了这两种方法的实际效果
    2024-12-12
  • MySQL存储引擎InnoDB的配置与使用的讲解

    MySQL存储引擎InnoDB的配置与使用的讲解

    今天小编就为大家分享一篇关于MySQL存储引擎InnoDB的配置与使用的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • mysql 5.7.27 winx64安装配置方法图文教程

    mysql 5.7.27 winx64安装配置方法图文教程

    这篇文章主要为大家详细介绍了mysql 5.7.27 winx64安装配置方法图文教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • MySQL转换Oracle的需要注意的七个事项

    MySQL转换Oracle的需要注意的七个事项

    有很多应用项目, 刚起步的时候用MySQL数据库基本上能实现各种功能需求,随着应用用户的增多,数据量的增加,MySQL渐渐地出现不堪重负的情况:连接很慢甚至宕机,于是就有MySQL转换Oracle的需求,应用程序也要相应做一些修改。
    2010-12-12
  • MYSQL基础之连接MYSQL、修改密码、添加用户

    MYSQL基础之连接MYSQL、修改密码、添加用户

    在这篇文章中我们就从连接MYSQL、修改密码、增加用户等方面来学习一些MYSQL的常用命令。
    2008-08-08
  • Mysql 数据库更新错误的解决方法

    Mysql 数据库更新错误的解决方法

    Mysql 数据库更新错误的解决方法,需要的朋友可以参考下。
    2011-07-07
  • 简单了解mysql方言dialect

    简单了解mysql方言dialect

    这篇文章主要介绍了简单了解数据库方言dialect,数据库方言也是如此,MySQL 是一种方言,Oracle 也是一种方言,MSSQL 也是一种方言,他们之间在遵循 SQL 规范的前提下,都有各自的扩展特性,需要的朋友可以参考下
    2019-07-07
  • 详解Mysql中日期比较大小的方法

    详解Mysql中日期比较大小的方法

    这篇文章主要介绍了Mysql中日期比较大小的方法,需要的朋友可以参考下
    2018-04-04
  • MySQL联合索引遵循最左前缀匹配原则

    MySQL联合索引遵循最左前缀匹配原则

    这篇文章主要介绍了MySQL联合索引遵循最左前缀匹配原则, MySQL联合索引遵循最左前缀匹配原则,即最左优先,查询的时候会优先匹配最左边的索引
    2022-08-08
  • MySQL登录报错排查:1045、2003错误问题及解决

    MySQL登录报错排查:1045、2003错误问题及解决

    本文详细介绍了MySQL常见报错1145拒绝访问和213无法连接的解决方法,从错误原因出发,通过确认账号密码、重置密码、授权远程访问等步骤解决;通过检查MySQL服务是否启动、查看端口占用情况、关闭防火墙等方式解决;其他常见报错则通过安装系统服务、配置文件修改
    2026-05-05

最新评论