开发者社区> pnodnineteen> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Oracle-table表操作

简介: Oracle数据库的数据类型、约束、表相关操作
+关注继续查看

数据类型

字符类

select lengthb('字') from dual; (可以在数据库中查询一个汉字站多少字节)

char(?) 长度固定,最多容纳2000个字符。

例:char(10) ,UT8中一个汉字占3个字,前六个字符放‘张三’,后添4个空格补全,如‘张三    ’

注:char 查询的速度极快,浪费空间,适合查询比较频繁的数据字段


varchar2(?) 长度可变,最多容纳4000个字符。不要使用varchar数据类型,使用varchar2数据类型

例:varchar2(10),‘张三’ Oracle中只分配6个字符。varchar2 节省空间

clob(character large object) 字符型大对象,最多容纳4g

数字型

number(?) 或者 number(?,?) 范围 10^(-130) —— 10^126,可以表示整数,也可以表示小数

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

日期类型

date 包含  年月日和时分秒,oracle默认格式:1-1月-1999  也可以用 to_date('2018-09-27','yyyy-mm-dd')

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

lob数据类型

包括blob、clob、nclob、bfile(外部存储)的大型化和非结构化数据,如文本、图像、视屏、空间数据存储。

创建表

create table table_name(

字段1 类型1,

字段2 类型2,

字段n 类型n

);
根据结果集创建数据库
create table 表名 as select 语句
复制表
-- 有结构有数据
create table emp_01 as select * from emp;
-- 有结构没有数据
create table emp_02 as select * from emp where 1=2;

约束

英文 中文
primary key 主键约束
unique 唯一约束
not null 非空约束
check(约束条件) 检查约束
foreign key 外键约束
default 默认约束

注意:Oracle中 default 不是约束,是一个值

给已创建的表添加约束
alter table 表名 add constraint 约束名 约束内容
添加主键约束
alter table emp add constraint pk_emp_id primary key(eid);
添加非空约束
alter table emp modify ename not null;
添加唯一约束
alter table emp add constraint uq_emp_ecode unique(ecode);
添加检查约束
alter table emp add constraint ck_emp_esex check(esex in('男','女'));
添加外键约束

----普通外键约束(如果存在子表引用父表主键,则无法删除父表记录)

alter table emp add constraint fk_emp_dep foreign key(did) references dep (did);

----级联外键约束(可删除存在引用的父表记录,而且同时把所有有引用的子表记录也删除)

alter table emp add constraint fk_emp_dep foreign key(did) references dep (did) on delete cascade;

----置空外键约束(可删除存在引用的父表记录,同时将子表中引用该父表主键的外键字段自动设为NULL,但该字段应允许空值)

alter table emp add constraint fk_emp_dep foreign key(did) references dep (did) on delete set null;
删除约束
alter table 表名 drop constraint 约束名

创建员工表

create table employee(

eid varchar2(10) primary key, -- 主键约束

ename varchar2(12) not null, -- 非空约束

esex char(3) default '男' check(esex='男' or esex='女'), -- 默认约束+检查约束

ebrithday date unique,-- 唯一约束

eage number(3),

esalary number(8,2),

depid varchar2(10),

constraint fk_employee_department_depid foreign key(depid)  references department(depid) --外键约束

);

删除表

drop table 表名; 

修改表的字段

添加一个classid字段
alter table student add (classid number(2));
修改一个name字段的长度
alter table student modify (name varchar2(30));
修改name字段的类型或是名字(不能有数据)
alter table student modify (name char(30));
删除一个字段
alter table student drop salary;
修改表的名字
rename student to stu;

插入记录

insert into 表名(字段1,字段2,字段3,...) values(值1,值2,值3,...);

当插入全部字段的数据时:

insert into 表名(字段1,字段2,字段3,...) values(值1,值2,值3,...);

insert into student (sno,age,edate,classname,email)values(1, 18, '23-12月-1293','wd003','insert@w5.com')

可以简写为(可以省略表名后面的字段标识):

insert into 表名 values(值1,值2,值3,...);

insert into student values(1,18, '23-12月-1293','wd003','insert@w5.com'); 与上一个insert语句效果相同

当插入部分字段时(一定要在表名后添加标识,下面例子添加记录时字段2没有添加数据):

insert into 表名(字段1,字段3) values(值1,值3);

insert into student (sno,sdate,classname,email)values(1,  '23-12月-1293','wd003','zsf@wd.com');

(没有添加学号为1同学的年龄)

修改记录

update 表名 set 修改字段1 = 修改后内容1,修改字段2 = 修改后内容2 where 条件

update student set sname='CR7',sage='33' where sno='1001';

删除记录

delete from 表名 where 条件
删除表所有记录
delete from 表名

truncate table 表名 (!!!!!慎用,删除记录不可恢复)

主表 从表

主键表是被引用的表,外键表是引用其他表的表

主表:在数据库中建立的表格(table),其中存在主键(primary key)用于与其它表相关联,并且作为在主表中的唯一性标识

从表:以主表的主键(primary key)值为外键 (foreign key)的表,有外键的表是外键表,从表

删除主表前,先解除与从表关系,然后才能删除(除非外键中设置级联或者置空)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Oracle数据库体系结构理论
Oracle数据库体系结构理论 我们先看下面几个我们实际工作中经常会遇到的问题: 1、通常说Oracle数据库是什么? 2、如何理解Oracle实例? ...
1438 0
Oracle 数据库性能优化3日实战(企业培训)
课程名称一: Oracle性能优化及调整 课程时长 1天 课程深度: 高级 上机实验: 10%-30% 授课对象: Oracle开发人员、Oracle数据库管理人员,应用程序开发人员 课程描述: 本课程讲述Oracle数据库物理层规划,系统性能的监控,数据库性能参数调整,统计信息的收集,使用自动化调试工具优化数据库,I/O子系统的配置与设计以及性能优化方法论等。
1818 0
Oracle 数据库 恢复
导入工具imp交互式命令行方式: 在Windows cmd命令窗口输入imp回车,出现下面的信息 Import: Release 11.2.0.1.0- Production on Tue Sep 27 23:48:11 2011 Copyright (c) 1982,2009, Oracle and/or its affiliates.  Allrights res
714 0
+关注
33
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载