4sql编码规范.doc_第1页
4sql编码规范.doc_第2页
4sql编码规范.doc_第3页
4sql编码规范.doc_第4页
4sql编码规范.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQL编码规范文件编号发布日期 共5页目 录1. 说明2. 大小写规定3. 书写结构4. SQL语句的其它说明版本号:第3版 受控印章:受控新发布修改状态修该页码修改者修改时间生效日期/0/2004.06.301 说明n SQL即结构化查询语言,本规范适合于所有SQL语言的书写。包括客户端SQL语句和服务器SQL语句的书写。n 有关数据库与字段命名规范参考数据表与字段命名规范2 大小写规定n SQL语句要求将SQL保留字全部采用大写,其余部分如字段名、表名等采用其自然定义的大小写格式,推荐采用大写开头字符的方式。n SQL语句中所用函数或系统常数用大写表示例如:UPDATE delegate SET d_lastname=SUBSTR(d_lastname,1,5), d_date=TRUNC(SYSDATE) WHERE d_lastname LIKE H%;3 书写结构SQL语言基本上分成三类,下面逐一说明。n 数据库对象数据定义语言n 数据访问n 数据操纵 在SQL语句中,为增强可读性,意义独立的关键字处进行分行,并进行缩排。下面举例说明。注意:例子中是以服务器端的SQL语句为例来说明的,在客户端的写法有所区别,但书写结构一样。如在VB中客户端的语句是如下写法。dbs.Execute INSERT INTO Employees _& (FirstName,LastName, Title) _& VALUES _& (Harry, Washington, Trainee); 对于条件嵌套复杂的语句,需要在容易引起误会的逻辑表达式中加入适当的括号对体现层次,增强语句可读性。但过多的括号又将使可读性下降,这需要程序员根据具体情况进行掌握。如:对于如下的WHERE条件表达式:SELECT WHERE NOT Field1 AND Field2 field3在这里,最好用加上括号避免歧义,即改为:NOT (Field1 AND Field2 field3)或NOT (Field1 AND (Field2 field3)但不要象下面这样加上许多不必要的括号,使其阅读困难。(NOT (Field1) AND (Field2) (field3) 由于SQL语句较多,不可能一一列举,这里只列出一些例子,从这些例子中足以看出其书写结构的原则:便于理解,结构清晰明了。3.1数据库对象数据定义语言 如:*创造表空间CREATE TABLESPACE Tabespace_nameDATEFILE FilespecDEFAULT STORAGE StorageONLINE*修改表空间ALTER TABLESPACE Tabespace_nameADD DATEFILE Filespec*删除表空间DROP TABLESPACE Tabespace_name*创建模式CREATE SCHEMA AUTHORIZATION nameCREATE TABLE commands*创建表CREATE TABLE CUSTOMERS_NEW ASSELECT cust_no,cust_name,cust_sddress,Cust_state,cust_phoneFROM CUSTOMERS;*创建视图CREATE OR REPLACE VIEW view_name ASSELECT * FROM oldtable WHERE oldfieldname=a wordWITH READ ONLY;3.2数据访问*创建同义词CREATE PUBLIC SYNONYM customersFOR deme.customer*删除同义词DROP PUBLIC SYNONYM customers*授权GRANT SELECT,INSERTON customersTO PUBLIC WITH GRANT OPTION3.3数据操纵*查询写法1SELECT t1.f1,t1.fn,t2.f1,t2.f2 FROM t1,t2 WHERE t1.key1=t2.key2AND (t1.fi1000 OR t1.fi500);*查询写法2SELECT d.dept_name,Count(e.emp_id) FROM emp e, dept d WHERE e.dept_no(+)=d.dept_noAND (e.salary 100) OR e.salary =10;*删除DELETE FROM dept WHERE dept.dept_no IN (SELECT emp.no FROM emp WHERE );*插入INSERT INTO table1 (field1,field2,field3,) VALUES (values1,values2,values3,);*修改UPDATE delegate SET d_lastname=SUBSTR(d_lastname,1,5), d_date=TRUNC(SYSDATE) WHERE d_lastname LIKE H%;4 SQL语句的其它说明4.1SQL语句不宜太长,否则易读性将受到严重影响。4.2将过长的SQL语句进行缩短的办法n 使用多个中间SQL语句,减少SQL嵌套层数。这类似于程序模快化方法。 数据库结构设计得不好,可能导致某些SQL查询语句长度太长才能得到结果。 在设计数据库时,首先按第三范式进行规范化设计,然后要进行非规范化处理,就是基于便于处理(这可能少量增加了数据库的空间,但可能是值得的,因为计算机外存的价格很低,而设计人员的工资可不低。当然这需要在数据库设计时进行权衡。参考数据表与字段命名规范 使用临时表或临时视图存放中间查询结果,有利于缩短SQL语句,使其便于阅读理解。 当然,这是用时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论