前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >50条MySQL常用脚本

50条MySQL常用脚本

作者头像
SQL数据库开发
发布2024-04-25 12:51:27
750
发布2024-04-25 12:51:27
举报
文章被收录于专栏:SQL数据库开发SQL数据库开发

SQL面试专栏

《SQL145题第2版》

花时间整理了50条常用的MySQL脚本,查漏补缺,希望对大家有所帮助。

代码语言:javascript
复制
-- 1、插入数据
INSERT INTO example_table (name, age) VALUES ('Alice', 30);

-- 2、查询表中所有数据
SELECT * FROM example_table;

-- 3、使用 LIMIT 限制结果数量
SELECT * FROM example_table LIMIT 10;

-- 4、按条件筛选数据
SELECT * FROM example_table WHERE age > 25;

-- 5、更新数据
UPDATE example_table SET age = 35 WHERE name = 'Alice';

-- 6、删除数据
DELETE FROM example_table WHERE id = 5;

-- 7、排序结果
SELECT * FROM example_table ORDER BY age DESC;

-- 8、计算行数
SELECT COUNT(*) FROM example_table;

-- 9、求和
SELECT SUM(age) FROM example_table;

-- 10、连接表
SELECT a.id, a.name, b.age
FROM table1 a
JOIN table2 b ON a.id = b.id;

-- 11、使用别名
SELECT name AS full_name FROM example_table;

-- 12、使用通配符进行模糊查询
SELECT * FROM example_table WHERE name LIKE 'A%';

-- 13、使用 GROUP BY 分组数据
SELECT age, COUNT(*) FROM example_table GROUP BY age;

-- 14、使用 HAVING 进一步筛选分组数据
SELECT age, COUNT(*) FROM example_table 
GROUP BY age 
HAVING COUNT(*) > 1;

-- 15、使用子查询
SELECT * FROM example_table 
WHERE age IN 
(SELECT age FROM other_table);

-- 16、使用 CASE 表达式进行条件操作
SELECT name, 
CASE WHEN age > 30 
     THEN 'Old' ELSE 'Young' 
END AS age_group 
FROM example_table;

-- 17、使用 JOIN 进行不同类型的连接
SELECT a.id, a.name, b.age 
FROM table1 a 
LEFT JOIN table2 b 
ON a.id = b.id;

-- 18、创建索引以加快查询速度
CREATE INDEX idx_name ON example_table(name);

-- 19、优化查询性能
EXPLAIN SELECT * FROM example_table WHERE age > 25;

-- 20、备份数据库
mysqldump -u username -p database_name > backup.sql;

-- 21、使用 DISTINCT 去除重复行
SELECT DISTINCT name FROM example_table;

-- 22、使用 BETWEEN 进行范围查询
SELECT * FROM example_table 
WHERE age BETWEEN 20 AND 30;

-- 23、使用 UPDATE 和 JOIN 更新关联表
UPDATE example_table a 
JOIN other_table b ON a.id = b.id 
SET a.age = b.age;

-- 24、使用 JOIN 和 COUNT 计算关联表中的记录数
SELECT a.id, COUNT(b.id) as count 
FROM table1 a 
LEFT JOIN table2 b ON a.id = b.id 
GROUP BY a.id;

-- 25、使用 LIMIT 和 OFFSET 实现分页功能
SELECT * FROM example_table 
LIMIT 10 OFFSET 20;

-- 26、使用 IFNULL 处理空值
SELECT name, IFNULL(age, 'Unknown') FROM example_table;

-- 27、将查询结果导出为CSV文件
SELECT order_id, product_name, quantity
INTO OUTFILE '/var/lib/mysql-files/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM example_table;

-- 28、批量插入数据
INSERT INTO example_table (name, age) 
VALUES ('Alice', 30), ('Bob', 25), ('Charlie', 35);

-- 29、使用 TRUNCATE 快速清空表数据
TRUNCATE TABLE example_table;

-- 30、使用 ROLLBACK 撤销未提交的更改
ROLLBACK;

-- 31、使用 UNION 合并多个查询的结果集并去重:
SELECT name FROM table1
UNION
SELECT name FROM table2;

-- 32、使用 CAST 或 CONVERT 转换数据类型:
SELECT CAST(age AS CHAR) FROM example_table;

-- 33、计算每个分组内的行的排名
SELECT name, age, 
       RANK() OVER (PARTITION BY age ORDER BY name) as age_rank
FROM example_table;

-- 34、使用 SHOW CREATE TABLE 查看表结构
SHOW CREATE TABLE example_table;

-- 35、删除表中的重复行
DELETE n1 
FROM example_table n1, example_table n2 
WHERE n1.id > n2.id AND n1.name = n2.name;

-- 36、将查询结果作为表进行使用
SELECT * FROM 
(SELECT name FROM example_table) AS subquery_table;

-- 37、使用 LOAD DATA INFILE 导入数据到表格中:
LOAD DATA INFILE 'data.csv' 
INTO TABLE example_table 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n';

-- 38、在查询中使用正则表达式
SELECT * FROM example_table 
WHERE name REGEXP '^A.*';

-- 39、使用 EXISTS 进行子查询检查
SELECT * FROM table1 
WHERE EXISTS 
(SELECT 1 FROM table2 
WHERE table1.id = table2.id);

-- 40、设置自动增量值的起始点
ALTER TABLE example_table AUTO_INCREMENT = 100;

-- 41、使用 CONCAT 合并列数据
SELECT CONCAT(name, ' is ', age, ' years old') AS description 
FROM example_table;

-- 42、查找表中的最大值和最小值
SELECT MAX(age) AS max_age, 
MIN(age) AS min_age 
FROM example_table;

-- 43、在查询结果中使用变量
SET @row_number = 0;
SELECT (@row_number:=@row_number+1) AS row_num, 
name 
FROM example_table;

-- 44、显示当前数据库中的所有表
SHOW TABLES;

-- 45、使用SHOW VARIABLES查看 MySQL 的配置变量:
SHOW VARIABLES LIKE 'version%';

-- 46、创建临时表并插入数据
CREATE TEMPORARY TABLE temp_table AS 
SELECT id, name FROM example_table 
WHERE age > 30;

-- 47、修改表结构,添加新列
ALTER TABLE example_table 
ADD COLUMN email VARCHAR(50);

-- 48、使用 GROUP_CONCAT 将多行值合并为单个字符串
SELECT id, GROUP_CONCAT(name) AS all_names 
FROM example_table GROUP BY id;

-- 49、使用 TRIGGER 实现对表的操作触发器
CREATE TRIGGER example_trigger 
BEFORE INSERT ON example_table 
FOR EACH ROW 
SET NEW.age = NEW.age + 1
;

-- 50、监控数据库性能
SHOW PROCESSLIST;
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SQL数据库开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档