Oracle表管理1
Oracle表管理1
1. 表名和列名命名规则
(1). 必须以字母开头;
(2). 长度不能超过 30 个字符;
(3). 不能使用 oracle 保留字;
(4). 只能使用如下字符 A-Z,a-z,0-9,$,# 等。
2. Oracle中的数据类型
(1). 字符类
char:定长,最大支持 2000 字符,查询速度快(采用完全匹配方式查询)。
varchar:变长,最大支持 4000 字符,查询速度慢(采用一位一位匹配方式查询)。
clob:字符型大对象,最大支持 4G。
(2). 数字类
number:范围由 -10 的 38 次方到 10 的 38 次方。可以表示整数,也可以表示小数。
例:number(5,2),表示总共有5位有效数字,2 位小数,范围从 -999.99 到 999.99。
number(5),表示 5 位整数,范围从 -99999 到 99999。
(3). 日期类型
date:包含年月日和时分秒,oracle 中默认格式是 24-6月-2010。
timestamp:这是 oracle 对时间类型的扩展,可以精确到毫秒。
(4). 图片
blob:二进制数据,可以存放图片、声音,最大支持 4G,一般情况下,在真实项目中是不会把图片和声音往数据库里存放,一般存放图片或者声音的路径,如果安全性要求比较高的话,则放入数据库。
3. 创建表
创建表使用 craete table 语句。
例:create table student (
id number(4),
name varchar2(30),
易做图 char(2),
birthday date,
sal number(7,2)
);
4. 修改表
(1). 添加一个字段
例:alter table student add (classid number(2));
(2). 修改字段的长度
例:alter table student modify (name varchar2(50));
(3). 修改字段的类型或是名字(不能有数据)
例:alter table student modify (name char(30));
(4). 删除字段
例:alter table student drop column sal;
(5). 修改表的名字
例:rename student to stu;
5. 删除表
删除表使用 drop table 语句。
例:drop table student;
6. 插入数据
(1). 所有字段都插入数据
例:insert into student values (1001, 'skycloud', '男', '01-6月-88', 2000);
oracle中默认的日期格式是 'dd-mon-yy'; dd是日子(天),mon是月份,yy是2位的年份。
修改日期的默认格式(临时修改,数据库重启后仍为默认,如要修改需要修改注册表)
例:alter session set NLS_DATE_FORMAT = 'yyyy-mm-dd';
修改后,可以使用熟悉的日期格式插入日期数据
例:insert into student values (1002, 'skycloud1', '男', '1987-07-01', 1500);
(2). 插入部分数据
例:insert into student (id, name, 易做图, birthday) values (1003, 'skycloud2', '女', '20-12-88', null);
如要要查询 student 表中生日为 null 的记录,该怎么查询?
错误案例:select * from student where birthday = null;
正确案例:select * from student where birthday is null;
如果要查询 student 表中生日不为 null 的记录,该怎么查询?
select * from student where birthday is not null;
7. 修改数据
(1). 修改一个字段
例:update student set 易做图 = '女' where id = 1002;
(2). 修改多个字段
例:update student set name='skycloud3', 易做图='女', birthday='01-07-1987' where id=1002;
8. 删除数据
(1). delete from student; -- 删除所有记录,表结构还在,写日志,可以恢复的,速度慢。
(2). delete from student where id=1003; -- 删除一条记录。
(3). drop table student; -- 删除表结构和表数据。
(4). truncate table student; -- 删除表中所有记录,表结构还在,不写日志,无法找回删除的记录,速度快。
(5). savepoint a; -- 创建保存点。
(6). rollback to a; -- 恢复到保存点a。
一个有经验的 dba,在确保无误的情况下,要经常创建保存点。