一、基本查询语句
查询所有数据:查询特定列:条件查询:- SELECT * FROM 表名 WHERE 条件;
复制代码 模糊查询:- SELECT * FROM 表名 WHERE 列名 LIKE '模式%';
复制代码 排序查询:- SELECT * FROM 表名 ORDER BY 列名 ASC|DESC;
复制代码 限制返回行数:- SELECT * FROM 表名 LIMIT 10;
复制代码 去重查询:- SELECT DISTINCT 列名 FROM 表名;
复制代码 二、聚合与分组
聚合函数 - 计数:分组查询:- SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名;
复制代码 条件分组:- SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名 HAVING COUNT(*) > 1;
复制代码 计算总和:计算平均值:计算最大值:计算最小值:三、数据操作
插入数据:- INSERT INTO 表名 (列名1, 列名2) VALUES (值1, 值2);
复制代码 批量插入数据:- INSERT INTO 表名 (列名1, 列名2) VALUES (值1, 值2), (值3, 值4);
复制代码 更新数据:- UPDATE 表名 SET 列名 = 新值 WHERE 条件;
复制代码 删除数据:四、表操作
创建表:- CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型);
复制代码 删除表:修改表结构:- ALTER TABLE 表名 ADD 列名 数据类型;
复制代码 删除表中的列:- ALTER TABLE 表名 DROP COLUMN 列名;
复制代码 重命名表:- ALTER TABLE 旧表名 RENAME TO 新表名;
复制代码 五、索引与视图
创建索引:- CREATE INDEX 索引名 ON 表名 (列名);
复制代码 删除索引:创建视图:- CREATE VIEW 视图名 AS SELECT * FROM 表名;
复制代码 删除视图:六、连接查询
内连接:- SELECT * FROM 表1 INNER JOIN 表2 ON 表1.列名 = 表2.列名;
复制代码 左连接:- SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.列名 = 表2.列名;
复制代码 右连接:- SELECT * FROM 表1 RIGHT JOIN 表2 ON 表1.列名 = 表2.列名;
复制代码 全连接:- SELECT * FROM 表1 FULL OUTER JOIN 表2 ON 表1.列名 = 表2.列名;
复制代码 七、子查询与集合
子查询:- SELECT * FROM 表名 WHERE 列名 IN (SELECT 列名 FROM 其他表名);
复制代码 存在查询:- SELECT * FROM 表名 WHERE EXISTS (SELECT 1 FROM 其他表名 WHERE 条件);
复制代码 联合查询:- SELECT 列名 FROM 表1 UNION SELECT 列名 FROM 表2;
复制代码 八、日期与时间
获取当前时间:获取当前日期:日期加法:- SELECT DATE_ADD(日期, INTERVAL 1 DAY);
复制代码 日期减法:- SELECT DATE_SUB(日期, INTERVAL 1 DAY);
复制代码 格式化日期:- SELECT DATE_FORMAT(日期, '%Y-%m-%d');
复制代码 九、字符串处理
字符串连接:- SELECT CONCAT(列名1, 列名2) FROM 表名;
复制代码 字符串长度:- SELECT LENGTH(列名) FROM 表名;
复制代码 字符串截取:- SELECT SUBSTRING(列名, 1, 5) FROM 表名;
复制代码 查找字符串位置:- SELECT LOCATE('子串', 列名) FROM 表名;
复制代码 大写转换:- SELECT UPPER(列名) FROM 表名;
复制代码 小写转换:- SELECT LOWER(列名) FROM 表名;
复制代码 去除空格:十、其他高级功能
使用CASE语句:- SELECT 列名, CASE WHEN 条件 THEN '值1' ELSE '值2' END FROM 表名;
复制代码 使用IF语句:- SELECT 列名, IF(条件, '值1', '值2') FROM 表名;
复制代码 使用COALESCE函数:- SELECT COALESCE(列名, '默认值') FROM 表名;
复制代码 使用NULLIF函数:- SELECT NULLIF(列名1, 列名2) FROM 表名;
复制代码 获取唯一值的数量:- SELECT COUNT(DISTINCT 列名) FROM 表名;
复制代码 使用GROUP_CONCAT:- SELECT GROUP_CONCAT(列名) FROM 表名 GROUP BY 其他列名;
复制代码 十一、事务管理
事务开始:提交事务:回滚事务:十二、游标与存储过程
创建游标:- DECLARE 游标名 CURSOR FOR SELECT 列名 FROM 表名;
复制代码 打开游标:获取游标数据:关闭游标:创建存储过程:- CREATE PROCEDURE 存储过程名 AS BEGIN ... END;
复制代码 调用存储过程:十三、函数与触发器
创建函数:- CREATE FUNCTION 函数名() RETURNS 数据类型 AS BEGIN ... END;
复制代码 调用函数:创建触发器:- CREATE TRIGGER 触发器名 BEFORE INSERT ON 表名 FOR EACH ROW SET 新列 = '值';
复制代码 删除触发器:十四、系统信息查询
查询当前用户:查询当前数据库:查询表的行数和大小:- SELECT TABLE_NAME, TABLE_ROWS, DATA_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA = '数据库名';
复制代码 获取表的创建时间:- SELECT CREATE_TIME FROM information_schema.TABLES WHERE TABLE_NAME = '表名';
复制代码 获取表的修改时间:- SELECT UPDATE_TIME FROM information_schema.TABLES WHERE TABLE_NAME = '表名';
复制代码 十五、其他实用查询
使用LIMIT与ORDER BY结合:- SELECT * FROM 表名 ORDER BY 列名 LIMIT 10;
复制代码 查询表的外键约束:- SELECT CONSTRAINT_NAME, TABLE_NAME FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = '数据库名';
复制代码 查询表的主键约束:- SELECT CONSTRAINT_NAME, TABLE_NAME FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_SCHEMA = '数据库名' AND CONSTRAINT_TYPE = 'PRIMARY KEY';
复制代码 使用ROLLUP进行分组汇总:- SELECT 列名, SUM(列名2) FROM 表名 GROUP BY 列名 WITH ROLLUP;
复制代码 获取前N条记录:- SELECT * FROM 表名 LIMIT N;
复制代码 获取最后N条记录:- SELECT * FROM 表名 ORDER BY 列名 DESC LIMIT N;
复制代码 使用NOT EXISTS进行条件判断:- SELECT * FROM 表名 WHERE NOT EXISTS (SELECT 1 FROM 其他表名 WHERE 条件);
复制代码 使用IN进行条件判断:- SELECT * FROM 表名 WHERE 列名 IN (值1, 值2);
复制代码 使用NOT IN进行条件判断:- SELECT * FROM 表名 WHERE 列名 NOT IN (值1, 值2);
复制代码 使用UNION ALL:- SELECT 列名 FROM 表1 UNION ALL SELECT 列名 FROM 表2;
复制代码 十六、性能优化
使用EXPLAIN分析查询:- EXPLAIN SELECT * FROM 表名 WHERE 条件;
复制代码 优化索引:- CREATE INDEX 索引名 ON 表名 (列名);
复制代码 使用临时表:- CREATE TEMPORARY TABLE 临时表名 AS SELECT * FROM 表名;
复制代码 查询表的索引:查询数据库版本:十七、常见错误处理
捕获错误:- DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN ... END;
复制代码 输出错误信息:使用事务处理错误:- BEGIN; -- 开始事务
- -- 执行SQL语句
- -- 如果有错误,ROLLBACK
复制代码 十八、数据备份与恢复
备份数据库:- mysqldump -u 用户名 -p 数据库名 > 备份文件.sql
复制代码 恢复数据库:- mysql -u 用户名 -p 数据库名 < 备份文件.sql
复制代码 十九、数据导入与导出
导入数据:- LOAD DATA INFILE '文件路径' INTO TABLE 表名;
复制代码 导出数据:- SELECT * INTO OUTFILE '文件路径' FROM 表名;
复制代码 二十、常用工具与命令
显示当前数据库:显示所有数据库:显示所有表:显示表结构:显示当前连接信息:显示数据库使用情况:- SELECT table_schema AS '数据库', SUM(data_length + index_length) / 1024 / 1024 AS '大小(MB)' FROM information_schema.TABLES GROUP BY table_schema;
复制代码 显示表的行数:显示用户权限:- SHOW GRANTS FOR '用户名'@'主机名';
复制代码 以上就是本期全部内容
我是晓凡,再小的帆也能远航
希望对你有所帮助
我们下期再见 ヾ(•ω•`)o (●'◡'●)
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |