社区
MS-SQL Server
帖子详情
是不是从其它表的某个字段取值,一定要建PK?
gongxicn
2003-11-07 04:11:28
是不是从其它表的某个字段取值,一定要建PK?
PK的建立有什么条件,要注意什么
...全文
34
3
打赏
收藏
是不是从其它表的某个字段取值,一定要建PK?
是不是从其它表的某个字段取值,一定要建PK? PK的建立有什么条件,要注意什么
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tuw
2003-11-07
打赏
举报
回复
另外也可再加外连接
wzh1215
2003-11-07
打赏
举报
回复
如果是取一条记录中的字段,要有PK,因为有了PK才能找到唯一的一条记录。
PK的建立要有意义!
txlicenhe
2003-11-07
打赏
举报
回复
1:不一定啊
2: 建PK的字段必须是唯一的。
eg: 用 id作PK,则id不能有重复值
用 name + deptId 两个字段作PK,则这两个字段一起在表中不能有重复值。
SQLServer数据库设计规范.txt
SQLServer数据库设计规范 作者:佚名 厚朴教育来源:网络 点击数:1446 更新时间:2008-12-2 1 相关的设计规范: 1.1 采用有意义的
字段
名 尽可能地把
字段
描述的清楚些。当然,也别做过头了,比如CustomerShippingAddressStreetLine1 虽然很富有说明性,但没人愿意键入这么长的名字,具体尺度就在你的把握中。每个单词的首个字母要求用大写!!!不要用下划线来连接每个单词. 1.2 遵守3NF 标准3NF 规定: A.
表
内的每一个值都只能被
表
达一次。 B.
表
内的每一行都应该被唯一的标识(有唯一键)。 C.
表
内不应该存储依赖于其他键的非键信息。 1.3 小心保留词 要保证你的
字段
名没有和保留词、数据库系统或者常用访问方法冲突,比如,写的一个ODBC 连接程序里有个
表
,其中就用了DESC 作为说明
字段
名。后果可想而知!DESC 是DESCENDING 缩写后的保留词。
表
里的一个SELECT *语句倒是能用,但我得到的却是一大堆毫无用处的信息。 1.4 保持
字段
名和类型的一致性 在命名
字段
并为其指定数据类型的时候
一定
要保证一致性。假如
字段
在某个
表
中叫做"AgreeMentNumber",你就别在另一个
表
里把名字改成"ref1"。假如数据类型在一个
表
里是整数,那在另一个
表
里可就别变成字符型了。记住,你干完自己的活了,其他人还要用你的数据库呢。 2 命名规则: 2.1 数据库(Database)的定义 数据库名称 = 数据库内容标识(首字大写) 2.2
表
(Table)的定义 命名应尽量反映存储的数据内容。
表
名前缀:以该
表
及与该
表
相关联的一系列
表
的内容而得到一个代
表
统一的标识
表
名称 =
表
名前缀 +
表
内容标识(首字大写) 如ClientInfo相关联的一系的
表
以ci作为前缀, 即有
表
名:ciHistory,ciContact,ciBusiness 2.25
字段
(Field)的定义
字段
是数据库中的用途最广泛的,它的类型非常多,所以必须加类型前缀来标示它的类型。
字段
名称 =
字段
类型前缀 +
字段
内容标识(首字大写) 2.2视图名 视图的名称 = "vw" + 视图内容标识(首字大写) 如 vUserPerm 2.3触发器名 触发类型触发标识 ----------------------------------- Insert i Delete d Update u 触发名= "tr" + 触发标识 + 相应的
表
名 如:triClient,trdClient。 2.4存储过程名 存储过程功能存储过程功能前缀 ---------------------------------------- 添加a 更新u 删除d 查询或其它o 存储过程名称 = 存储过程功能前缀 + 存储过程内容标识(首字大写) 如 spoChkUserPerm 2.5变量名 每个单词的首个字母为大写,如@EmployeeName。 2.6命名中其他注意事项 禁止使用中文命名!!!!! 命名都不得超过30个字符的系统限制,变量名的长度限制为29(不包括标识字符@)。 命名都采用英文字符,每个单词的首个字母要大写 2.7 SQL语句的编写规范 数据库中存储过程和触发器中涉及大量的SQL语句,对SQL语句的编写规范如下: 关键字大写:在SQL语句的编写中,凡是SQL语句的关键字一律大写,如:SELECT、ORDER BY、 GROUP BY、 FROM、WHERE、 UPDATE、 INSERT INTO、 SET、 BEGIN、 END ...... 2.8 Rule ru+Rule标识 2.9 主键
pk
+
表
名+主键标识 2.10 外键 fk+
表
名+主
表
名+外键标识 2.11 索引 idx+
字段
标识 2.12 Default df+Default标识 3 编程结构和描述 SQL SERVER系统中,一个批处理是从客户传给服务器的一个完整的包,可以包含若干条SQL语句。批处理中的语句是作为一组去进行语法分析、编译和执行的。触发器、存储过程等数据对象则是将批处理永久化的方法。 3.1注释 注释可以包含在批处理中。在触发器、存储过程中包含描述性注释将大大增加文本的可读性和可维护性。本规范建议: 1、注释以英文为主。 实际应用中,发现以中文注释的SQL语句版本在英文环境中不可用。为避免后续版本执行过程中发生某些异常错误,建议使用英文注释。 2、注释尽可能详细、全面。 创建每一数据对象前,应具体描述该对象的功能和用途。 传入参数的含义应该有所说明。如果
取值
范围确定,也应该一并说明。
取值
有特定含义的变量(如boolean类型变量),应给出每个值的含义。 3、注释语法包含两种情况:单行注释、多行注释 单行注释:注释前有两个连字符(--)
sql查询练习题
sql 查询语句 练习题
数据库五大约束使用方法
五大约束 —-主键约束 (Primay Key Constraint) 性,非空性 —-约束 (Unique Constraint) 性,可以空,但只能有一个 —-检查约束 (Check Constraint)) 对该列数据的范围、格式的限制(如:年龄、性别等) —-默认约束 (Default Constraint) 该数据的默认值 —-外键约束 (Foreign Key Constraint) 需
要建
立两
表
间的关系并引用主
表
的列 五大约束的语法示例 —-添加主键约束(将s
关于sqlserver2008r2如何将
表
中的某个
字段
的值替换成
表
中的另一个
字段
的值
有
表
Function功能
表
: CREATE TABLE PlatformFunction( [id] [bigint] IDENTITY(1,1) NOT NULL, [parent_id] [bigint] NULL, [function_name] [nvarchar](20) NULL, [function_type] [nvarchar](20) NULL...
MySQL创建
表
时的约束(Constraint)
创建
表
时的约束什么是约束?常见的约束有那些?1:非空约束:not null2:唯一性约束(unique)3:主键约束(primary key)4:外键约束(foreign key)*外键值是否可以为null?*外键
字段
引用其他
表
的某个
字段
的时候,被引用的
字段
必须是主键吗? 什么是约束? 在创建
表
的时候,可以给
表
的
字段
添加相应的约束,添加约束的目的是为了保证
表
中数据的合法性,有效性,完整性。 常见的约束有那些? 非空约束(not null):约束的
字段
不能为null 唯一约束(unique):约束的
字段
不能重
MS-SQL Server
34,838
社区成员
254,632
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章