oracle 表的管理
3.1、 表名的命名规则
l 字母开头
l 长度小于30字符
l 不能使用Oracle的保留字
l 只能使用如下字符:A-Z,a-z,0-9,$,#等
3.2、Oracle的数据类型
3.2.1 字符型 存放字符串
n char 定义:最大2K个字符
create table users (
sex char(2),
username varchar2(20),
userid number(10),
birthday date,
sal number(7,2)); --奖学金
char(10) “小明”前四个字符为小明,后添6个空格补全
char型 查询效率很高,比varchar高
注意:如果知道一个字段长度的话,使用char比使用varchar效率高很多,因为比如char(n)查询时直接比较n位,succ成功,否则FALSE;varchar(n)是先比较第一 位,再比较第二位,他是一位一位的比较,效率不如char效率高
注意:char(10)-------字符全部占用 查询、比较效率高------“小明”
Varchar(10)----字符长度多少给多少-------------------------“小明”
n varchar2()变长 最大4K字符
如:Varcha2(10)“小明” Oracle分配四个字符,这样可以节省空间
n clob(characterlarge objiect) 字符型大对象 最大4G
3.2.2 数字型
Number 范围: -10的-38次方 ~ +10的38次方
可以表示整数,也可以表示小数
如:number(5,2) 表示一个有5位有效数字的数字,2位的小数 表示-999.99~999.99
Number(5)表示一个5位整数,范围:-99999~99999
3.2.3 日期类型
date 包含年月和时分秒
timestamp 这是Oracle9i对date数据类型的扩展
注意:timestamp 精度比较高,可以使用在银行方面
3.2.4 图片------blob
Blob 二进制数据 专门用来存放图片,但是也可以用来存放图片/声音,像MP3、jpg等都可以存放到数据库中。 4G
注释:
1、一般来讲,不会讲视频、图片存放到数据库中,一般数据库中都是存放图片、视频的路径,图片和视频存放到另外的文件夹下面。
2、但是如果图片视频 安全性很高,需要将图片视频放入到数据库中
4、oracle表的管理(二)-----课时8
Oracle表的管理
-------怎样创建表
-------修改表
-------添加数据
-------修改数据
4.1 ---------怎样创建表
建立表后,突然发现少了一列,或是什么着的
添加一个字段
注意:主键外键、还有索引、非空如何在建表时表示?
alter table student add(classid nubmer);
注意:一般是加入一个字段可以,加到最后啦! 但是不要删除一个字段,,工作中一般不这样干
4.2 ---------修改表
查看
注意:
1、 添加一个字段,一般都是在最后添加一个字段
2、修改长度 ---不看了
原先是20个字符,但是现在发现不够用了,现在修改为长度为30;
3、如果表中有数据的话,一般不适用删除某一个字段或是表明,就修改字段类型/名字
4、一般也不删除字段,最好不要动, 可以加字段但是不要删字段
例如:之前人家使用了 第4个参数,突然你删除了,第二个字段,原先的4字段,变成了3了,5变成4了,就错乱啦!
4.3 ---------添加数据
注意:
插入部分值,有时不会成功,因为有时有些字段必须要添加不能为空
注意:
不知道birthday是什么?插入一个空值null,其实select *就是没有生日
假如:
如果查询没有生日的怎么写?
Select * from student where birthday=’ ‘; XXXXXX错的
应该:Select * from student where birthday is not null;
4.4 ---------修改数据
例子;如果我将男性的同学的分数 减一倍
Update student set sal= sal/2 where sex=’男’;
修改多个字段,使用逗号分开
Update student set sal= sal/2,classId=3 where sex=’男’;
通过 isnot null 或是 is null 来查询null值
4.5 -------删除数据
注意:只是删除数据,但是不删除表,数据删除后,表的格式还在
因为有日志的存在,还可以恢复数据;
一个优秀的数据库管理员,开始工作之前
1、 保存点
2、 一旦有问题,回滚到几点前
注意:如果保存点,不做特殊处理,保存点只有一个,建立保存点b时它自动覆盖a
注意:truncate 和drop 一样的都是删除表的所有记录,但是不删除表的结构,但是truncate不写日志,所以速度快,但是不可以回滚,而drop写日志,速度慢但可回滚