sql笔记
where子句要放在order by子句之前
通配符通过LIKE,单字符匹配通过_,多字符匹配通过%,eg:select * from T_Employee where Fname LIKE '_erry'; select * from T_Employee where Fname LIKE 'DEV%';
select * from T_Employee where Fname is NULL;对于NULL不能使用=等其他来筛选,只能通过is或is not
select * from T_Emplyee where Fage between 20 and 30;
GROUP BY子句必须放在WHERE子句后面
WHERE子句中不能出现聚合函数,这种情况可用HAVING,eg:HAVING count(*)>2
WHERE是在分组前原表的数据过滤
HAVING是在分组后新建表的数据过滤
HAVING跟在GROUP BY后面
UNION会删除重复行,UNION ALL不会
CASE
WHEN a>b then a
WHEN b>a then b
ELSE 0
END
CASE可如上所示是比较时,后面不跟变量
DELETE只能删除行,不能删除列,因此DELETE的语句为DELETE FROM table WHERE *
事务在数据库中执行有两种模式。第一种为自动提交模式:每条sql语句就是一个事务;第二种为直到用户执行COMMIT或者ROLLBACK为止算作一个事务。通常的数据库都可以选择其中任意一种模式。默认使用自动提交模式的数据库有SQL Server,PostgreSQL和MySQL等。自动提交模式下,每条SQL语句都被括在事务的开始语句和结束语句中。自动提交模式中,需要特别注意DELETE语句,因为在该模式下,执行了DELETE操作,即使再回滚也无济于事了。
子查询的分类:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?