oracle建表

1、创建表的同时创建主键约束
(1) 无命名 create table student ( studentid int primary key not null, studentname varchar(8), age int);
(2) 有命名 create table students ( studentid int , studentname varchar(8), age int, constraint yy primary key(studentid));

2、删除表中已有的主键约束
(1) 无命名可用 SELECT * from user_cons_columns; 查找表中主键名称得 student 表中的主
键名为 SYS_C002715 alter table student drop constraint SYS_C002715;
(2) 有命名 alter table students drop constraint yy;

3、 向表中添加主键约束 alter table student add constraint pk_student primary key(studentid);

4、 向表中添加外键约束 ALTER TABLE table_A ADD CONSTRAINT FK_name FOREIGN KEY(id)
REFERENCES table_B(id);

主键约束用于唯一地标识表中的每一行记录。在一个表中,最多只能有一个主键约束,主键约束既可以由一个列组成,也可由两个或两个以上的列组成(这种成为联合主键)。主键约束同时也具备非空约束的特征。
唯一性约束强调所在的列不允许有相同的值。但是,它的定义要比主键约束弱,即,它所在的列允许空值。唯一性约束的主要作用是在保证除主键列外,其他列值的唯一性。
Eg:qq varchar2(20) constraint QQ_UK unique
如果,UNIQUE 约束的列有值,则不允许重复,但是可以插入多个 NULL 值,即该列的空值可以重复。

oracle 中 char,varchar,varchar2 的区别区别:
1. CHAR 的长度是固定的,而 VARCHAR2 的长度是可以变化的, 比如,存储字符串“abc",对于 CHAR (20),表示你存储的字符将占 20 个字节(包括 17 个空字符),而同样的 VARCHAR2 (20)则只占用 3 个字节的长度,20 只是最大值,当你存储的字符小于 20 时,按实际长度存储。
2.CHAR 的效率比 VARCHAR2 的效率稍高。
3.目前 VARCHAR 是 VARCHAR2 的同义词。工业标准的 VARCHAR 类型可以存储空字符串,但是 oracle 不这样做,尽管它保留以后这样做的 权利。Oracle 自己开发了一个数据类型 VARCHAR2,这个类型不是一个标准的 VARCHAR,它将在数据库中 varchar 列可以存储空字符串的 特性改为存储 NULL 值。
如果你想有向后兼容的能力,Oracle 建议使用 VARCHAR2 而不是 VARCHAR。
何时该用 CHAR,何时该用 varchar2?
CHAR 与 VARCHAR2 是一对矛盾的统一体,两者是互补的关系.
VARCHAR2 比 CHAR 节省空间,在效率上比 CHAR 会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的‘以空间换效率’。
VARCHAR2 虽然比 CHAR 节省空间,但是如果一个 VARCHAR2 列经常被修改,而且每次被修改的数据的长度不同,这会引起‘行迁移’(Row Migration)现象,而这造成多余的 I/O,是数据库设计和调整中要尽力避免的,在这种情况下用 CHAR 代替 VARCHAR2 会更好一些。 char 中还会自动补齐空格,因为你 insert 到一个 char 字段自动补充了空格的,但是 select 后空格没有删除。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值