当前位置: 首页 > news >正文

浅谈SQL应用考试,临时抱佛脚篇

说到SQL,相信大家第一反应就是,好难,看不懂,有现成的命令可以搜,不会用,等等等等各种自我劝退。
其实,在这里我告诉你,莫慌,我也没那么精通。只是恰好相比你们有一些自己的理解。

简单说说sql逻辑,正如下面的流程图,sql是有逻辑的,理解了逻辑,记住特定名词,稍稍练手,很快就理解,相信我,sql不难。

FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY

上面的单词都认识吧?
不认识?那请移步隔壁B站学习小学英语,这篇教程不适合你。

现在请记住上面的逻辑,我一点一点讲给你听。

SELECT列 FROM表 WHERE条件 GROUP BY分组 HAVING过滤 ORDER BY排序

翻译过来就是下面这样
SELECT 查询
FROM 从哪里
WHERE 筛选条件
先筛选数据,再分组聚合,最后排序输出

好现在基本名词你应该已经记下来了,接下来的概念会很抽象,不过没关系,带上你的脑袋瓜,把记住的名词带入案例,你很快就明白是什么意思了。

  1. 查数据(SELECT)
-- 基础查询
SELECT 姓名, 成绩 FROM 学生表 WHERE 年龄 > 18;
-- 排序
SELECT * FROM 成绩表 ORDER BY 分数 DESC;
-- 分组统计
SELECT 课程, AVG(成绩) FROM 成绩表 GROUP BY 课程;
-- 多表联查
SELECT s.姓名, c.课程名 
FROM 学生表 s 
JOIN 选课表 c ON s.学号 = c.学号;

口诀:SELECT列 FROM表 WHERE条件 GROUP BY分组 HAVING过滤 ORDER BY排序
2. 增删改数据

-- 插入单条
INSERT INTO 学生表 (学号, 姓名) VALUES (1, '张三');
-- 更新数据
UPDATE 成绩表 SET 分数=90 WHERE 学号=1;
-- 删除数据
DELETE FROM 学生表 WHERE 年龄 < 18;

注意:UPDATE和DELETE必须加WHERE,否则全表操作!
3. 事务控制

BEGIN;  -- 开始事务
UPDATE 账户 SET 余额=余额-100 WHERE 姓名='A';
UPDATE 账户 SET 余额=余额+100 WHERE 姓名='B';
COMMIT;  -- 提交事务(成功)
-- 出错时用 ROLLBACK; 回滚

考点:事务的ACID特性(原子性、一致性、隔离性、持久性)

三、考试高频题型
题型1:多表联查
例题:查学生姓名及其选修的课程名

SELECT s.姓名, c.课程名
FROM 学生表 s
INNER JOIN 选课表 c ON s.学号 = c.学号;

关键:JOIN类型(INNER/LEFT/RIGHT)

题型2:分组统计
例题:统计每门课的平均分,只显示平均分>80的课程

SELECT 课程, AVG(成绩) AS 平均分 
FROM 成绩表 
GROUP BY 课程 
HAVING AVG(成绩) > 80;

注意:WHERE过滤行,HAVING过滤分组后的结果

题型3:子查询
例题:查成绩高于平均分的学生

SELECT 姓名, 成绩 
FROM 学生表 
WHERE 成绩 > (SELECT AVG(成绩) FROM 学生表);

考点:子查询在WHERE或FROM中的使用

四、必背函数与语法

聚合函数

COUNT():计数(COUNT(*)统计所有行)
SUM():求和、AVG():平均值、MAX()/MIN():极值

日期函数

YEAR(日期):提取年份
DATEDIFF(结束日期, 开始日期):计算天数差

字符串函数

CONCAT():拼接字符串
SUBSTRING():截取子串

五、考试避坑指南

主键约束:唯一且非空,常用于标识记录(如学号)。
外键约束:确保关联数据存在(如班级ID必须存在于班级表)。
索引优化:在WHERE或JOIN条件列建索引,加速查询
事务回滚:批量操作时用BEGIN...COMMIT,出错时ROLLBACK保数据安全。

六、快速练习建议

基础题:用SELECT查年龄>20的学生姓名。
联表题:查学生及其所在班级名称(需两表关联)。
统计题:计算每门课的最高分、最低分、平均分。
事务题:模拟转账操作(A扣100,B加100)。

如果上述你还是无法理解并练习后脑子一片空白的话,有一个方法,相信你的记性不错。

Mysql 基础语法
库 表 列 字段
创建数据库
Creat database company
创建表

create table persons(
id int primary key,
name varchar(10),
age int,
height float,
hobby char(10),
address varchar(12)
)default charset=utf8;

插入一条数据
insert into persons values(1,'哈喽',18,181.2,'跑步,瑜伽','上海')
插入多行数据
insert into persons values(1,'哈喽',18,181.2,'跑步,瑜伽','上海'),(2,'张三',25,180.2,'篮球','南京')
查询表里所有内容
Select * from persons;
修改员工信息
update persons set address='合肥',hobby='象棋' where id =1;
删除个人信息
delete from persons where id=3 and address='南京';

其他的只需要类比替换关键词即可。

此方法只适用于紧急速记应付临时考试,切勿面试时照本宣科,完全来不及甚至答非所问被面试淘汰。

http://www.hskmm.com/?act=detail&tid=19987

相关文章:

  • 网络安全风险评估指南:CISO如何通过风险评估提升安全防护
  • 藏好自己,做好清理——悼念沈劫匪先生有感
  • macbook m1 安装telnet
  • 低空经济:从政策热词到生活日常——中国低空经济全景解析与杭深模式对比 - 教程
  • 指数函数的特征
  • 生猪
  • git merge driver简介
  • 在 Linux 中安装和配置 NTP 服务器和 NTP 客户端
  • Android15音频进阶之车载多音区调整解析(一百三十七)
  • 微信二次开发社群机器人接口
  • FireDAC(Master-Detail 功能)主从表查询
  • 极氪汽车火山引擎:AI数据专家“上岗”,注入“分钟级”数据洞察力
  • C++面试宝典 01 new/delete/malloc/free关系
  • Ansible + Docker 部署 MinIO 集群
  • ​​万用表与电流探头测量电流信号的技术对比分析​​
  • flink运行时架构 - --
  • k8s命令
  • wifi亮灭屏机制--系统修改
  • 自动遍历测试利器:开源工具AppCrawler 配置全解析
  • 得帆云ETL全新版本升级驱动数据高效流转
  • Windows 的图标没有及时更新
  • 拒绝 “能源糊涂账”!MyEMS 如何让中小企业能耗管理 “秒上手”?
  • 【海内外多个支持单位|学生优惠|高录用快见刊】第五届管理科学和软件工程国际学术会议(ICMSSE 2025)
  • 电天下dq123.com搜索功能全新升级,AI加持,焕新垂直行业搜索体验!
  • 中小微企业能源管理 “入门神器”:MyEMS 开源系统如何低成本实现专业级管控?
  • jinja2和角色管理和集合
  • 挖同行墙脚!有稳定供应商的客户怎么下手构建?
  • 视频融合平台EasyCVR在智慧工地中的应用:构建安全、智能、高效的“云上工地”
  • 开源技术崛起:中国如何构建数字经济时代的创新基础设施
  • 250928