oracle表操作

1 数据类型


数据类型参数描述
char(n)n=1 to 2000字节定长字符串,n字节长,以空格填充剩余字节。若不指定,默认为1字节
varchar2(n)n=1 to 4000字节变长字符串
number(m,n)m=1 to 38
n=-84 to 127
可变长的数值列,允许0、正值及负值,m是所有有效数字的位数,n是小数点以后的位数。
如:number(5,2),则这个字段的最大值是99,999,如果数值超出了位数限制就会被四舍五入截取多余的位数。
如:number(5,2),但在一行数据中的这个字段输入575.316,则真正保存到字段中的数值是575.32。
如:number(3,0),输入575.316,真正保存的数据是575。
datenone从公元前4712年1月1日到公元4712年12月31日的所有合法日期,Oracle 8i其实在内部是按7个字节来保存日期数据,在定义中还包括小时、分、秒。
缺省格式为DD-MON-YY,如07-11月-00 表示2000年11月7日
longnone可变长字符列,最大长度限制为2GB,用于不需要做字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。
long是一种较老的数据类型,将来会逐渐被blob、clob、nclob等大的对象数据类型所取代。
raw(n)n=1 to 2000可变长二进制数据,在具体定义字段的时候必须指明最大长度n。Oracle 8i用这种格式来保存较小的图形文件或带格式的文本文件,如word文档。
raw是一种较老的数据类型,将来会逐渐被blob、clob、nclob等大的对象数据类型所取代
clobnone字符型数据,存储大字符
blobnone二进制数据,存储二进制的文件
bfilenone在数据库外部保存的大型二进制对象文件,最大长度是4GB。
这种外部的LOB类型,通过数据库记录变化情况,但是数据的具体保存是在数据库外部进行的。
oracle 8i可以读取、查询BFILE,但是不能写入。其大小由操作系统决定

2 表管理

2.1.创建表

create table <table_name>(
    id number(9),
    name varchar(9)
);

注: 数值的不能加单引号',字符型的值要加单引号'

2.2.修改表名称

alter table <old_table_name> rename to <new_table_name>
2.3.删除表
drop table <table_name>;
2.4.修改表的字段

  • 增加表的字段:
    alter table <table_name> add <字段名> <数据类型> [约束];
  • 修改表的字段类型
    alter table <table_name> modify <字段名> <数据类型> [约束];
  • 删除表的字段
    alter table <table_name> drop column <字段名> <数据类型> [约束];

3 表约束

约束描述
primary key主键。每个表只能有一个主键,可以与其他的表的外键进行关联。值非空且唯一
unique唯一值,不可重复
default设置默认缺省值
not null值不能为空
check检查约束,限制值只能在给定的条件内。如check( sex in(‘男’,‘女’))
foreign key外键

3.1约束-列级约束

在字段后面跟上约束

例:

create table student(
sid number(10) primary key,
sname varchar(9) not null,
sex char(3) check( sex in ('男','女')),
age number(5) default 25,
trainTime date,
ID varchar(5) unique
);

3.2约束-表级约束

在创建字段后加上约束,且该约束具有约束名,方便管理

constraint <constraint_name> primary key(<字段>)
constraint <constraint_name> unique(<字段>)
constraint <constraint_name> check(<条件式>)
例:

create table ss(
sid number(10) ,
sname varchar(9) ,
sex char(3) ,
age number(5),
trainTime date,
ID varchar(5),
constraint pksid primary key(sid),
constraint nnull_sname check(sname is not null),
constraint ck_sex check (sex in ('男','女')),
constraint ck_age check (age > 0 or age <150),
constraint ck_ID unique(ID)
);

3.3约束的管理

  • 直接改变列级约束:
    alter table <table_name> modify <字段名> <约束>;
  • 增加表级约束:
    alter table <table_name> add constraint <constraint_name> primary key(<字段名...>);
    alter table <table_name> add constraint <constraint_name> unique(<字段名>);
    alter table <table_name> add constraint <constraint_name> check(<条件式>);
  • 删除表级约束
    alter table <table_name> drop constraint <constraint_name>;
  • 重命名约束
    ALTER TABLE <table_name> RENAME CONSTRAINT <old_constraint_name> TO <new_constraint_name>

3.4约束命名规范

约束规范
非空约束NN_表名_列名
唯一约束UK_表名_列名
主键约束PK_表名
条件约束CK_表名_列名
外键约束FK_表名_列名
默认约束DF_表名_列名

4 表记录

4.1什么是表的记录

在表中的一行数据即称之为一个记录(row)

4.2对记录的操作

  • 增加记录
    insert into <table_name> (<字段1>,<字段2>....) values(<value1>,<value2>....);
  • 删除记录
    delete from <table_name> [where <判断条件>];
  • 修改记录
    update <tabel_name> set <字段> = <value> [where <判断条件>];
  • 查询记录
    select <字段1> as <别名1>,<字段2> as <别名2>.... from <table_name>;

注: 当插入的值的字段的类型为date时,可采用如下方式

  • insert into student(sid,sname,sex,age,traintime,id) values(1,'关羽','男',28,'28-2月-2019','11111');
  • insert into student values(2,'张飞','男',27,sysdate,'22222');
  • insert into student values(3,'李四','男',27,to_date('2019-24-02','yyyy-dd-mm'),'33333');

参考资料:数据类型:https://www.cnblogs.com/helong/articles/2087721.html
参考资料:约束命名规范:https://www.cnblogs.com/kerrycode/archive/2012/05/13/2454614.html
原文:http://blog.isdevil.com/cjerrybird/2019/02/oracle%e8%a1%a8%e6%93%8d%e4%bd%9c.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值