四、Oracle 表的管理

转载 2015年07月08日 17:35:45

一、表名和列名的命名规则
1)、必须以字母开头
2)、长度不能超过30个字符
3)、不能使用oracle的保留字
4)、只能使用如下字符 a-z,a-z,0-9,$,#等

 

二、数据类型
1)、字符类
char 长度固定,最多容纳2000个字符。
例子:char(10) ‘小韩’前四个字符放‘小韩’,后添6个空格补全,如‘小韩      ’
varchar2(20) 长度可变,最多容纳4000个字符。
例子:varchar2(10) ‘小韩’ oracle分配四个字符。这样可以节省空间。
clob(character large object) 字符型大对象,最多容纳4g
char 查询的速度极快浪费空间,适合查询比较频繁的数据字段。
varchar 节省空间
2)、数字型
number范围-10的38次方到10的38次方,可以表示整数,也可以表示小数
number(5,2)表示一位小数有5位有效数,2位小数;范围:-999.99 到999.99
number(5)表示一个5位整数;范围99999到-99999
3)、日期类型
date 包含年月日和时分秒 oracle默认格式1-1月-1999
timestamp 这是oracle9i对date数据类型的扩展。可以精确到毫秒。
4)、图片
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;
--修改表的名字 很少有这种需求
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; --删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快。

实验四 数据库模式对象管理

一、实验目的 1)  掌握表、索引、索引化表的概念及管理 2)  掌握分区的概念及分区管理 3)  掌握外部表的概念及其管理 4)  了解簇、视图、序列、同义词、数据库链接等的管理 二、预习...
  • MJ813
  • MJ813
  • 2016年12月31日 20:26
  • 768

详解Oracle本地管理表空间

详解Oracle本地管理表空间 分类: [oracle]--[存储结构] 2011-11-13 22:17 926人阅读 评论(0) 收藏 举报 oracletablesqluser数据库 ...
  • haiross
  • haiross
  • 2013年10月16日 16:10
  • 2453

Oracle本地管理对比数据字典管理表空间

Locally vs. Dictionary Managed Tablespaces 整理自:http://www.orafaq.com/node/3. When Oracleallocates ...
  • IndexMan
  • IndexMan
  • 2014年09月02日 13:11
  • 3342

Oracle表空间创建管理

数据库表空间创建和管理 介绍 表空间是数据库的逻辑存储概念     从物理上讲:数据库数据存放在数据文件中     从逻辑上讲:数据库则是存放在表空间中,表空间存放着一个或者多个数据文件 ,...
  • u010383786
  • u010383786
  • 2016年09月07日 13:19
  • 479

oracle 多表查询,子查询,集合运算,分页查询

oracle的多表查询,子查询,集合运算,分页查询
  • strong_yu
  • strong_yu
  • 2016年06月21日 16:44
  • 588

Oracle表管理

Oracle表管理 oracle表的管理(数据类型,表结构创建,修改和删除,表数据CRUD操作) 表名和列的命名规则  必须以字母开头  长度不能超过30个字符  不能使用oracle的保留字 ...
  • q547550831
  • q547550831
  • 2015年11月21日 13:59
  • 15032

Oracle 11g笔记——表空间和数据文件的管理

Oracle的存储结构分为物理结构与逻辑结构 物理结构:数据文件(Datafiles)、联机日志文件(Online Redo Logs)和控制文件(Control Files)          ...
  • lJean
  • lJean
  • 2016年05月03日 11:27
  • 1228

本地管理表空间(LMT)

本地管理表空间(LMT)     来学习一下LMT(Locally Managed Tablespace)的知识。虽然这个现在已经很少用到了,而且基本上默认创建的SYSTEM都已经是LMT的了,...
  • haiross
  • haiross
  • 2014年01月15日 19:02
  • 1042

ORACLE表空间管理维护

1:表空间概念   在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段、区、块等逻辑结构。从物理结构上看是放在数据文件中。一个表空间可由多个数据文件组成。 如...
  • vic_qxz
  • vic_qxz
  • 2016年09月28日 05:38
  • 202

本地管理表空间(LMT)与自动段空间管理(ASSM)概念(未看)

本地管理表空间(LMT)与自动段空间管理(ASSM)概念 创建表空间时,extent management local 定义本地管理表空间(LMT),segment space manageme...
  • haiross
  • haiross
  • 2013年10月08日 16:42
  • 4398
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:四、Oracle 表的管理
举报原因:
原因补充:

(最多只允许输入30个字)