oracle怎么标准化,oracle支持的sql标准

存为标准化查询语句 oracle

PL/SQL是 非标准的SQL语句

成都网站制作、成都做网站介绍好的网站是理念、设计和技术的结合。成都创新互联公司拥有的网站设计理念、多方位的设计风格、经验丰富的设计团队。提供PC端+手机端网站建设,用营销思维进行网站设计、采用先进技术开源代码、注重用户体验与SEO基础,将技术与创意整合到网站之中,以契合客户的方式做到创意性的视觉化效果。

Oracle同样也支持标准的SQL语句写法,

写SQL的时候,注意尽量不要 使用Oracle特有的 函数,关键字 如:start with ,connect by,|| ,(+)等

如何使用oracle正则表达式截取字符串

以前做过,用专业的话叫做数据清洗。这样的数据往往是不同人员/在不同时间录入的。

我的思路是这样:

第一步、去掉非关键字,保留关键字。

拿“中国工商银行xxx支行”来说录入的名称可能存在很多情况比如“工商银行xxx支行”/“工行xxx支行”等,

针对这些情况我们要排除非关键字对数据的干扰,以”中国“开始的去掉”中国“二字,以”支行“结尾的去掉”支行“二字。

第二步、同义词转换。比如”工商银行“=”工行“,”农业银行“=”农行“等。

第三步、数据标准化。将不标准的名称更改成标准的名称。

在清洗过程中,可以一边做一边,使用group by语句统计名称的个数,观察数据。

这个是一个体力活,其中还可能存在错别字等情况,反正很烦。

什么叫Oracle的规范化的概念

设计规范

规范约定

1. 遵守数据的设计规范3NF 规定

· 表内的每一个值都只能被表达一次。

· 表内的每一行都应该被唯一的标识(有唯一键)。

· 表内不应该存储依赖于其他键的非键信息。

2. 实体表都必须包含四个字段:编号(ID)、代码(Code)、创建人(Created By)、创建时间(Creation Time)、修改人(Modified By)、修改时间(Modification Time)、删除标志(Delete Status)。其含义如下:

ü 编号是系统内的唯一标识

ü 代码是客户为这个实体的编码,这个字段看需要确定是否保留

ü 创建人是是指数据库记录创建人

ü 创建时间是指数据库记录创建时间,默认为SYSDATE

ü 修改人是是指数据库记录修改人

ü 修改时间是指数据库记录修改时间,默认为SYSDATE

ü 删除标志是本条记录是否已删除的标志(0:没有删除;1:已经删除),数据中的数据不做真正删除,只设置这个标志

这五个字段的命名规则如下

ü 实体名+字段名称,如user_id、user_code、created_by、creation_time、modified_by 、modification_time 、delete_status。

ü 这五个字段的类型和长度规则如下

n 编号 INTEGER

n 代码 VARCHAR2(30)

n 创建人 INTEGER

n 创建时间DATE

n 修改人 INTEGER

n 修改时间DATE

n 删除标志 CHAR(1)

2字段规范

一行记录必须表内唯一,表必须有主键。

枚举类型使用 NUMBER,且需要说明枚举类型的各个不同取值的含义

ID结尾的字段为仅由数字组成,Code结尾的字段为仅由字母或数字组成

用CHAR(1)表示布尔值的取大写:“Y”,“N”。

应尽量使用VARCHAR2代替CHAR类型;

VARCHAR(2)最多4000字符;

DATE精确到秒,而非天;

使用CLOB代替LONG,BLOB代替LONG RAW;

使用NUMBER数据类型时请给定长度,例如:NUMBER(5,2) 表示整数部分最大3位,小数部分为2位;

使用规范

1综合

如果开发过程中需要建立索引,需要提交书面的更改请求,说明所需索引的定义(名称、字段列表、顺序、索引类型)以及建立的理由。数据库管理员统一维护索引并将提交的请求更改。

数据库各表的初始数据(包含各代码表、配置表)需要提交给数据库管理员。

不得使用触发器。

涉及到数据库多表数据的更改(Insert/Delete/Update)必须使用数据库事务进行控制,并且必须有完整事务开始和提交/回滚机制。不能使用范围事务

尽量避免Union操作的使用,需要使用时,请向数据库管理员咨询使用Union操作的影响。

SQL语句和存储过程,尽量使用PL/SQL Develper的代码美化器美化。

属于ORACLE的关键字大小,表名、列名等小写。

2查询

在表查询中,一律不要使用* 作为查询的字段列表,需要哪些字段必须显式写明

在表查询中,必须有Where条件,除非此表为非增长表

在表查询中,一次最多返回的记录条数不要超过1000条或记录内容不要大于1MB的数据。

在表查询中,作Order By排序时,优先使用主键列,索引列

多表关联查询时,优先使用Where条件,再作表关联,并且需要保证被关联的字段需要有索引。

避免在WHERE字句中对列施以函数:

错误:

SELECT service_id,service_name 

FROM service_promotion

WHERE TO_CHAR(gmt_modified,’yyyy-mm-dd’) = ‘20001-09-01’;

正确:

SELECT service_id,service_name 

FROM service_promotion

WHERE gmt_modified

= TO_DATE(‘2001-9-01’,’yyyy-mm-dd’)

AND gmt_modified

TO_DATE(‘2001-9-02’,’yyyy-mm-dd’);

避免使用数据库的类型自动转换功能:

错误:

SELECT category_id, category_name FROM category

WHERE category_id = ‘123’; -- id’s type is number

正确:

SELECT category_id, category_name FROM category

WHERE category_id = 123; -- id’s type is number

4删除

删除记录时,必须有Where唯一条件

当有主从表时,要先删除从表记录,在删除主表记录

5修改

修改记录时,必须有Where唯一条件

oracle数据库怎么修改编码格式utf-8

以下内容为固定写法,可以修改数据库编码格式。

第一步:通过系统管理员权限登录数据库。

sql conn / as sysdba;

第二步:关闭数据库和实例连接。

sql shutdown immediate;

database closed.

database dismounted.

oracle instance shut down.

第三步:启动数据库实例连接。

sql startup mount;

oracle instance started.

total system global area 135337420 bytes

fixed size 452044 bytes

variable size 109051904 bytes

database buffers 25165824 bytes

redo buffers 667648 bytes

database mounted.

第四步:限制其它用户连接数据库使用资源。

sql alter system enable restricted session;

system altered.

第五步:设置作业进行为0个。

sql alter system set job_queue_processes=0;

system altered.

第六步:设置启动时间管理器的数量为0

sql alter system set aq_tm_processes=0;

system altered.

第七步:打开数据库连接

sql alter database open;

database altered.

第八步:修改需要的编码格式

sql alter database character set internal_use GBK;

第九步:关闭连接。

sql shutdown immediate;

第十步:启动oracle进程。

sql startup;

备注:常用的有:UTF-8,GBK 。

UTF-8:是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。


分享名称:oracle怎么标准化,oracle支持的sql标准
本文路径:http://hbruida.cn/article/phhhgs.html