最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

设立MySQL数据表主键

来源:懂视网 责编:小采 时间:2020-11-09 14:02:25
文档

设立MySQL数据表主键

设立MySQL数据表主键:设置MySQL数据表主键 设置MySQL数据表主键: 使用primary key关键字创建主键数据列。被设置为主键列不允许出现重复的值,很多情况下与auto_increment递增数字相结合。如下SQL语句所示: pre Mysql create table bo
推荐度:
导读设立MySQL数据表主键:设置MySQL数据表主键 设置MySQL数据表主键: 使用primary key关键字创建主键数据列。被设置为主键列不允许出现重复的值,很多情况下与auto_increment递增数字相结合。如下SQL语句所示: pre Mysql create table bo

设置MySQL数据表主键 ? 设置MySQL数据表主键: ? ? 使用“primary key”关键字创建主键数据列。被设置为主键列不允许出现重复的值,很多情况下与“auto_increment”递增数字相结合。如下SQL语句所示: pre Mysql create ? table ?books(bookid? int (11)? NOT

设置MySQL数据表主键

?

设置MySQL数据表主键:

? ? 使用“primary key”关键字创建主键数据列。被设置为主键列不允许出现重复的值,很多情况下与“auto_increment”递增数字相结合。如下SQL语句所示:

  1. Mysql>create?table?books(bookid?int(11)?NOT?NULL?AUTO_INCREMENT?PRIMARY?KEY,bookname?varchar(50));?
  2. Mysql>insert?into?books(bookname)?values(“book1”),(“book2”),(“book3”);?
  3. Mysql>select?*?from?books;?


??? 若要修改列主键或类型,请参考 ALTER TABLE 语句。
设置MySQL数据表外键

??? 外键是设置当前表中的某一列与别一数据表中的主键列关联。主要目的是控制与外键表中的数据,保持数据一致性,完整性,也就是说:当前表中这一列的数据必须是关联外键列中的某一数据,而且相关联的两个数据列的类型必须相同;当关联外键列某一数据修改或删除时,将触当前表的某一项相应操作。可解发以下事件以及参数:
触发事件:on delete和on update
可设参数:cascade(跟随外键改动);
restrict(限制外表中的外键改动);
set Null(设空值);
set Default(设默认值);
no action [默认]

??? 设置关联的语句由[指定主键关键字:foreign key(列名)]和[引用外键关键字: references <外键表名>(外键列名)]组成。例如创建一个关于books的购物车数据表“gbooks”,其中“gbookid”与books表中的“bookid”创建外键关联。

  1. Mysql>create?table?gbooks(gid?int(11)?not?null?auto_increment?primary?key,gbookid?int(11),goodsum?int(4),foreign?key(gbookid)?references?books(bookid)?on?delete?cascade?on?update?cascade);?


??? 删除外键:

??? 首先,使用SHOW CREATE TABLE语句查看创建表描述。其中“CONSTRAINT”关键字后面有一个引号括起来的名称,它就是这个表外键的代表,是在创建外键时自动生成的名称,当然在创建的过程中可以直接用“CONSTRAINT”关键字自定义名称。其查看的完整语句如下:

  1. Mysql>show?create?table?gbooks;?

??? 这里代表外键的名称是“gbooks_ibfk_1”,目标找到了,再使用ALTER语句进行删除。

  1. Mysql>ALTER?TABLE?gbooks?DROP?FOREIGN?KEY?gbooks_ibfk_1;?


主键和外键的设置意义:

??? 主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。

??? 必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键和外键的结构是这个设计过程的症结所在。一旦将所设计的数据库用于了生产环境,就很难对这些键进行修改,所以在开发阶段就设计好主键和外键就是非常必要和值得的。

主键:

关系数据库依赖于主键—它是数据库物理模式的基石。主键在物理层面上只有两个用途:
1. 惟一地标识一行。
2. 作为一个可以被外键有效引用的对象。

基于以上这两个用途,下面给出了我在设计物理层面的主键时所遵循的一些原则:

1. 主键应当是对用户没有意义的。如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它没有什么用处,那就证明它的主键设计地很好。

2. 主键应该是单列的,以便提高连接和筛选操作的效率。

3. 永远也不要更新主键。实际上,因为主键除了惟一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。
注:这项原则对于那些经常需要在数据转换或多数据库合并时进行数据整理的数据并不适用。

4. 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。

5. 主键应当有计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了惟一标识一行以外的意义。一旦越过这个界限,就可能产生认为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。

外键是用来和其他表建立联系用的:这个表中的一列和另外一个表中的一列相同,为了让这两个表联系起来,就把其中一个表中的列设成外键,把另外一个表列设成主键,就实现了这两个表的关联。一个表可以有多个外键。但主键只能有一个。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

设立MySQL数据表主键

设立MySQL数据表主键:设置MySQL数据表主键 设置MySQL数据表主键: 使用primary key关键字创建主键数据列。被设置为主键列不允许出现重复的值,很多情况下与auto_increment递增数字相结合。如下SQL语句所示: pre Mysql create table bo
推荐度:
标签: 设置 数据库 主键
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top