数据的定义、操纵与控制经典教程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.嵌套方式
UPDATE语句的另外一种用法: UPDATE 表名1 SET(字段名1,字段名2,…)= (SELECT 字段名1,字段名2,… FROM 表名2 WHERE 条件); 注意:这个格式中“SET(字段名1,字段名2,…)”子句与 “SELECT 字段名1,字段名2”子句的字段个数和类型一定 要相同。 【例】将manager表中编号为1000的雇员名字和工资修改成 为EMP表的编号为7788的雇员的名字和工资。 SQL>UPDATE manager SET (ename,sal) = (SELECT ename,sal FROM EMP WHERE empno = 7788) WHERE empno = 1000;
3.删除主键 ALTER TABLE 表名 DROP PRIMARY KEY (列 名); 【例】把EMP 表的主键删除。 SQL>ALTER TABLE EMP DROP PRIMARY KEY (ENAME_ID); 4.改变表的名称 语句格式为: RENAME 旧表名 TO 新表名; 【例】把表EMP修改为EMP1。 SQL>RENAME EMP TO EMP1;
4.2.3 删除语句DELETE
DELETE语句用来从表中删除一行或多行数据。 格式如下: DELETE [FROM]表名 WHERE 条件; 说明: (1)此语句删除符合条件的数据。 (2)FROM 是可选项。 (3)该命令包含两个语句: 关键字DELETE FROM后是表名。 WHERE后是删除条件。
4.2.1 插入语句INSERT INSERT语句是在指定的表中增加数据(或插 入一条记录)。 格式如下: INSERT INTO table_name (column1,column2,…) values ( value1,value2,…)
ห้องสมุดไป่ตู้
【例4-13】根据已经存在的表EMP创建新表 manager。创建的同时将EMP表中有职务的雇员复 制到其中。 (1)建立表结构。 SQL>CREATE TABLE manager SQL>SELECT empid,name,salary FROM EMP WHERE title != null; 建立了一个新表manager(empid,name,salary),字 段名与EMP相同。如果建立的新表与旧表EMP的 字段不相同,则可以这样写: SQL>CREATE TABLE manager(empno,ename,sal) SQL>SELECT empid,name,salary FROM EMP WHERE title != null; 建立了一个新表manager(empno,ename,sal)。
在事务提交之后,有下列情况: 1)对于与回滚段相关的内部事务表记录提交事务,并赋给一个相应的唯一系统修改号 (SCN),记录在表中。 2)在SGA的日志缓冲区中日志项由LGWR进程写入到在线日志文件,这是构成提交事务 的原子事务。 3)在行上和表上的封锁被释放。 4)该事务标志为完成。 事务提交有三种方式:显式提交、隐式提交、自动提交。
4.1.1 创建语句CREATE 与数据类型
CREATE语句是用于创建数据库对象的语句,如:表、索引、视图、 同义词、过程、函数、数据库链接等。 创建数据库表的语句格式如下: CREATE TABLE 表名 (列名1 列约束,列名2 列约束,…,列名n 列约束) 其中“列约束”包括: (1)datatype:数据的类型。 (2)DEFAULT expr:列的缺省值expr。 (3)column_constraint:列的约束。 列的约束包括:非空约束NOT NULL、唯一性约束UNIQUE。 NOT NULL表示是否允许数据有空(尚未有数据填入),如果不写,默 认为可以为空。 (4)table_constraint:表的约束。包括表的主键等。 (5)primary key:表明本列(或字段)是本表的主键。
4.1.2
删除语句DROP
删除语句的格式如下:
DROP
table_name:用于从数据库中 删除表table_name。 DROP index_name:用于从数据库中 删除索引index_name。 【例】从数据库中删除表EMP。
SQL>DROP
TABLE EMP;
4.3.3 事务回滚ROLLBACK
事务回滚的含义是撤消未提交事务中的SQL语句所作的对数据的修改。Oracle允 许撤消未提交的整个事务,也允许撤消部分事务。换句话说,回滚消除上一个 COMMIT命令所做的全部修改,使得数据库的内容恢复到上一个COMMIT执行 后的状态。 在回滚整个事务(没有引用保留点Savepoint,在后面介绍)时,有下列情况: (1)在事务中所有SQL语句作的全部修改,可以利用相应的回滚段被撤消。 (2)所有数据的事务封锁被释放。 (3)事务结束。 当事务回滚到一保留点(具有Savepoint)时,有下列情况: (1)仅在该保留点之后执行的语句被撤消。 (2)该指定的保留点仍然被保留,该保留点之后所建立的保留点被删除。 (3)自该保留点之后所获取的全部表封锁和行封锁被释放,但指定的保留点以 前所获取的全部数据封锁继续保持。 (4)该事务仍可继续。
5.修改表里字段的定义描述 语句格式为: ALTER TABLE 表名MODIFY 字段描述;
6.给表里的字段加上唯一性约束条件 语句格式为: ALTER TABLE 表名 ADD CONSTRAINT cons_name UNIQUE(列名); 其中cons_name为约束名称,给约束起个名称。 【例】对表ABC 的字段A1增加唯一性约束。 SQL>ALTER TABLE ABC ADD CONSTRAINT ONLY UNIQUE(A1);
2.增加(或设置)一个主键 ALTER TABLE 表名ADD PRIMARY KEY (列名[,列名…]); 或者 ALTER TABLE 表名 ADD CONSTRAINT 约 束名 PRIMARY KEY (列名[,列名…]); 说明: (1)两个语句都是把表的某一个或几个列设 为主键。 (2)前者的约束名系统给定为SYS_C00****, 后者的约束名是用户定义的。
1.显式提交 语法: COMMIT; 也就是说直接使用COMMIT命令进行的提交就是显式提交。 2.隐式提交 隐式提交不用直接使用COMMIT命令提交,这个操作已经包 含在其他命令里面,这些命令是:DDL 类语句 (CREATE,DROP,ALTER,TRUNCATE,GRANT,REVOKE)。 换句话说,执行了这些命令后就不用再执行COMMIT 命令 进行提交了。而DML类语句不是隐式提交的。 3.自动提交 为了使数据库的修改永久化,在SQL*Plus 中设置 AUTOCOMMIT为允许状态: SQL >SET AUTOCOMMIT ON;
提交一事务,即将在事务中由SQL语句所执行的改变永久化。在提 交前,Oracle已有下列情况: (1)在SGA的回滚段缓冲区已生成回滚段记录,回滚信息包含所有修 改值的旧值。 (2)在SGA的日志缓冲区已生成日志项。这些改变在事务提交前可进 入磁盘。 (3)对SGA的数据库缓冲区已作修改,这些修改在事务真正提交之前 可进入磁盘。
回滚命令的语法格式是: ROLLBACK;
4.5 本章小结
本章重点介绍了数据操纵语言DML(即
对数据库记录的增、删、改)—— INSERT、DELETE、UPDATE,数据 定义语言DDL——CREATE、DROP、 ALTER、TRUNCATE以及事务控制语 言——COMMIT、ROLLBACK。SQL语 言是Oracle数据库的编程基础,本章是 SQL 语言的重点。
(2)从EMP表复制数据到manager表。从 EMP表中把无职务的雇员插入到manager 表中。 SQL>INSERT INTO manager SQL>SELECT empno,ename,sal FROM EMP WHERE title =null;
4.2.2 更新语句UPDATE
第4章 数据的定义、操纵与控制 来自中国范文网www.cdsc.net.cn
学习要点
数据定义语言DDL 数据操纵语言DML 事务与事务控制语言DCL
本章主要内容
数据定义语言DDL 数据操纵语言DML 事务与事务控制语言DCL
4.1 数据定义语言
数据定义语言DDL是一组SQL命令,用于 创建和定义数据库对象,并且将对这些对 象的定义保存在数据字典中。 数据定义语言使用户能完成下列任务:创 建数据库对象;删除数据库对象;更改数 据库对象;为数据库对象授权;回收已授 予数据库对象的权限。
4.1.3 修改语句ALTER ALTER语句是对数据库表的结构进行修改。原来 用CREATE 语句创建的表,现在感到有些不妥, 需要修改就可以使用ALTER 语句修改表的定义。 1.在表的后面增加一个字段 语句格式为: ALTER TABLE 表名 ADD 列名 类型; 或者 ALTER TABLE表名 ADD (列名 类型); 如果增加多个字段,可以: ALTER TABLE 表名 ADD (列名 类型,列名 类 型,…);
UPDATE命令用于修改表中的数据。UPDATE命令有两种格 式。 1.简单格式 SQL>UPDATE table_name SET column1='xxx' WHERE conditoins; 说明: (1)更改某个列,设定其值为'xxx'。 (2)conditions是所要符合的条件,若没有WHERE则整个 table的那个列全部会被更改。 【例】将员工中出生日期为1989年09月01日的员工的工资 翻一倍。 SQL>UPDATE EMP SET salary =2*salary WHERE birth =TO_DATE('1989-09-01');
数据删除语句TRUNCATE TRUNCATE TABLE 命令只删除表的 记录,而不删除表的结构。 格式如下: TRUNCATE TABLE table_name; 【例】删除表EMP的所有记录。 SQL>TRUNCATE TABLE EMP;
4.1.4
4.2 数据操纵语言 数据操纵语言DML(Data Manipulation Language)是SQL的一个子集,主要包括 增加数据(INSERT)、更改数据 (UPDATE)、删除数据(DELETE)等模 式,以下分别介绍它们的语法。 所有的DML语句不是自动提交的,所以 在DML语句之后必须发出一个提交命令才 能提交(如果在SQL PLUS环境下,可以把 SQL PLUS设置为自动提交)。
4.3 事务与事务控制语言
事务 一个事务可以被定义为和单个的逻 辑单位一起执行的一串操作,由一 个或多个SQL语句组成。一个事务 是一个原子单位,构成事务的全部 SQL语句的结果可被全部提交或者 全部回滚。一个事务由第一个可执 行SQL语句开始,以提交或回滚结 束。
4.3.1
4.3.2 事务提交COMMIT