Oracle(1)

Oracle

Oracle(1)
Oracle(1)
Oracle(1)
Oracle(1)
Oracle(1)
重新用该用户登录
Oracle(1)

1 数据类型

字符型
(1) CHAR:固定长度的字符类型,最多存储 2000 个字节
(2) VARCHAR2:可变长度的字符类型,最多存储 4000 个字节 ==> 对应的是mysql的varchar
(3) LONG:大文本类型。 最大可以存储 2 个 G ==> 对应的是mysql的text

数值型
(1)NUMBER:数值类型,代表一切数字
(2) NUMBER(5):表示数字最多5位,最大可以存的数为 99999
(3) NUMBER(5,2):表示总长度5位,最大可以存的数为 999.99

日期型
(1) DATE:日期时间型,精确到秒
(2) TIMESTAMP:精确到秒的小数点后 9 位

二进制型
(1) CLOB:存储字符,最大可以存 4 个 G
(2) BLOB:存储图像、声音、 视频等二进制数据,最多可以存 4 个 G

2 代码演示

Oracle(1)
新增数据后,要提交,commit(F10)
修改表
添加字段
Oracle(1)
修改字段类型
Oracle(1)
修改字段名称
Oracle(1)
删除字段
Oracle(1)
删除表:drop table 表名称

使用工具进行表的增删改

3 关于主键 ID 的自增

在 oracle 中主键自增需要用到序列
Oracle(1)
Oracle(1)
Oracle(1)
如果存在id为1的数据,会报错,违反唯一约束,再次执行就可以了,提交,然后就可以看到新增数据新增在原来的数据之后。
Oracle(1)

4 基于伪列的查询

在 Oracle 的表的使用过程中,实际表中还有一些附加的列,称为伪列。伪列就像表中的列一样,但是在表中并不存储。伪列只能查询,不能进行增删改操作。

接下来学习两个伪列: ROWID 和 ROWNUM。
ROWID
表中的每一行在数据文件中都有一个物理地址, ROWID 伪列返回的就是该行的物理地址。使用 ROWID 可以快速的定位表中的某一行。 ROWID 值可以唯一的标识表中的一行。由于 ROWID 返回的是该行的物理地址,因此使用 ROWID 可以显示行是如何存储的。

ROWNUM
在查询的结果集中,ROWNUM 为结果集中每一行标识一个行号,第一行返回 1,第二行返回 2,以此类推。通过 ROWNUM 伪列可以限制查询结果集中返回的行数。

Oracle(1)
Oracle(1)
结果发现没有显示任何记录。这是因为 rownum 是在查询语句扫描每条记录时产生的,所以不能使用大于符号,只能使用“小于”或“小于等于”,只用“等于”也不行。
所以我们需要采用子查询来完成,先让 rownum 全部生成,再进行筛选
Oracle(1)
Oracle(1)
rownum顺序混乱,会导致前面的序号也是乱的。怎么解决?很简单,我们只要再嵌套一层查询(一共三层),让结果先排序,然后对排序后的结果再产生 R,这样就不会乱了
Oracle(1)