Oracle数据库基础(一)

看完这篇文章后,你能够学到

Oracle中的伪列

SQL语言部分简介

Oracle中的伪列

ROWID

数据库中的每行都有一个行地址,ROWID伪列返回该地址可以用rowid的值来定位表中的某一行,rowid可以唯一的标识数据库中的行。

rowid伪列有如下的重要用途:

能够以最快的方式访问表中的一行。

能显示表中的一行是如何存储的。

可以作为表中行的唯一标识

eg:SQL>select rowid,eName FROM SCOTT.emp where eName='SMITH';结果: ROWID ENAME------------------ ----------AAAR3sAAEAAAACXAAA SMITH

ROWNUM

一个查询返回的每一行,ROWNUM伪列返回一个数值代表行的次序,查询到第一行rownum的值为1,查询到第二行rownum的值为2,以此类推下去,有第14行数据rownum的值就为14。

eg:SQL>select rownum,eName FROM SCOTT.emp;结果:ROWNUM ENAME 1 SMITH 2 ALLEN 3 WARD 4 JONES 5 MARTIN 6 BLAKE 7 CLARK 8 SCOTT 9 KING 10 TURNER 11 ADAMS 12 JAMES 13 FORD 14 MILLER

事例:使用rownum从emp表中提取5条记录并显示序号

eg:SQL>select ename,rownum from scott.emp where rownum

SQL语言简介

数据定义语言(DDL)

CREATE(创建)、ALTER(更改)、TRUNCATE(截断)和DROP(删除) 命令。

语法:create table [schema.]table(column datatype [,colim datatype[,...]]);语法说明:1.schema 表示对象的所有者,也就Oracle数据库中模式的名称,也就是MySQL数据库中的数据库名称。如果能够用户在自己的模式中创建新的表,此处可以省略。2.table 表的名称3.column 列的名称4.datatype 表示该列的数据类型以及宽度注:创建表时以上都是必须指定的。在Oracle中的表名(还有列名、用户名和其他对象名)不区分大小写,系统会自动转换成大写。在Oracle中也有VARCHAR数据类型,但是不建议使用,建议使用VARCHAR2,该数据类型是Oracle的标准数据类型。命名规则:1.表名首字符应该为字母2.不能使用Oracle保留字来为表命名3.表名的最大程度为30字符4.同一个用户模式下表名不能重复5.可以使用下划线、数字和字母,但是不能使用空格还有单引号。eg:SQL>CREATE TABLE stuInfo /* -创建学员信息表-*/ ( stuName VARCHAR2(20) NOT NULL, --学员姓名,非空(必填) stuNo CHAR(6) NOT NULL, --学号,非空(必填) stuAge NUMBER(3,0) NOT NULL, --年龄,非空(必填) stuID NUMERIC(18,0), --身份证号,代表18位数字,小数位数为0 stuSeat NUMERIC(2,0) --座位号 );结果:表已创建。补充一:更改stuName列的定义,使此列能容纳25个字符eg:SQL> ALTER TABLE stuInfo MODIFY (stuName VARCHAR2 (25));结果:表已更改。补充二:向stuInfo 表添加stuTel_no 和stuAddress 两个列eg:SQL>ALTER TABLE stuInfo ADD (stuTel_no VARCHAR2 (12),stuAddress VARCHAR2(20));结果:表已更改。补充三:从stuInfo表中删除列eg:SQL> ALTER TABLE stuInfo DROP COLUMN stuTel_no;--删除stuTel_no列SQL> ALTER TABLE stuInfo DROP (stuTel_no,stuSeat); --删除stuTel_no和stuSeat列结果:表已更改。补充四: 重置stuInfo表eg:SQL>TRUNCATE TABLE stuInfo;结果:表已截断。补充五:删除stuInfo表eg:SQL>DROP TABLE stuInfo;结果:表已删除。

数据操纵语言(DML)

COMMIT 提交事务,即把事务中对数据库的修改进行永久保存

ROLLBACK 回滚事务,就是取消对数据库所做的任何修改

SAVEPOINT 在事务中创建存储点

ROLLBACK TO

: 将事务回滚到存储点

那么何时会开启事务呢?在Oracle中,事务一般在上一次事务结束以后,数据"第一次"被修改时自动开启。

那么又是在啥时候结束的呢?分为两种状况

数据被提交了

发出COMMIT命令

执行DDL或者DCL语句后,当前事务自动被提交

与Oracle分离,比如退出了PL/SQL Developer,Navicat等

数据被撤销

发出ROLLBACK命令

服务器进程异常结束

DBA停止会话

事务控制语句应用举例select * FROM dept;--执行步骤一:创建dept 表CREATE TABLE DEPT( DEPTNO NUMBER(2) PRIMARY KEY, --部门编号 DNAME VARCHAR2(14) , --部门名称 LOC VARCHAR2(13) --地址);

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181016G1J7IN00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券