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语句都执行,才会提交。

  • 使用保留点
    复杂的事务处理需要设置多个保留点,这样回退的时候可方便回退。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值