数据库开发学习遇到的疑惑 day1

一 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。


二  数据库没有对约束设置名称如何删除约束

1、创建数据库,创建主键约束;

[sql]  view plain  copy
  1. --CREATE RELATION TABLE AND ADD PRIMARY KEY  
  2. CREATE TABLE CATEGORY  
  3. (  
  4.     CATEGORYID VARCHAR2(10),  
  5.     CATEGORYNAME VARCHAR2(30),  
  6.     PRIMARY KEY(CATEGORYID)  
  7. );  



因为删除约束条件需要约束的名称,这样虽然有主键约束但是没有约束名称,是不能删除的。

你创建主键的时候没有对主键进行命名,Oracle自动分配了一个约束名称,但约束名称不是column_name(列名称)。

查找ORACLE系统的约束表  USER_CONS_COLUMNS;

[sql]  view plain  copy
  1. SELECT * FROM USER_CONS_COLUMNS;  


找到对应表的对应约束的名称;


然后就可以使用修改表语句删除约束了;

ALTER TABLE CATEGORY DROP CONSTRAINT CONS134218750;

[sql]  view plain  copy
  1. ALTER TABLE CATEGORY DROP CONSTRAINT CONS134218750;  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值