sql语句
SQL语句分为四类:
- DQL(查询语言):select
- DML(操纵语言):insert/update/delete
- DDL(定义语言):create/alter/drop table/view/index
用于创建数据库中各种对象,表、视图、索引、同义词、聚簇等
所需权限
- 需要排它权限:
create/alter/drop/purge
rename
truncate - 不需要排它权限
grant/revoke:授予及收回权限、角色
analyse:分析索引、表、簇信息
comment:为表、视图、字段等创建注释
- 需要排它权限:
- DCL(控制语言):rollback/commit
用于授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的事件和效果
insert 语句
- insert into tableA(column1, column2) values(‘value1’, ‘value2’)
- insert into tableA(column1, column2) select column3, column4 from tableB
- select * into tableA from tableB where tableb.id = 1
update 语句
- update … from …
update audio_archive set employee=b.employee from audio_terminal b where audio_archive.term_id=b.id and employee != b.employee - truncate tableA
delete 语句(postgre使用)
- delete from tableA using tableB where tableA.id = tableB.id
limit语句
- select * from tableA limit 5 offset 10 显示结果从第11行开始,显示5行
create table 语句
- CREATE TABLE “tasks_bulletin” (
“digest” varchar(40) NOT NULL,
“filename” varchar(40) NOT NULL,
“filepath” varchar(30),
“createtime” DATETIME,
“deleted” integer,
“download” integer
); - alter table core_audiofile add column operator varchar(40);
- alter table core_audiofile drop column operator;
- drop table core_audiofile
- alter table student rename to teacher
视图
- create view v_test as select * from tableA
- drop view v_test
存储过程
存储过程简单来说,就是为以后的使用而保存的一条或多条sql语句的集合。可将其视为批文件,虽然他们的作用并不限于批处理。
- 好处 简单、安全、高效
事务处理
定义
事务处理用来维护数据库的完整性,它保证成批的sql语句要么完全执行,要么全不执行。
1. 事务transaction:指一组sql语句
2. 回退rollback:撤销指定sql语句的过程
3. 提交commit:将未存储的sql语句结果写入数据库
4. 保留点savepoint:事务处理中设置的临时占位符,可以对它发布回退(与回退整个事务处理不同)
- 事务处理可用来管理insert, update, delete语句,不能用于create和drop语句
控制事务处理
处理事务处理的关键是将sql语句组分解为逻辑块,并明确规定数据应该回退,合适不应该回退。
- 声明(postgre)
BEGIN
...
- 使用rollback
delete from orders;
rollback;
在此例子中,执行delete操作,然后使用rollback撤销。由此可说明,在事务处理块中,delete,update,insert操作并不是最终的结果。
- 使用commit(SQL Server)
BEGIN TRANSACTION
DELETE OrderItems WHERE order_num=12345
DELETE Orders WHERE order_num = 12345
COMMIT TRANSACTION
一般的sql语句都是隐式提交,但在事务处理中提交不会隐式进行。
在这个例子中,只有两个delete语句都执行,才会提交。
- 使用保留点
复杂的事务处理需要设置多个保留点,这样回退的时候可方便回退。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术