必背MySQL 50条SQL语句大全
在SQL编程的世界中,掌握一系列的实用命令和技巧对于提高工作效率至关重要,我们将为大家整理出一套MySQL中的必背50条重要SQL语句,这些语句涵盖了基本的查询、数据操作、表管理和安全设置等方面,帮助你高效地完成数据库管理任务。
创建数据库与用户
CREATE DATABASE database_name; GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; FLUSH PRIVILEGES;
删除数据库
DROP DATABASE database_name;
查询数据库信息
SHOW DATABASES; SELECT * FROM information_schema.tables WHERE table_schema = 'database_name';
修改数据库
ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
显示当前连接
SHOW FULL PROCESSLIST;
添加索引
CREATE INDEX index_name ON table_name (column_name);
删除索引
DROP INDEX index_name ON table_name;
查看表结构
DESCRIBE table_name; EXPLAIN SELECT column_name FROM table_name;
插入记录
INSERT INTO table_name VALUES (value1, value2, ...);
更新记录
UPDATE table_name SET column_name=value1 WHERE condition;
删除记录
DELETE FROM table_name WHERE condition;
复制表
CREATE TABLE new_table LIKE old_table;
获取所有字段名
SHOW COLUMNS FROM table_name;
设置表为只读模式
SET GLOBAL read_only=ON;
设置表为可写模式
SET GLOBAL read_only=OFF;
启动或关闭事务
START TRANSACTION; ROLLBACK; COMMIT;
执行外部存储过程
CALL stored_procedure_name();
使用变量
DECLARE variable_name INT DEFAULT default_value;
立即执行语句块
BEGIN; -- your statements here END;
异常处理
IF condition THEN -- handle error ELSE -- continue END IF;
分组聚合查询
SELECT column1, COUNT(column2) FROM table_name GROUP BY column1;
排序查询结果
ORDER BY column ASC/DESC LIMIT x;
按条件排序
ORDER BY column_name [ASC|DESC] LIMIT x OFFSET y;
条件过滤
WHERE column_name = 'value';
高级条件过滤
WHERE (condition1 AND condition2) OR condition3;
聚合函数
SUM(column_name), AVG(column_name), MAX(column_name), MIN(column_name);
数据库备份
mysqldump --opt database_name > backup_file.sql;
导入数据库
mysql -u username -p < backup_file.sql;
备份数据库日志
mysqldump --single-transaction --all-databases --no-data | gzip > db_backup.gz;
清理旧备份
rm db_backup.gz;
导入旧备份
gunzip db_backup.gz; mysql -u username -p < db_backup.sql;
建立外键约束
ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY (foreign_column) REFERENCES referenced_table(referenced_column);
删除外键约束
ALTER TABLE table_name DROP FOREIGN KEY constraint_name;
设置表锁定级别
SET GLOBAL wait_timeout = 28800;
查询表锁状态
SHOW VARIABLES LIKE '%wait_timeout%';
设置默认值
ALTER TABLE table_name MODIFY column_name data_type DEFAULT default_value;
移除唯一性约束
ALTER TABLE table_name DROP CONSTRAINT constraint_name;
设置行限制
SET SESSION max_allowed_packet = 1G;
查询系统参数
SHOW VARIABLES;
列表服务器配置
SHOW SLAVE HOSTS;
开启慢查询日志
SET GLOBAL slow_query_log=ON;
关闭慢查询日志
SET GLOBAL slow_query_log=OFF;
查看缓存状态
SHOW GLOBAL STATUS LIKE 'Key_buffer_%';
清空缓冲池
RESET MASTER;
重置缓存状态
STOP SLAVE;
设置临时目录
SET GLOBAL tmpdir='/path/to/tmp_directory';
运行外部脚本
SOURCE /path/to/script.sql;
查看字符集
SELECT @@character_set_database;
更改字符集
ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
在查询结果前添加注释
SET @sql = NULL; SELECT DISTINCT CONCAT('SELECT ', COLUMN_NAME, ' AS ', QUOTED_NAME, ' FROM `', TABLE_SCHEMA, '`.`', TABLE_NAME, '`') INTO @sql FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'your_database' AND TABLE_NAME IN ('table1', 'table2'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
是一些常用且重要的MySQL SQL语句,它们覆盖了基础的数据操作和表管理等关键领域,熟练掌握这些语句不仅能够提升你的编程效率,还能有效避免常见错误,希望这些建议能对你有所帮助!