导读:本期聚焦于小伙伴创作的《MySQL常用语句与函数大全:从DDL到DML的全面指南与实例》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《MySQL常用语句与函数大全:从DDL到DML的全面指南与实例》有用,将其分享出去将是对创作者最好的鼓励。

MySQL常用语句与函数大全:从DDL到DML的全面指南与实例

MySQL常用语句与函数大全及举例

在日常的开发与数据库维护中,熟练掌握MySQL的常用语句和函数能够极大提高工作效率。本文将系统性地梳理MySQL中最常用的DDL、DML语句以及各类核心函数,并提供实用的代码示例。

一、数据库与数据表操作(DDL)

DDL(Data Definition Language)主要用于定义或改变表的结构、数据类型等。

-- 创建数据库并指定字符集
CREATE DATABASE my_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE my_db;

-- 创建数据表
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL COMMENT '用户名',
    email VARCHAR(100) DEFAULT NULL COMMENT '邮箱',
    age TINYINT UNSIGNED DEFAULT 0 COMMENT '年龄',
    balance DECIMAL(10,2) DEFAULT 0.00 COMMENT '余额',
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 修改表:添加列
ALTER TABLE users ADD COLUMN phone VARCHAR(20) AFTER email;

-- 修改表:修改列类型
ALTER TABLE users MODIFY COLUMN age SMALLINT UNSIGNED;

-- 删除表
DROP TABLE IF EXISTS temp_table;

二、数据操作(DML)

DML(Data Manipulation Language)主要用于对表中的数据进行增删改查。

-- 插入数据
INSERT INTO users (username, email, age, balance) 
VALUES ('zhangsan', 'zhangsan@ipipp.com', 25, 1000.50);

-- 查询数据(条件、排序、分页)
SELECT id, username, balance FROM users 
WHERE age > 20 
ORDER BY balance DESC 
LIMIT 10 OFFSET 0;

-- 更新数据
UPDATE users SET balance = balance + 500 WHERE username = 'zhangsan';

-- 删除数据
DELETE FROM users WHERE id = 1;

三、常用聚合函数

聚合函数通常与 GROUP BY 语句一起使用,用于计算汇总值。

-- COUNT: 统计行数
SELECT COUNT(*) AS total_users FROM users;

-- SUM: 求和
SELECT SUM(balance) AS total_balance FROM users;

-- AVG: 求平均值
SELECT AVG(age) AS avg_age FROM users;

-- MAX / MIN: 求最大值 / 最小值
SELECT MAX(balance), MIN(balance) FROM users;

-- 结合 GROUP BY 使用
SELECT age, COUNT(*) AS user_count, AVG(balance) AS avg_balance 
FROM users 
GROUP BY age 
HAVING user_count > 1;

四、常用字符串函数

字符串函数用于处理文本类型的数据,如拼接、截取、替换等。

-- CONCAT: 字符串拼接
SELECT CONCAT(username, '-', email) AS user_info FROM users;

-- LENGTH: 获取字符串长度
SELECT username, LENGTH(username) AS name_len FROM users;

-- SUBSTRING: 截取字符串 (从第1个字符开始,截取3个)
SELECT SUBSTRING(username, 1, 3) AS short_name FROM users;

-- REPLACE: 替换字符串
SELECT REPLACE(email, 'ipipp.com', 'demo.ipipp.com') AS new_email FROM users;

-- TRIM: 去除首尾空格
SELECT TRIM(username) FROM users;

五、常用数值函数

数值函数主要用于数学计算。

-- ROUND: 四舍五入保留小数
SELECT ROUND(3.1415, 2); -- 结果: 3.14

-- CEIL: 向上取整
SELECT CEIL(3.14); -- 结果: 4

-- FLOOR: 向下取整
SELECT FLOOR(3.14); -- 结果: 3

-- ABS: 取绝对值
SELECT ABS(-10); -- 结果: 10

六、常用日期和时间函数

日期函数在处理时间维度的数据统计时尤为重要。

-- NOW / CURDATE / CURTIME: 获取当前日期时间
SELECT NOW(), CURDATE(), CURTIME();

-- DATE_FORMAT: 格式化日期
SELECT DATE_FORMAT(created_at, '%Y-%m-%d %H:%i:%s') AS format_time FROM users;

-- DATEDIFF: 计算两个日期相差的天数
SELECT DATEDIFF('2023-12-31', '2023-01-01') AS days_diff;

-- DATE_ADD / DATE_SUB: 日期加减
SELECT DATE_ADD(NOW(), INTERVAL 7 DAY) AS next_week;
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH) AS last_month;

七、流程控制函数

流程控制函数可以在SQL语句中实现类似编程语言中的条件判断逻辑。

-- IF: 条件判断
SELECT username, IF(age >= 18, '成年', '未成年') AS is_adult FROM users;

-- IFNULL: 判空替换(如果balance为NULL,则返回0)
SELECT username, IFNULL(balance, 0) AS current_balance FROM users;

-- CASE WHEN: 多条件分支判断
SELECT username, 
CASE 
    WHEN balance > 5000 THEN 'VIP客户'
    WHEN balance > 1000 THEN '普通客户'
    ELSE '潜在客户'
END AS customer_level
FROM users;

掌握上述MySQL常用语句与函数,能够应对绝大多数的数据库操作与数据处理场景。在实际应用中,建议结合索引优化和查询执行计划(EXPLAIN)来进一步提升SQL的执行效率。

MySQL常用语句聚合函数字符串函数日期函数流程控制函数

免责声明:已尽一切努力确保本网站所含信息的准确性。网站部分内容来源于网络或由用户自行发表,内容观点不代表本站立场。本站是个人网站免费分享,内容仅供个人学习、研究或参考使用,如内容中引用了第三方作品,其版权归原作者所有。若内容触犯了您的权益,请联系我们进行处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。前端、网络、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握网站开发与运维所需的核心技术栈。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端逻辑,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。