一:oracle 表的管理
- 必须以字母开头
- 长度不能超过30个字符
- 不能使用oracle的保留字
- 只能使用如下字符 a-z,a-z,0-9,$,#等
二:数据类型
- 字符类型
CHAR:存储固定长度的字符串,最多2000字符
char(10) 如果存储的内容不够10个字符,将使用空格补齐。查询的速度极快浪费空间,适合查询比较频繁的数据字段。
VARCHAR2 :存储可变长度的字符串 ,最多4000字符
VARCHAR2(10)如果存储内容不够10个字符,不会使用空格补齐,节省空间。
NCHAR和NVARCHAR2 :存储Unicode字符集类型 - 数字类型
NUMBER:存储整数和浮点数,格式为NUMBER(p, s)。范围-10的38次方到10的38次方,可以表示整数,也可以表示小数。
column_name NUMBER { p = 38, s = 0}
column_name NUMBER (p) {整数}
column_name NUMBER (p, s) {浮点数} - 日期格式
date :包含年月日和时分秒 oracle默认格式1-1月-1999
timestamp: 这是oracle9i对date数据类型的扩展。可以精确到毫秒。 - LOB数据类型
BLOB:存储二进制对象,如图像、音频和视频文件
CLOB:存储字符格式的大型对象
三:创建表
语法:CREATE TABLE命令创建数据库表
--创建学生表
create table student (
xh number(4) PRIMARY KEY, --学号
xm varchar2(20) NOT NULL, --姓名
sex char(2) NOT NULL, --性别
birthday date NOT NULL, --出生日期
);
--添加主键约束
ALTER TABLE student ADD CONSTRAINT CONSTRAINT_name PRIMARY KEY (xh);
--创建序列
CREATE SEQUENCE student _seq
START WITH 1
INCREMENT BY 1
NOMAXVALUE
CACHE 10;
--使用序列
insert into student values(student _seq.nextval,xm,sex,birthday );
SELECT master_seq.currval FROM dual; --查看序列的当前值
SELECT master_seq.nextval FROM dual; --查看序列的下一个值
--修改表
--添加一个字段
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;
--删除所有记录,表结构还在,写日志,可以恢复的,速度慢。
delete from tb_name where 1=1;
--delete的数据可以恢复。
savepoint a; --创建保存点
delete from student;
rollback to a; --恢复到保存点
--删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快。
truncate table student;