日期:2014-05-16  浏览次数:20336 次

规范 db1
3, 删除字段
与增加字段类似,步骤相反。删除字段的时候必须记录下对应的字段属性,方便回滚。考虑字段约束的问题
4, 修改字段大小,类型,名称
短的改成长的,类型不变的话,无限制。
alter table mybook modify ccc varchar2(20);
类型修改:
alter table mybook modify ccc number(20);
长的改成短的,或者更改类型,字段必须为空。

修改字段名称alter table mybook rename column ccc to bbb;
改回来       alter table mybook rename column bbb to ccc;
5, insert 和delete 相互对应。要具体定位到某条唯一的记录。
一条sql语句修改一条记录。
6, update回来,要能update回去(不容易回滚,操作要慎重)
选择某个不变的字段(如主键)放在where条件中,还是要定位到某条唯一的记录,一条sql语句修改一条记录
7, rename表(考虑约束关联)
  alter table mybook rename to yourbook;
回滚:alter table yourbook rename to mybook;
8, 修改视图
如果视图是公共的,要考虑多人同时修改同一视图的情形。回滚语句同样需要考虑。
9, 修改了表结构之后,要重新编译下所有的存储过程。看是否有影响。
六、 小细节
1, 命名不能用拼音(及其猥琐)
2, 关键字要另起一行
select column1, column2, column3
from t_tablename
where column4 = 'value';
3, select语句要列出具体字段名,严禁使用select * 方式。
4, insert语句要列出具体字段名,严禁使用insert into tablename values ( … )方式,应使用insert into tablename ( … ) values ( … )方式。
5, 涉及到多表连接的SQL语句中(大于1个表),要为每个表指定别名
select a.column1, b.column1
from t_table1 a, t_table2 b
where a.column2 = b.column2;
6, 判断是否为“空”只能用is null或is not null,严禁使用比较运算符进行判断
7, 对于分页SQL,如果带有order by语句,要确保排序的唯一性
8, 禁止对varchar(2000)之类的大字段值进行order by、distinct、group by、union等会引起排序的操作