sql语句

SQL语句分为四类:

  • DQL(查询语言):select
  • DML(操纵语言):insert/update/delete
  • DDL(定义语言):create/alter/drop table/view/index
    用于创建数据库中各种对象,表、视图、索引、同义词、聚簇等
    所需权限
    1. 需要排它权限:
      create/alter/drop/purge
      rename
      truncate
    2. 不需要排它权限
      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语句都执行,才会提交。

  • 使用保留点
    复杂的事务处理需要设置多个保留点,这样回退的时候可方便回退。
posted @   影随风动91  阅读(14)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示