无论是管理大型数据仓库,还是构建复杂的应用程序后端,MySQL都扮演着举足轻重的角色
然而,要充分发挥MySQL的潜力,掌握其常用命令与函数是必不可少的
本文将详细介绍一系列MySQL的常用命令和函数,帮助你更高效地进行数据库管理和数据操作
一、数据库与表的管理 1. 创建数据库与表 创建数据库: CREATE DATABASEdatabase_name; 这是MySQL中最基础的命令之一,用于创建一个新的数据库
`database_name`应替换为你希望创建的数据库名称
创建表: CREATE TABLEtable_name ( column1 datatype constraints, column2 datatype constraints, ... ); 在创建表时,你需要指定表的名称以及各列的数据类型和约束条件
例如,创建一个用户信息表: CREATE TABLEusers ( id INT AUTO_INCREMENT PRIMARY KEY, usernameVARCHAR(50) NOT NULL, emailVARCHAR(100), created_at TIMESTAMP DEFAULTCURRENT_TIMESTAMP ); 2. 修改数据库与表 修改数据库:虽然MySQL不直接支持修改数据库名称的操作,但你可以通过创建一个新数据库、将数据从旧数据库迁移到新数据库、然后删除旧数据库的方式间接实现
修改表结构: 添加列: ALTER TABLEtable_name ADDcolumn_name datatype constraints; 修改列: ALTER TABLEtable_name MODIFY COLUMN column_name datatype constraints; 删除列: ALTER TABLEtable_name DROP COLUMN column_name; 重命名表: ALTER TABLEold_table_name RENAME TOnew_table_name; 3. 删除数据库与表 删除数据库: DROP DATABASEdatabase_name; 删除表: DROP TABLEtable_name; 二、数据操作 1. 插入数据 插入单行数据: INSERT INTOtable_name (column1, column2,...) VALUES(value1, value2, ...); 插入多行数据: INSERT INTOtable_name (column1, column2,...) VALUES (value1_1, value1_2, ...), (value2_1, value2_2, ...), ...; 2. 查询数据 基本查询: SELECT column1, column2, ... FROM table_name; 条件查询: SELECT column1, column2, ... FROM table_name WHERE condition; 排序查询: SELECT column1, column2, ... FROM table_name ORDER BY column1【ASC|DESC】; 聚合查询: SELECT AGGREGATE_FUNCTION(column) FROMtable_name; 常用的聚合函数包括`COUNT(),SUM()`,`AVG(),MAX()`,`MIN()`等
分组查询: SELECT column1, AGGREGATE_FUNCTION(column2) FROMtable_name GROUP BY column1; 连接查询: SELECT a.column1, b.column2, ... FROM table1 a JOIN table2 b ON a.common_column = b.common_column; MySQL支持多种类型的连接,包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN,MySQL中通过UNION实现)
3. 更新数据 UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; 注意:WHERE子句非常关键,如果不指定条件,将会更新表中的所有行
4. 删除数据 DELETE FROMtable_name WHERE condition; 同样,`WHERE`子句用于指定要删除的行,如果不指定条件,将会删除表中的所有行
三、常用函数 MySQL提供了丰富的内置函数,用于处理字符串、数值、日期和时间等数据
1. 字符串函数 CONCAT():连接两个或多个字符串
SELECT CONCAT(Hello, , world!) AS greeting; - SUBSTRING():从字符串中提取子字符串
SELECT SUBSTRING(Hello,world!, 8, AS extracted_string; LENGTH():返回字符串的长度
SELECT LENGTH(Hello, world!) ASstring_length; - UPPER() 和 LOWER():将字符串转换为大写或小写
SELECT UPPER(Hello, world!) ASupper_string,LOWER(Hello,world!) AS lower_string; 2. 数值函数 ABS():返回数值的绝对值
SELECT ABS(-1 AS absolute_value; - CEILING() 和 FLOOR():向上或向下取整
SELECT CEILING(4.2) ASceil_value, FLOOR(4.8) ASfloor_value; ROUND():四舍五入到指定的小数位数
SELECT ROUND(4.567, AS rounded_value; 3. 日期和时间函数 NOW():返回当前的日期和时间
SELECT NOW() AScurrent_datetime; - CURDATE() 和 CURTIME():返回当前的日期或时间
SELECT CURDATE() AS current_date, CURTIME() AS current_time; - DATE_ADD() 和 DATE_SUB():在日期上添加或减去指定的时间间隔
SELECT DATE_ADD(2023-10-01, INTERVAL 7 DAY) ASnew_date,DATE_SUB(2023-10-01, INTERVAL 7DAY) AS old_date; - DATEDIFF():返回两个日期之间的天数差
SELECT DATEDIFF(2023-10-08, 2023-10-01) AS days_difference; 4. 聚合函数 前面在查询数据部分已经简要介绍了聚合函数,这里再做一些补充
COUNT():返回匹配的行数
SELECT COUNT() AS total_rows FROM table_name; SUM():返回指定列的总和
SELECT SUM(column_name) AStotal_sum FROMtable_name; AVG():返回指定列的平均值
SELECT AVG(column_name) ASaverage_value FROMtable_name; - MAX() 和 MIN():返回指定列的最大值或最小值
SELECT MAX(column_name) ASmax_value,MIN(column_name) AS min_value FROM table_name; 四、优化与维护 MySQL提供了多种工具和命令,用于优化数据库性能和维护数据库健康
- ANALYZE TABLE:更新表的统计信息,帮助优化查询
ANALYZE TABLE table_name; - OPTIMIZE TABLE:对表进行优化,包括重新组织表和更新索引
OPTIMIZE TABLE table_name; - EXPLAIN:分析查询计划,帮助识别性能瓶颈
EXPLAIN SELECT - FROM table_name WHERE condition; - BACKUP & RESTORE:定期备份数据库是保持数据安全的最佳实践
MySQL提供了`mysqldump`工具用于备份和恢复数据库
备份数据库 mysqldump -u username -p database_name > back