1、关系:
主码=主键=主关键字
关键字=候选码
候选关键字=候选码中除去主码的其他候选码
2、理解:
主码(主键、主关键字):若一个关系有多个候选码,选择其中一个为主码。
候选码(关键字):某一属性组的值能唯一标识一个元组而其子集不能(去掉任意一个属性都不能标识该元组),则称该属性组为候选码(补充元组:表中的一行即为一个元组)。
主属性:候选码包含的属性(一个或多个属性)。
码:唯一标识实体的属性或属性组合称为码。
扩展资料:常见的数据库字段类型如下:
2、VARCHAR2可变长度字符串最大长度4000bytes,索引最大长度749。
3、NCHAR基于字符集NCHAR固定长度字符串的最大长度2000bytes。
4、Nvarchar2基于字符集的可变长度字符串最大长度4000bytes。
5、DATE日期(日-月-年)DD-MM-YY(HH-MI-SS)经过严格测试,无千虫问题。
6、LONG超长字符串的最大长度为2G(231-1),足以存储大多数标题。
7、RAW原始定长二进制数据最大长度2000字节可存储多媒体图像声音等。
8、LONG RAW 长原始可变长度二进制数据最大长度2G,同上。
9、BLOB二进制数据最大长度4G CLOB字符数据最大长度4G。
10、NCLOB基于字符集4G的nclb最大字符数据长度。
11、BFILE数据库外存储的BFILE二进制数据的最大长度为4G。
首先明白什么是主键:唯一标示表中的某行数据。1.无意义性:此处无意义是从用户的角度来定义的。这种无意义在一定程度上也会减少数据库的信息冗余。常常有人称呼主键为内部标识,为什么会这样称呼,原因之一在于“内部”,所谓内部从某种程度上来说就是指表记录,从大的范围来说就是数据库,如果你在设计的时候选择了对用户来说有意义的信息来作为主键,那么迟早会面对用户提出对这块信息进行更新的需求,那么你就违背了它应有的静态。
2.静态性:主键除了唯一地标识一条记录及外键的关联外,应不再考虑其他的意义,最理想的状态就是在产生后不再变动,所以在主键值产生后应考虑不对他进行更新等 *** 作。如果进行了更新 *** 作那么至少说明这块信息对于用户来说是有一定的意义,那么你就违背了应有的无意义性。(对数据进行整合等 *** 作时可能需要对主键进行处理,这样做是为了保证数据库的完整性——记录的唯一,不在此考虑范围之内。)
无意义性往往可以决定其静态性。
3.简短性:既包含主键组成字段数量要少,还包含主键中单个字段存储类型简短,一般采用整形;对于前者主要考虑的是外键关联的因素;对于后者主要考虑的是性能。主键的简短对表的关联便捷性及检索的性能有极大的帮助。
详细出处参考:http://www.jb51.net/article/30907.htm
CREATE TABLE `ecm_address` (`addr_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(10) unsigned NOT NULL DEFAULT '0',
`consignee` varchar(60) NOT NULL DEFAULT '',
`region_id` int(10) unsigned DEFAULT NULL,
`region_name` varchar(255) DEFAULT NULL,
`address` varchar(255) DEFAULT NULL,
`zipcode` varchar(20) DEFAULT NULL,
`phone_tel` varchar(60) DEFAULT NULL,
`phone_mob` varchar(60) DEFAULT NULL,
PRIMARY KEY (`addr_id`),
KEY `user_id` (`user_id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
你注意这段创建表的mysql语句,在最后一行有个:AUTO_INCREMENT=2,这个表示建好表之后,自动增长是从2开始的,如果=10,那么是从10开始的。明白了吧,有用的话请给分,谢谢!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)