共计 2335 个字符,预计需要花费 6 分钟才能阅读完成。
本篇内容主要讲解“oracle 表的管理方式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“oracle 表的管理方式”吧!
oracle 支持的数据类型
字符类
char 定长 最大 2000 个字符。
Oracle 笔记
5
例子:char(10) ‘小韩’前四个字符放‘小韩’,后添 6 个空格补全 如‘小韩 ’
varchar2(20) 变长 最大 4000 个字符。
例子:varchar2(10)‘小韩’oracle 分配四个字符。这样可以节省空间。
clob(character large object) 字符型大对象 最大 4G
char 查询的速度极快浪费空间,查询比较多的数据用。
varchar 节省空间
数字型
number 范围 -10 的 38 次方 到 10 的 38 次方
可以表示整数,也可以表示小数
number(5,2)
表示一位小数有 5 位有效数,2 位小数
范围:-999.99 到 999.99
number(5)
表示一个 5 位整数
范围 99999 到 -99999
日期类型
date 包含年月日和时分秒 oracle 默认格式 1-1 月 -1999
timestamp 这是 oracle9i 对 date 数据类型的扩展。可以精确到毫秒。
图片
blob 二进制数据 可以存放图片 / 声音 4G 一般来讲,在真实项目中是不会把图片和声音真的往数据库里存放,一般存放
图片、视频的路径,如果安全需要比较高的话,则放入数据库。
怎样创建表
建表
– 学生表
create table student ( — 表名
xh number(4), – 学号
xm varchar2(20), – 姓名
sex char(2), – 性别
birthday date, – 出生日期
sal number(7,2) – 奖学金
);
– 班级表
CREATE TABLE class(
classId NUMBER(2),
cName VARCHAR2(40)
);
修改表
添加一个字段
SQL ALTER TABLE student add (classId NUMBER(2));
修改一个字段的长度
SQL ALTER TABLE student MODIFY (xm VARCHAR2(30));
修改字段的类型 / 或是名字(不能有数据)不建议做
SQL ALTER TABLE student modify (xm CHAR(30));
删除一个字段 不建议做 (删了之后,顺序就变了。加就没问题,应为是加在后面)
SQL ALTER TABLE student DROP COLUMN sal;
Oracle 笔记
6
修改表的名字 很少有这种需求
SQL RENAME student TO stu;
删除表
SQL DROP TABLE student;
添加数据
所有字段都插入数据
INSERT INTO student VALUES (A001 , 张三 , 男 , 01-5 月 -05 , 10);
oracle 中默认的日期格式‘dd-mon-yy’dd 日子(天)mon 月份 yy 2 位的年 ‘09-6 月 -99’1999 年 6 月 9 日
修改日期的默认格式(临时修改,数据库重启后仍为默认;如要修改需要修改注册表)
ALTER SESSION SET NLS_DATE_FORMAT = yyyy-mm-dd
修改后,可以用我们熟悉的格式添加日期类型:
INSERT INTO student VALUES (A002 , MIKE , 男 , 1905-05-06 , 10);
插入部分字段
INSERT INTO student(xh, xm, sex) VALUES (A003 , JOHN , 女
插入空值
INSERT INTO student(xh, xm, sex, birthday) VALUES (A004 , MARTIN , 男 , null);
问题来了,如果你要查询 student 表里 birthday 为 null 的记录,怎么写 sql 呢?
错误写法:select * from student where birthday = null;
正确写法:select * from student where birthday is null;
如果要查询 birthday 不为 null, 则应该这样写:
select * from student where birthday is not null;
修改数据
修改一个字段
UPDATE student SET sex = 女 WHERE xh = A001
修改多个字段
UPDATE student SET sex = 男 , birthday = 1984-04-01 WHERE xh = A001
修改含有 null 值的数据
不要用 = null 而是用 is null;
SELECT * FROM student WHERE birthday IS null;
删除数据
DELETE FROM student;
删除所有记录,表结构还在,写日志,可以恢复的,速度慢。
Delete 的数据可以恢复。
savepoint a; – 创建保存点
DELETE FROM student;
rollback to a; – 恢复到保存点
一个有经验的 DBA,在确保完成无误的情况下要定期创建还原点。
DROP TABLE student; – 删除表的结构和数据;
delete from student WHERE xh = A001 – 删除一条记录;
truncate TABLE student; – 删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快。
到此,相信大家对“oracle 表的管理方式”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!