您的位置:首页 > 数据库 > Oracle

oracle表的管理(数据类型,表的创建,删除,数据操作)

2017-08-17 10:21 435 查看
oracle入学第二天—-2017-08-17

表名与列名的命名规则:

• 必须以字母开头

• 表名长度不能超过30个字符 (最大30字符)

• 不能使用oracle的保留字

• 只能使用如下字符 A-Z,a-z,0-9,$,#等

数据类型(常用,常见)

1,char 定长 最大2000个字符。

例子:char(10) ‘小韩’前四个字符放‘小韩’,后添6个空格补全 如‘小韩’

2,varchar2(20) 变长 最大4000个字符。

(oracle优化了)

例子:varchar2(10) ‘小韩’ oracle分配四个字符。这样可以节省空间。

3,clob(character large object) 字符型大对象 最大4G

char 查询的速度极快,但浪费空间,查询比较多的数据用。

varchar 查询速度较慢,但节省空间

数字型

(oracle本来就没有int类型,为了与别的数据库兼容,新增了int类型作为number类型的子集,int类型只能存储整数;)

1. number范围 -10的38次方 到 10的38次方;//相当java的int类型 可以表示整数,也可以表示小数

number(5,2) 表示一位小数有5位有效数,2位小数 范围:-999.99到999.99 number(5)

表示一个5位整数 范围99999到-99999

日期类型

date 包含年月日和时分秒 oracle 默认格式 : DD-MON-YY

timestamp 这是oracle9i版本对date数据类型的扩展。可以精确到毫秒。

图片

blob 二进制数据 可以存放图片/声音 4G

一般来讲,在真实项目中是不会把图片和声音真的往数据库里存放,一般存放图片、视频的路径,如果安全需要比较高的话,则放入数据库

(这个没用过,希望知道可以告诉下怎么用,以及在什么情况下用好!)

表的创建

–学生表

alter table student(

stuNo number(2) –学号,

stuName varchar2(10) ,–姓名

sex char(2) –性别,

birthday date –出生日期

)

–班级表

create table class(

classId number(2),

cName varchar2(40)

)

修改表:

–添加一个字段

SQL>alter table student add( classId number)

–添加多个字段

SQL>alter table student add( classId number,cName varchar2(40))

–修改一个字段的长度

SQL>alter table student modify (stuNo varchar2(30));

修改字段的类型/或是名字(不能有数据) 不建议做

SQL>alter table student modify (stuName char(30));

删除一个字段 不建议做(删了之后,顺序就变了。加就没问题,应为是加在后面)

SQL>alter table student drop column sex;

修改表的名字 很少有这种需求

SQL>rename student to newTableName;

删除表

SQL>drop table student;

添加数据

所有字段都插入数据

INSERT INTO student VALUES (‘A001’, ‘张三’, ‘男’, ‘01-5月-05’, 10);

(Oracle为什么不能想SQL servlet 多行添加数据, oracle怎么多行添加呢)

oracle中默认的日期格式‘dd-mon-yy’ dd日子(天) mon 月份 yy 2位的年 ‘09-6月-99’ 1999年6月;

修改日期的默认格式(临时修改,数据库重启后仍为默认;如要修改需要修改注册表)

ALTER SESSION SET NLS_DATE_FORMAT =’yyyy-mm-dd’;

修改后,可以用我们熟悉的格式添加日期类型:

INSERT INTO student VALUES (‘A002’, ‘MIKE’, ‘男’, ‘1905-05-06’);

插入部分字段

INSERT INTO student(stuNo, stuName, sex) VALUES (‘A003’, ‘JOHN’, ‘女’);

插入空值

INSERT INTO student(stuNo, stuName, sex, birthday) VALUES (‘A004’, ‘MARTIN’, ‘男’, null);

修改数据

修改一个字段

UPDATE student SET sex = ‘女’ WHERE stuNo= ‘A001’;

修改多个字段

UPDATE student SET sex = ‘男’, birthday = ‘1984-04-01’ WHERE stuNo= ‘A001’;

删除数据

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; –删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 数据 管理
相关文章推荐