Oracle建表规范

一、oracle建表时表名和字段名推荐做法是不要加引号,且名称大写。(执行sql语句时,oracle会将名称转为大写,这点可以从视图/函数/建表数据字典中看出)。

 

二、加上引号支持大小写,但容易被人所忽略,反而造成许多不必要麻烦。

 

如下图:

  1. C1和C2建表时加了"",区分大小写,所以"test"和"Test"是不同表。
  2. C3和C4建表时加"",区分大小写,所以C4建名称为test的表时报错。
  3. 执行查询sql时,也需要根据情况看是否加上"",S2和S3查的不是同一个表。(这样容易造成不必要麻烦)

 

尽管Oracle是支持大小写的对象名称,但是不推荐使用这种做法,理由很简单:

1.操作太麻烦,每次使用都要加“”。

2.容易混淆,从而导致某些不安全因素。

 

如果使用powerdesigner,建议通过设置把引号都去掉。

数据库->Edit Current DBMS->General->Script->Format->CaseSensitivityUsingQuote。

 

1、命名规范

表名和列名:

  • 必须以字母开头
  • 必须在 1–30 个字符之间
  • 必须只能包含 A–Z, a–z, 0–9, _, $, 和 #
  • 必须不能和用户定义的其他对象重名
  • 必须不能是Oracle 的保留字(所有的保留字:select * from v$reserved_words order by keyword asc;)
  • Oracle默认存储是都存为大写

SQL

为了构建易读易编的有效语句,其规则和准则如下:

  • SQL语句是不区分大小写的
  • SQL语句可以是一行,也可以是多行
  • 关键字不能在两行之间一分为二或缩写
  • 子句通常放在单独的行中,这样可以增强可读性并且易于编辑
  • 合理使用缩进 ( 为了增强可读性)

2、数据类型

字段类型

中文说明

限制条件

其它

CHAR

固定长度字符串

最大长度2000 bytes

 

VARCHAR2 

可变长度的字符串

最大长度4000 bytes

varchar2中文占2字节,英文占1字节。

NVARCHAR2

根据字符集而定的可变长度字符串

 最大长度4000 bytes

Nvarchar2中英文占一样的字节,具体占多少字节因字符集而定。

DATE

日期(日-月-年),时间可有可无

YYYY-MM-DD(HH24:MI:SS)

 

TIMESTAMP(6)

时间戳 (年月日时分秒毫秒)

YYYY-MM-DD HH24:MI:SS.ff

与DATE数据类型相比,TIMESTAMP类型可以精确到微秒,微秒的精确范围为0-9,默认为6

LONG  

超长字符串

最大长度2G

足够存储大部分著作

RAW

固定长度的二进制数据

最大长度2000 bytes

可存放多媒体图象声音等

LONG RAW 

可变长度的二进制数据

最大长度2G

同上

BLOB 

二进制数据

最大长度4G

 

CLOB

大字符数据

最大长度4G

保存单字节或多字节字符数据,最大值为4G

NCLOB 

根据字符集而定的字符数据

最大长度4G

保存Unicode编码字符数据,最大值为4G。

BFILE 

存放在数据库外的二进制数据

最大长度4G

 

NUMBER(P,S)

数字类型

P为所有有效数字的位数,S为小数位

oracle底层只有number为类型并没有decimal和integer这两个类型
这两个类型只为oracle和其它数据库之间方便迁移的。

DECIMAL(P,S) 

数字类型

P为所有有效数字的位数,S为小数位

 

INTEGER

整数类型

小的整数

 

FLOAT 

浮点数类型

NUMBER(38),双精度

存储近似值

REAL

实数类型

 NUMBER(63),精度更高

存储近似值

 

Note:绿色是常用的

 

posted @ 2024-02-04 17:30  CharyGao  阅读(78)  评论(0编辑  收藏  举报