sql命名规范
‘壹’ 那位有完整的数据库命名规范给一份,跪等
数据库设计过程中命名规范很是重要,命名规范合理的设计能够省去开发人员很多时间去区别数据库实体。
数据库物理设计包括:表设计,视图设计,存储过程设计,用户自定义函数设计等等。
1、 表设计命名规范:表使用t开头最好能将表根据属性分类并作好编号。
如:编码表可写为tBM001Something t为表开头,BM为业务类型,001为该类别中的第几个表something是表的名称注释。
2、 视图设计命名规范:视图设计过程中使用v开头,视图命名以制作视图的主表为准或是以视图的实现功能为准。
如:上述tBM001Something 为主表制作的视图 可取名vBM001Something
或者vGetSomeThingInfo等。
3、存储过程命名规范:用户自定义存储过程使用p开头以其实现功能命名,
如:pGetSomethingInfo
4、
存储过程命名规范:用户自定义存储过程使用f开头以其实现功能命名,
如:fGetSomethingInfo
此外在制作视图存储过程用户自定义函数过程中,注意写好注释。
还有
一.实体和属性的命名
1. 常用单词已经进行了缩写,在命名过程当中,根据语义拼凑缩写即可。注意,由于ORCAL数据库会将字段名称统一成大写或者小写中的一种,所以要求加上下划线
举例:
定义的缩写 Sales: Sal 销售;
Order: Ord 订单;
Detail: Dtl 明细;
则销售订单名细表命名为:Sal_Ord_Dtl;
2. 如果表或者是字段的名称仅有一个单词,那么建议不使用缩写,而是用完整的单词。
举例:
定义的缩写 Material Ma 物品;
物品表名为:Material, 而不是 Ma.
但是字段物品编码则是:Ma_ID;而不是Material_ID
3. 所有的存储值列表的表前面加上前缀Z
目的是将这些值列表类排序在数据库最后。
4. 所有的冗余类的命名(主要是累计表)前面加上前缀X
冗余类是为了提高数据库效率,非规范化数据库的时候加入的字段。或者表
5. 关联类通过用下划线连接两个基本类之后,再加前缀R的方式命名,后面按照字母顺序罗列两个表名或者表名的缩写。
关联表用于保存多对多关系。
如果被关联的表名大于10个字母,必须将原来的表名的进行缩写。如果没有其他原因,建议都使用缩写。
举例:表Object与自身存在多对多的关系,则保存多对多关系的表命名为:R_Object;
表 Depart和Employee;存在多对多的关系;则关联表命名为R_Dept_Emp
6. 每一个表都将有一个自动ID作为主健,逻辑上的主健作为第一组候选主健来定义,如果是数据库自动生成的编码,统一命名为:ID;如果是自定义的逻辑上的编码则用缩写加“ID”的方法命名。
举例:销售订单的编号字段命名:Sal_Ord_ID;如果还存在一个数据库生成的自动编号,则命名为:ID。
7. 所有的属性加上有关类型的后缀,类型后缀的缩写定义见文件《类型后缀缩写定义》,注意,如果还需要其它的后缀,都放在类型后缀之前。
二.关系的命名
关系的命名基本上按照;如有特殊情况,可以灵活处理.
[must/may/can/should][verb/verb+prep][a/many/exatly num][or a/many]的结构命名
三.域的命名
四.触发器的命名
五.有关于默认的几点说明
1. 严格依赖关系的主细表,主表的后缀Main可以不写。
2. 数据类型是文本的字段,类型后缀TX可以不写。
3. 有些类型比较明显的字段,可以不写类型后缀。
4. 非常明显的关系,可以不写。
‘贰’ sql语句 重命名表
EXEC是调用或者执行的意思, SP_RENAME是SQL Server 2005数据库中内置的一个存储过程,他的功能就是重命名。 所谓存储过程就是预编译好的一段可执行的,有着特定功能的一段SQL语句的集合。 就像平时生活中,单个的一句话就是一句话,但是多句有联系的话放在一起就是一个文章了。 select * from 表,就是一个单个的SQL语句,但是多个有联系的SQL语句通过一定的语法放在一起,就是一个存储过程了。这样说,你可以理解了吗?
‘叁’ sql怎么创建表
1.1 创建表方法
创建表是指在已存在的数据库中建立新表。这是建立数据库最重要的一步,是进行其他操作的基础。
1.1.1 创建表的语法形式
CREATE TABLE 表名 (
属性名 数据类型 [ 完整性约束条件 ],
属性名 数据类型 [ 完整性约束条件 ],
......
属性名 数据类型 [ 完整性约束条件 ],
)[ 表类型 ] [ 表字符集 ];
SQL 是不区分大小写。下面将会具体介绍SQL,这种创建表是通过什么方式起来的效果怎么样?
命名规范:
1. 命名富有意义 ( 英文或英文组合 )
2. 自定义名称使用小写
3. MySQL 语句使用大写
CREATE TABLE IF NOT EXISTS data_house(
id INT,
name VARCHAR(20);
gender BOOLEAN,
) Engine = MyISAM;
上面 SQL 语句的含义是:如果不存在 text1 表,就创建它,包含 3 个字段 id 、 name 和 gender ,它们的类型分别是整形、字符型和布尔型,创建的表的类型是 MyISAM 。
完整性约束条件表
PRIMARY KEY 标识该属性为该表的主键,可以唯一的标识对应的元组
FOREIGN KEY 标识该属性为该表的外键,是与之联系的某表的主键
NOT NULL 标识该属性不能为空
UNIQUE 标识该属性的值是唯一的
AUTO_INCREMENT 标识该属性的值自动增加,这是 MySQL 的 SQL 语句的特色 (null,0)
DEFAULT 标识该属性设置默认值 (not null defualt 0,not null default 0.0,not null default '')
1.1.2 设置表的主键
主键是表的一个特殊字段。该字段能惟一地标识该表中的每条信息。主键和记录的关系,如同身份证和人的关系。主键用来标识每个记录,每个记录的主键值都不同。身份证是用来标明人的身份,每个人都具有惟一的身份证号。设置表的主键指在创建表时设置表的某个字段为该表的主键。
主键的主要目的是帮组 MySQL 以最快的速度查找到表中的某一条信息。
主键必须满足的条件:
1. 主键必须是唯一的,表中任意两条记录的主键字段的值不能相同;
2. 主键的值是非空值;
3. 主键可以是单一的字段,也可以是多个字段组合。
1. 单字段的主键:
CREATE TABLE student1 (
stu_id INT PRIMARY KEY ,
stu_name VARCHAR(20) NOT NULL,
stu_gender BOOLEAN
) Engine = InnoDB;
2. 多字段主键 :
CREATE TABLE student2 (
stu_id INT,
course_id INT,
grade FLOAT,
PRIMARY KEY( stu_id, course_id )
)Engine = InnoDB;
1.1.3 设置表的外键
外键是表的一个特殊字段。如果字段 sno 是一个表 A 的属性,且依赖于表 B 的主键。那么,称表 B 为父表,表 A 为子表, sno 为表 A 的外键。通过 sno 字段将父表 B 和子表 A 建立关联关系。设置表的外键指在创建表设置某个字段为外键。
设置外键的原则:必须依赖于数据库中已存在的父表的主键;外键可以为空值。
外键的作用 : 是建立该表与其父表的关联关系。父表中删除某条信息时,子表中与之对应的信息也必须有相应的改变。例如, stu_id 就 student 表的主键, stu_id 是 grade 表的外键。当 stu_id 为 '123' 同学退学了,需要从 student 表中删除该学生的信息。那么, grade 表中 stu_id 为 '123' 的所有信息也应该同时删除。
CONSTRAINT 外键别名 FOREIGN KEY ( 属性 1.1, 属性 1.2... 属性 1.n);
REFERENCES 表名 ( 属性 2.1, 属性 2.2,..., 属性 2.n)
CREATE TABLE student3 (
id INT PRIMARY KEY,
stu_id INT,
course_id INT,
# 设置外键
CONSTRAINT C_fk FOREIGN KEY (stu_id, course_id) REFERENCES student2(stu_id, course_id)
) Engine = InnoDB;
1.1.4 设置表的非空约束
非空性是指字段的值不能为空值 (NULL) 。非空约束将保证所有记录中该字段都有值。如果用户新插入的记录中,该字段为空值,则数据库系统会报错。例如,在 id 字段加上非空约束, id 字段的值就不能为空。如果插入记录的 id 字段的值为空,该记录将不能插入。设置表的非空约束是指在创建表时为表的某些特殊字段加上 NOT NULL 约束条件。设置非空约束的基本语法规则如下:
属性名 数据类型 NOT NULL