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

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;

相关文章:

  • 华为HN8145V光猫改华为蓝色公版界面,三网通用,xgpon公版光猫
  • Modbus TCP转Profibus DP网关与JF - 600MT称重变送器在STEP 7快速配置
  • 网络安全之某cms的漏洞分析
  • Pytorch Lightning 进阶 1 - 梯度检查点(Gradient Checkpointing)
  • MySQL8:jdbc插入数据后获取自增ID
  • 实现Markdown文本转html并使用html2canvas导出图片
  • 可信计算的基石:TPM技术深度解析与应用实践
  • 图像融合中损失函数【1】--像素级别损失
  • 如何快速判断Excel文档是否被修改过?Excel多版本比对解决方案
  • 新能源知识库(65)逆变器和PCS的专用散热风扇介绍
  • Java学习第一周
  • Hum Brain Mapp.:从深度学习模型回归大脑:揭示区域预测因子及其与衰老的关系
  • QT6(46)5.2 QStringListModel 和 QListView :列表的模型与视图的界面搭建与源代码实现
  • Gartner《Generative AI Use - Case Comparison for Legal Departments》
  • python基于微信小程序的广西文化传承系统
  • 智慧水利新引擎,数字孪生流域解决方案
  • 生成式AI与智能体改写互联网、IT与工业经济格局
  • 深度学习:PyTorch卷积神经网络(CNN)之图像入门
  • 【Leetcode】有效的括号、用栈实现队列、用队列实现栈
  • 成都芯谷金融中心文化科技产业园:构建文化科技产业融合新标杆
  • 网站推广软文案例/百度竞价冷门产品
  • 网站建设平台方案设计/站长工具中文精品
  • 嵌入式工程师是干嘛的/百度seo哪家公司好
  • 惠州有哪些做网站的公司/政府免费培训面点班
  • 杨凌做网站的/百度推广怎么使用教程
  • 西宁网站建设天锐科技/百度高级搜索页面