sql基础

SQL语言基础

SQLstructuredquerylanguage,结构化查询语言),是一种数据库标准语言,其特点如下:

1.所有的数据都存储在关系表中。表由行和列组成,每一行包含一组数据,称为记录;列叫做字段,或者属性。

2.为了防止降低oracle读取记录的效率,这种语言被设计称为永远只允许操作者按查询条件来读取记录,而不是按照某种特定的顺序来取出记录。

3.它不的完整的计算机语言

SQL语言的类型

1.数据定义语言(datadefinitionlanguage,DDL

这是一组sql命令,用于创建和定义数据库对象,并将这些对象的定义保存在数据字典中,数据定义语言完成的任务有:

·创建数据库对象

·删除数据库对象

·更改数据库对象

·为数据库对象授权

·回收已授权给数据库对象的权限

当用户执行ddl语句时,在每一条ddl语句执行之后,oracle都将提交当前的事物,这叫隐式提交,下面是部分ddl语句

DDL语句功能

alterprocedure修改存储过程

altertable修改表(增加列,重定义表列,更改存储分配)

anylyze收集数据库对象的性能统计值并送入基于代价的优化器

altertableadd在已有的表上添加约束

constraint

createtable创建表

createindex建立索引

dropindex删除索引

droptable删除表

truncate删除表中所有的行

grant将权限或者角色授予用户或其他角色

revoke从用户或数据库角色回收权限

ddl语句是自动提交的,执行完ddl语句后不能回滚

2.数据操纵语言(datamanipulationlanguagedml

dml是用户用来处理数据库中的数据内容的sql命令,下面是部分dml语句

DML语句功能

insert向表中添加数据

delete从表中删除数据

update更新表中的数据

select从表或者视图中检索数据

commit把事物所做的更改永久化(写入磁盘)

rollback作废上次提交以来的所有更改

提交和回滚事物处理

事物:多个sql语句被当做单个工作单元来处理的机制。事物时最小的逻辑工作单元。事物具有下面的特点:

·一致性:同时进行查询或者更新不会发生冲突,其他用户不会看到发生了变化但尚未提交的数据

·可恢复性:当系统故障发生时,数据库会自动完全恢复为完成的事物

事物的提交用commit命令,回滚用rollback命令。如果在一个事物中,包含了ddl语句,那么在此ddl语句前后都要隐式的执行commit命令。

Rollback命令可以回滚事物,但是首先的有保存点:

savapointsname;

rollbacksname;

提交事物分3

·现实提交

Commit

·隐式提交

一些sql命令的执行就是隐式提交,这些语句为:

alter,audit,commit,connect,create,disconnect,drop,exit,grant,noaudit,quit,revoke,rename

·自动提交

若把autocommit选项设置为on,则在插入、修改、删除语句执行后,系统将自动进行提交,格式:

setautocommiton;开启自动提交

setautocommitoff;关闭自动提价

事物处理

事物是很多关系紧密的一系列sql命令的有机结合,共同组成一个工作单元;事物是最小的逻辑工作单元,oracle将以逻辑工作单元为单位保证数据的一致性,也就是将数据处理命令批量的提交给oracle数据库处理。

读写事物处理

默认状态下,当oracle为一个会话开始一个新的事物时,该事物是可读写的。通常,一个可读写的事物可以包含任何类型的sql语句,包括dml语句,如查询,更新,删除。也可以使用sql命令来现实声明一个事物为可读写事物,如下

settransactionreadwrite;

只读事物处理

只读事物只含有查询,即只读操作不以任何形式修改数据库。通过下面的命令来声明一个事物是只读的:

settransactionreadonly;

此时,oracle为该事物保证了事物级别上的读一致,这意味着,即使其他事物对数据库进行修改并提交了工作,该事务的所有查询结果所反映的数据库数据与事物开始时保持一致。

<!--EndFragment-->

你可能感兴趣的:(sql)