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

2025-06-24 17:50

本文主要是介绍Mysql常见的SQL语句格式及实用技巧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《Mysql常见的SQL语句格式及实用技巧》本文系统梳理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_namewww.chinasem.cn (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 = valhttp://www.chinasem.cnue1, 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;
-- 查看所php有数据库
SHOW DATABASES;
-- 切换数据库
USE db_name;

2.表操作

(1)创建表

CREATE TABLE IF NOT EXISTS users (
  id INT androidPRIMARY 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 COLUMjsN 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语句格式内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!

这篇关于Mysql常见的SQL语句格式及实用技巧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1155199

相关文章

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

MySQL追踪数据库表更新操作来源的全面指南

《MySQL追踪数据库表更新操作来源的全面指南》本文将以一个具体问题为例,如何监测哪个IP来源对数据库表statistics_test进行了UPDATE操作,文内探讨了多种方法,并提供了详细的代码... 目录引言1. 为什么需要监控数据库更新操作2. 方法1:启用数据库审计日志(1)mysql/mariad

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复

python 常见数学公式函数使用详解(最新推荐)

《python常见数学公式函数使用详解(最新推荐)》文章介绍了Python的数学计算工具,涵盖内置函数、math/cmath标准库及numpy/scipy/sympy第三方库,支持从基础算术到复杂数... 目录python 数学公式与函数大全1. 基本数学运算1.1 算术运算1.2 分数与小数2. 数学函数

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

MySQL主从复制与读写分离的用法解读

《MySQL主从复制与读写分离的用法解读》:本文主要介绍MySQL主从复制与读写分离的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、主从复制mysql主从复制原理实验案例二、读写分离实验案例安装并配置mycat 软件设置mycat读写分离验证mycat读