oracle 11g 学习笔记 2012_10_25(2)
oracle表的管理
1)表名和列的命名规则
* 必须以字母开头* 长度不能超过30字符
* 不能使用oracle 的保留字
* 自能使用如下字符 A-Z,a—z,0-9,$,#等
2)oracle支持的数据类型
* 字符型char 定长,定了长度之后就不能改变了,查询时的效率高 最大 2000字符
varchar2(20) 变长,动态改变字符的长度 最大4000字符
* 数字型
oracle中表示数字的只有number。
number的表示范围在-10的38次方~10的38次方,它可以表示正数,也可以表示小数。
小数的表示:number(m,n)表示的是这个数的有效数是m,有n位小数。
正数的表示:number(m)表示的是这是一个五位数正数。
*日期类型
date 包含了 年月日和时分秒
oracle默认的日期类型是"dd-mon-yy",如'12-5月-90'。我们可以用函数 to_date(‘1990-05-12’,‘yyyy-mon-dd’)格式化成我们熟悉的格式。也可以这样修改日期的默认格式:
alter session set nls_date_format = 'yyyy-mm-dd';*图片类型 二进制数据
oracle中的图片类型不单止可以存放图片,还可以存放声音视频。
但是真是项目中,我们一般不会把图片直接放进去数据库中,一般只是在数据库里存放一个路径而已,把图片视频等放在一个资源文件夹里读取。当该图片视频的保密性很高时才把它们放进数据库里面。
3)建表
.建立学生表和班级表。SQL> create table student(
2 xh number(4),
3 xm varchar2(20),
4 sex char(2),
5 birthday date,
6 sal number(7,2)
7 );
Table created
SQL> create table classes(
2 classId number(2),
3 cname varchar2(40)
4 );
Table created
.表空间
通俗地说是表存放的地方,就如是把一个文件是放在C盘还是放在D盘那种感觉。oracle已经为我门创建了好几个表空间,方便我们管理表。就如为什么要有几个硬盘一样,每一个硬盘都会放不同的文件,这样管理就方便多了。
建表我们可以通过pl/sql developer 这个可视化的工具操作,也可以在命令行里面操作,在不熟悉的前,最好是先熟悉命令,因为数据库这么多,每个数据库的可视化工具不经相同,而命令可大致是相同的。
.表的修改:
添加一个字段:
这个字段一般是添加在最后的。
alter table student add( classId number(2));.删除一个字段:
在删除一个字段时,要考虑清除,要是没有到了非删不可的地步,最好就不要删了。特别是在做项目时,如果表删除了某个字段,当输入数据时,输入的格式可能还是原来的表结构那样输入,那么就很容易造成输入的错误。后果比较严重。
.删除表
drop table student;
(3)添加数据
.所有数据都插入insert into student values ('A001','张三','男','01-5月-05',10);oracle中默认的格式为‘DD-MON-YY’
修改日期的默认格式:
alter session set nls_date_format = 'yyyy-mm-dd';那么修改后默认的格式插入就不可以了。
按上面的格式在插入一个值测试:
insert into student values ('A002','MIKE','男','1990-07-05',10);
.插入部分字段
insert into student(xh,xm,sex) values('A003','JOHN','男');
.插入空值
insert into student(xh,xm,sex,birthday) values('A004','MARTIN','男',null);
要是在创建表时已经约束了birthday不能空值的时候,上面的语句就会报错了。
(4)修改数据(update)
.修改一个字段update student set sex='女' where xh = '1';.修改多个字段
update student set sex = '男',birthday = ‘1990-08-12’where xh = '2';
(5)删除数据
一、只删除数据delete from student;要是希望删除可以回复数据,可以在删除前,保存一个点 savepointaa; 保存点
执行删除数据命令后,再执行回滚命令,rollback to aa; 那么,数据就会恢复到aa保存的这个保存点之前的数据上。保存点就只能有一个。因此有经验的数据库管理员都是经常设置保存点的。
truncate table student;这条语句中的所有数据记录都被删除,但是表结构还在,不写日记,因此也无法找回删除的记录,特点是速度快。
二、删除表的数据和结构
delete table student;