来源:天极网
SQL言语共分为四除夜类:数据盘问言语DQL,数据把持言语DML, 数据界说言语DDL,数据控制言语DCL。此顶用于界说数据的组织,好比 创建、改削大概删除数据库;DCL用于界说数据库用户的权限;在这篇文章中我将详尽呈报这两种言语在Oracle中的行使办法。
DML言语
DML是SQL的一个子集,主要用于改削数据,下表列出了ORACLE支持的DML语句。
语句 用处
INSERT 向表中添加行
UPDATE 更新存储在表中的数据
DELETE 删除行
SELECT FOR UPDATE 休止其他用户会晤DML语句正在处理处分的行。
LOCK TABLE 休止其他用户在表中行使DML语句
拔出数据
INSERT语句屡屡用于向表中拔出行,行中可以有不凡数据字段,大概可以用子盘问从已存在的数据中设立设置配备陈设新行。
列目次是可选的,缺省的列的目次是扫数的列名,包括comlumn_id,comlumn_id可以在数据字典视图ALL_TAB_COLUMNS,USER_TAB_COLUMNS,大概DBA_TAB_COLUMNS中找到。
拔出行的数据的数量和数据规范必需和列的数量和数据规范相婚配。不相符列界说的数据规范将对拔出值实验隐式数据转换。NULL字符串将一个NULL值拔出适当的列中。枢纽字NULL屡屡用于走漏暗示将某列界说为NULL值。
上面的两个例子是等价的。
INSERT INTO customers(cust_id,state,post_code)
VALUE('Ariel',NULL,'94501');
或INSERT INTO customers(cust_id,state,post_code)
VALUE('Ariel',,'94501');
更新数据
UPDATE饬令用于改削表中的数据。UPDATE order_rollup
SET(qty,price)=(SELECT SUM(qty),SUM(price) FROM order_lines WHERE customer_id='KOHL'
WHERE cust_id='KOHL'
AND order_period=TO_DATE('01-Oct-2000')
删除数据
DELETE语句用来从表中删除一行或多行数据,该饬令包括两个语句:
1、枢纽字DELETE FROM后跟准备从中删除数据的表名。
2、WHERE后跟删除前提DELETE FROM po_lines
WHERE ship_to_state IN ('TX','NY','IL')
AND order_date
清空表
假设你想删除表中扫数数据,清空表,可以思索行使DDL言语的TRUNCATE语句。TRUNCATE就像没有WHERE子句的DELETE饬令一样。TRUNCATE将删除表中扫数行。TRUNCATE不是DML语句是DDL语句,他和DELETE右分例如的特点。TRUNCATE TABLE (schema)table DROP(REUSE) STORAGE
STORAGE子串是可选的,缺省是DROP STORAGE。当行使DROP STORAGE时将收缩表和表索引,将表收缩到最小范围,并重新设置NEXT参数。REUSE STORAGE不会收缩表大概调停NEXT参数。
TRUNCATE和DELETE有以下几点区别
1、TRUNCATE在各种表上无论是除夜的照旧小的都异常快。假设有ROLLBACK饬令DELETE将被撤销,而TRUNCATE则不会被撤销。
2、TRUNCATE是一个DDL言语,向其他扫数的DDL言语一样,他将被隐式提交,不克不及对TRUNCATE行使ROLLBACK饬令。
3、TRUNCATE将重新设置高水平线和扫数的索引。在对整个表和索引举办完全赏识时,经过TRUNCATE把持后的表比DELETE把持后的表要快得多。
4、TRUNCATE不克不及触发任何DELETE触发器。
5、不克不及授予任何人清空别人的表的权限。
6、当表被清空后表和表的索引讲重新设置成初始除夜小,而delete则不克不及。
7、不克不及清空父表。
SELECT FOR UPDATE
select for update语句用于锁定行,制止其他用户在该行上改削数据。当该行被锁定后其他用户可以用SELECT语句盘问该行的数据,但不克不及改削或锁定该行。
锁定表
LOCK语句屡屡用于锁定整个表。当表被锁定后,除夜大都DML言语不克不及在该表上行使。LOCK语法如下:LOCK schema table IN lock_mode
此中lock_mode有两个选项:
share 共享体式技俩
exclusive 唯一体式技俩
例:LOCK TABLE intentory IN EXCLUSIVE MODE
去世锁
当两个事情都被锁定,并且互相都在期待另一个被解锁,这种状况称为去世锁。
当出现去世锁时,ORACLE将检测去世锁前提,并前往一个异常。
版权声明:
原创作品,容许转载,转载时请务必以超链接编制标明文章 原始出处 、作者信息和本声明。否则将清查法令责任。