无论是数据分析、Web开发还是系统存储,MySQL都扮演着举足轻重的角色
然而,要想充分发挥MySQL的潜力,熟练掌握其常见语句是至关重要的
本文精选了200条MySQL常见语句,旨在帮助你快速上手并深入掌握MySQL的核心技能
一、基础操作篇:构建数据库基石 1. 数据库管理 -创建数据库:`CREATE DATABASE dbname;` 创建一个名为dbname的数据库
-查看数据库:SHOW DATABASES; 列出所有数据库
-选择数据库:USE dbname; 选择要操作的数据库
-删除数据库:`DROP DATABASE dbname;` 删除指定的数据库
2. 表结构管理 -创建表:`CREATE TABLE tablename(column1 datatype, column2 datatype,...);` 创建一个包含指定列的表
-查看表结构:`DESCRIBE tablename;` 或`SHOW COLUMNS FROM tablename;` 查看表的列信息
-修改表结构: - 添加列:`ALTER TABLE tablename ADD column datatype;` - 修改列:`ALTER TABLE tablename MODIFY COLUMN column datatype;` - 删除列:`ALTER TABLE tablename DROP COLUMN column;` -重命名表:`ALTER TABLE oldtablename RENAME TO newtablename;` -删除表:`DROP TABLE tablename;` 3. 数据操作 -插入数据:`INSERT INTO tablename(column1, column2,...) VALUES(value1, value2,...);` -查询数据:`SELECT column1, column2, ... FROM tablename WHERE condition;` -更新数据:`UPDATE tablename SET column1 = value1, column2 = value2, ... WHERE condition;` -删除数据:`DELETE FROM tablename WHERE condition;` 二、高级查询篇:挖掘数据价值 1. 条件查询 - - 等于查询:`SELECT FROM tablename WHERE column = value;` - - 不等于查询:`SELECT FROM tablename WHERE column <> value;` 或`SELECT - FROM tablename WHERE column!= value;` - - 范围查询:`SELECT FROM tablename WHERE column BETWEEN value1 AND value2;` - - 模糊查询:`SELECT FROM tablename WHERE column LIKE pattern;` (其中pattern可以是`%`表示任意字符,`_`表示单个字符) - - 空值查询:`SELECT FROM tablename WHERE column IS NULL;` 2. 排序与限制 - - 排序:`SELECT FROM tablename ORDER BY column ASC;` 或`ORDER BY column DESC;` - - 限制结果集数量:`SELECT FROM tablename LIMIT number;` 或`LIMIT offset, number;` 3. 聚合函数与分组 -计数:`SELECT COUNT() FROM tablename;` -求和:`SELECT SUM(column) FROM tablename;` -平均值:`SELECT AVG(column) FROM tablename;` -最大值:`SELECT MAX(column) FROM tablename;` -最小值:`SELECT MIN(column) FROM tablename;` -分组:`SELECT column, COUNT() FROM tablename GROUP BY column;` 4. 连接查询 - - 内连接:`SELECT FROM table1 INNER JOIN table2 ON table1.column = table2.column;` - - 左连接:`SELECT FROM table1 LEFT JOIN table2 ON table1.column = table2.column;` - - 右连接:`SELECT FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;` -全连接:MySQL不直接支持全连接,但可以通过`UNION`实现:`SELECT - FROM table1 INNER JOIN table2 ON table1.column = table2.column UNION SELECT - FROM table1 LEFT JOIN table2 ON table1.column = table2.column WHERE table2.column IS NULL UNION SELECT - FROM table1 RIGHT JOIN table2 ON table1.column = table2.column WHERE table1.column IS NULL;` 三、索引与优化篇:提升性能的关键 1. 创建索引 -普通索引:`CREATE INDEX indexname ON tablename(column);` -唯一索引:`CREATE UNIQUE INDEX indexname ON tablename(column);` -主键索引:`ALTER TABLE tablename ADD PRIMARY KEY(column);` -组合索引:`CREATE INDEX indexname ON tablename(column1, column2);` 2. 查看索引 -查看表索引:`SHOW INDEX FROM tablename;` 3. 删除索引 -删除索引:`DROP INDEX indexname ON tablename;` 4. 查询优化 -使用EXPLAIN分析查询计划:`EXPLAIN SELECT - FROM tablename WHERE condition;` -避免SELECT :尽量指定需要的列,减少数据传输量
-使用合适的数据类型:根据实际需求选择合适的数据类型,避免过大或不必要的存储开销
-定期分析和优化表:`ANALYZE TABLE tablename;``OPTIMIZE TABLE tablename;` 四、事务与锁机制篇:确保数据一致性 1. 事务管理 -开始事务:START TRANSACTION; 或`BEGIN;` -提交事务:COMMIT; -回滚事务:ROLLBACK; -设置自动提交:`SET AUTOCOMMIT =0;` 关闭自动提交,`SET AUTOCOMMIT = 1;` 开启自动提交
2. 锁机制 -表级锁:`LOCK TABLES tablename READ;` 或`LOCK TABLES tablename WRITE;` -释放锁:UNLOCK TABLES; -行级锁:通过索引实现的行级锁,在`SELECT ... FOR UPDATE`或`SELECT ... LOCK IN SHARE MODE`语句中使用
五、备份与恢复篇:数据安全的保障 1. 数据备份 -使用mysqldump备份:`mysqldump -u username -p dbname > backupfile.sql` -导出表结构:`mysqldump -u username -p --no-data dbname > structurefile.sql`