oracle表管理
2014-04-08 20:35
295 查看
表管理
第一讲
1.表名和列名的命名规则
必须以字母开头
长度不能超过30字符
不能使用oracle的保留字
只能使用如下字符 a-z, A-Z,0-9,$,#等
2.oracle支持的数据类型
①char 定长 最大2000字符
例:char(10) ‘小米’前四个字符放两个汉字,后添6个空格补全
优点:查询效率高
缺点:浪费空间
②varchar2(10) 变长 最大字符为4000
例: varchar2(10) ‘小明’ 前四个字符放两个汉字,这样可以节省空间
③clob(character large object) 字符型大对象 最大4G
数据库中保存文件使用的类型
clob使用char来保存数据 如:保存XML文档
blob使用二进制保存数据 如:保存位图
JAVA里面对CLOB的操作
在绝大多数情况下,使用2种方法使用CLOB
Ⅰ 相对比较小的,可以用String进行直接操作,把CLOB看成字符串类型即可
Ⅱ 如果比较大,可以用 getAsciiStream 或者 getUnicodeStream 以及对应的 setAsciiStream 和 setUnicodeStream 即可
读取数据
ResultSet rs = stmt.executeQuery("SELECT TOP 1 * FROM Test1");
rs.next();
Reader reader = rs.getCharacterStream(2);
插入数据
PreparedStatement pstmt = con.prepareStatement("INSERT INTO test1 (c1_id, c2_vcmax) VALUES (?, ?)");
pstmt.setInt(1, 1);
pstmt.setString(2, htmlStr);
pstmt.executeUpdate();
更新数据
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM test1");
rs.next();
Clob clob = rs.getClob(2);
long pos = clob.position("dog", 1);
clob.setString(1, "cat", len, 3);
rs.updateClob(2, clob);
rs.updateRow();
3.数字型
number 范围为-10的38次方 到10的38次方
number(5,2)
表示一个小数有5位有效数,2位小数
范围-999.99到999.99
number(5)
表示一个5为整数
范围-99999到99999
4.日期类型
date 包括年月日和时分秒
timestamp 这是oracle9i 对date数据类型的扩展(精度更大)
5.图片类型
blob 二进制数据 可以存放图片/声音 4G
说明:一般情况下图片、声音和视频不往数据库里存放,通常是把其放在一个文件夹中,
往数据库里存放一个路径,除非图片声音保密性高就存入数据库中。
6.建表
--学生表
create table student( --表名student
xh number(4), --学号
xm varchar2(20), --姓名
sex char(2), --性别
birthday date, --出生日期
sal number(7,2) --奖学金
);
7.修改表
①添加一个字段
alter table student add(classid number(2));
②修改字段长段
alter table student modify (xm varchar2(30));
③修改字段的类型/名字(不能有数据)
alter table student modify (xm char(30));
④删除一个字段
alter table student drop column sal;
⑤修改表的名字
rename student to stu;
⑥删除表
drop table student;
⑦所有字段都插入(添加数据)
insert into student alues(‘A001’,‘张三’,‘01-5月-05’,10);
oracle 中默认的日期格式‘DD-MON-YY’
改日期的默认格式
alter session set nls_date_format = 'yyyy-mm-dd';
修改后可以按熟悉的格式添加日期类型:
insert into student values(‘A002’,‘李四’,‘1905-05-06’,10);
⑧插入部分字段
insert into student(xh,xm,sex) values (‘A003’,‘JOHN’,‘女’);
插入部分字段并不定每次都能成功,比如说某些字段不能为空,必须给值
⑨插入空值
insert into student(xh,xm,sex,birthday)
values(‘A004’,‘MARTIN’,‘男’,null);
--查询生日为空的记录
select * from student where birthday is null;
--查询生日不为空的记录
select * from student where birthday is not null;
⑩修改一个字段
update student set sex = '女' where xh = 'A001';
⑩+①修改多个字段
update student set sex = '男',birthday = ‘1980-04-01’
where xh = ‘A001’;
⑩+②修改含有null值的数据
update student set birthday is null where xh = ‘A001';
⑩+③删除数据
delete from student;--删除所有记录,表结构还在,写日志(sava point),
--可以恢复,速度慢
--回滚
savepoint aa;
delete from student;
rollback to aa;
drop table student;--删除表的结构和数据
delete from student where xh =‘A001’;--删除一条记录
truncate table student; --删除表中所有数据,表结构还在,不写日志
--无法找回删除的记录,速度快
第一讲
1.表名和列名的命名规则
必须以字母开头
长度不能超过30字符
不能使用oracle的保留字
只能使用如下字符 a-z, A-Z,0-9,$,#等
2.oracle支持的数据类型
①char 定长 最大2000字符
例:char(10) ‘小米’前四个字符放两个汉字,后添6个空格补全
优点:查询效率高
缺点:浪费空间
②varchar2(10) 变长 最大字符为4000
例: varchar2(10) ‘小明’ 前四个字符放两个汉字,这样可以节省空间
③clob(character large object) 字符型大对象 最大4G
数据库中保存文件使用的类型
clob使用char来保存数据 如:保存XML文档
blob使用二进制保存数据 如:保存位图
JAVA里面对CLOB的操作
在绝大多数情况下,使用2种方法使用CLOB
Ⅰ 相对比较小的,可以用String进行直接操作,把CLOB看成字符串类型即可
Ⅱ 如果比较大,可以用 getAsciiStream 或者 getUnicodeStream 以及对应的 setAsciiStream 和 setUnicodeStream 即可
读取数据
ResultSet rs = stmt.executeQuery("SELECT TOP 1 * FROM Test1");
rs.next();
Reader reader = rs.getCharacterStream(2);
插入数据
PreparedStatement pstmt = con.prepareStatement("INSERT INTO test1 (c1_id, c2_vcmax) VALUES (?, ?)");
pstmt.setInt(1, 1);
pstmt.setString(2, htmlStr);
pstmt.executeUpdate();
更新数据
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM test1");
rs.next();
Clob clob = rs.getClob(2);
long pos = clob.position("dog", 1);
clob.setString(1, "cat", len, 3);
rs.updateClob(2, clob);
rs.updateRow();
3.数字型
number 范围为-10的38次方 到10的38次方
number(5,2)
表示一个小数有5位有效数,2位小数
范围-999.99到999.99
number(5)
表示一个5为整数
范围-99999到99999
4.日期类型
date 包括年月日和时分秒
timestamp 这是oracle9i 对date数据类型的扩展(精度更大)
5.图片类型
blob 二进制数据 可以存放图片/声音 4G
说明:一般情况下图片、声音和视频不往数据库里存放,通常是把其放在一个文件夹中,
往数据库里存放一个路径,除非图片声音保密性高就存入数据库中。
6.建表
--学生表
create table student( --表名student
xh number(4), --学号
xm varchar2(20), --姓名
sex char(2), --性别
birthday date, --出生日期
sal number(7,2) --奖学金
);
7.修改表
①添加一个字段
alter table student add(classid number(2));
②修改字段长段
alter table student modify (xm varchar2(30));
③修改字段的类型/名字(不能有数据)
alter table student modify (xm char(30));
④删除一个字段
alter table student drop column sal;
⑤修改表的名字
rename student to stu;
⑥删除表
drop table student;
⑦所有字段都插入(添加数据)
insert into student alues(‘A001’,‘张三’,‘01-5月-05’,10);
oracle 中默认的日期格式‘DD-MON-YY’
改日期的默认格式
alter session set nls_date_format = 'yyyy-mm-dd';
修改后可以按熟悉的格式添加日期类型:
insert into student values(‘A002’,‘李四’,‘1905-05-06’,10);
⑧插入部分字段
insert into student(xh,xm,sex) values (‘A003’,‘JOHN’,‘女’);
插入部分字段并不定每次都能成功,比如说某些字段不能为空,必须给值
⑨插入空值
insert into student(xh,xm,sex,birthday)
values(‘A004’,‘MARTIN’,‘男’,null);
--查询生日为空的记录
select * from student where birthday is null;
--查询生日不为空的记录
select * from student where birthday is not null;
⑩修改一个字段
update student set sex = '女' where xh = 'A001';
⑩+①修改多个字段
update student set sex = '男',birthday = ‘1980-04-01’
where xh = ‘A001’;
⑩+②修改含有null值的数据
update student set birthday is null where xh = ‘A001';
⑩+③删除数据
delete from student;--删除所有记录,表结构还在,写日志(sava point),
--可以恢复,速度慢
--回滚
savepoint aa;
delete from student;
rollback to aa;
drop table student;--删除表的结构和数据
delete from student where xh =‘A001’;--删除一条记录
truncate table student; --删除表中所有数据,表结构还在,不写日志
--无法找回删除的记录,速度快
相关文章推荐
- ubuntu 13.10安装oracle sdk和PyCharm教程详解
- oracle基础
- Windows 8.1 系统上用Oracle VM VirtualBox 安装windows 2008 R2 SP1 的虚拟机 出现 Error Code: 0x000000C4
- Oracle 数据库实例启动关闭过程
- Oracle sqlplus 常用设置
- Oracle实例精解-第一章阅读笔记
- Oracle层次化查询
- oracle 无效数字
- oracle字符串载取及判断是否包含指定字符串
- oracle数据库启动/关闭数据库归档(ARCHIVELOG)模式
- oracle triggers 实现两个结构相同的表的数据级联更新操作
- Linux中oracle备份
- ORACLE解锁
- ORA-01034: ORACLE not available如何解决
- Oracle锁表
- 存储过程的输出是游标(列表)
- Oracle中DUMP的转储方法
- oracle的临时表空间
- 免安装oracle配置
- oracle数据库连接池