精华内容
下载资源
问答
  • 一张表有两个主键
    千次阅读
    2021-09-15 22:20:55

    关系型数据库中,用户在建表时,只能有一个主键,不可能有多个主键的,但有时候我们碰到关系S和我们的关系C存在多对多的联系,在关系数据库中,多对多联系必须建立一个关系模式,而该模式的码是联系两端实体的码加上联系的属性构成的,这时候就会出现一张表中有多个主键,我们称之为联合主键,多个字段放在一起作为作为一张表的主键主键的主键的作用是保证数据的唯一性和完整性,同时通过主键检索表能够增加检索速度。

    Create TABLE SC(
    Sno char(6) ,
    Pno  char(6) ,
    Status char(8),
    Qty    NUMERIC(9),
    primary key(Sno,Pno),
    foreign key(Sno) REFERENCES S(Sno),
    foreign key(Pno) REFERENCES P(Pno)
    
    )engine=INNODB  charset=utf8;

    更多相关内容
  • 一张表可以多少个主键

    千次阅读 2021-01-19 05:33:29
    转自:http://blog.csdn.net/for12/article/details/49300843今天在共工作,做老项目维护的时候无意中发现一张表居然个主键。吓死宝宝了,然后尝试着建表建主键,但是都不能成功。难道是我写的问题,最后通过查...

    转自:http://blog.csdn.net/for12/article/details/49300843

    今天在共工作,做老项目维护的时候无意中发现一张表居然有三个主键。吓死宝宝了,然后尝试着建表建主键,但是都不能成功。

    doubt.gif

    难道是我写的有问题,最后通过查资料总终于解决了。

    1、数据库的每张表只能有一个主键,不可能有多个主键。

    2、所谓的一张表多个主键,我们称之为联合主键。

    注:联合主键:就是用多个字段一起作为一张表的主键。

    3、主键的主键的作用是保证数据的唯一性和完整性,同时通过主键检索表能够增加检索速度。

    下面聊聊怎么创建联合主键:

    1、GUI中同时选中多列,点击设置为主键。

    2、sql语句将多列设置为主键:

    一种是在建表时就写出,语句如下:

    Create Table 表名 (字段名1 Int Not Null,

    字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),

    字段名3…………

    字段名N………… )

    另一种是在建表后更改,语句如下:

    ALTER TABLE 表名 WITH NOCHECK ADD

    CONSTRAINT [PK_表名] PRIMARY KEY  NONCLUSTERED

    (

    [字段名1],

    [字段名2]

    )

    通过以上两种方式就解决了联合主键的问题。

    展开全文
  • SELECT TF_SCHOOL_DORMITORY_INFO.*, tsi.STAFF_NAME “ceoName”, ts_staff_info.STAFF_NAME AS “houseMasterName” FROM ( SELECT * FROM ts_staff_info ) tsi right join TF_SCHOOL_DORMITORY_INFO ON tsi.STAFF...

    在这里插入图片描述
    SELECT
    TF_SCHOOL_DORMITORY_INFO.*,
    tsi.STAFF_NAME “ceoName”,
    ts_staff_info.STAFF_NAME AS “houseMasterName”
    FROM
    ( SELECT * FROM ts_staff_info ) tsi right join TF_SCHOOL_DORMITORY_INFO ON tsi.STAFF_ID = TF_SCHOOL_DORMITORY_INFO.STAFF_ID left join ts_staff_info ON TF_SCHOOL_DORMITORY_INFO.RESIDENT_ASSISTANT = ts_staff_info.STAFF_ID
    在这里插入图片描述

    展开全文
  • 更正一下数据库结构:A:id、name、one、two、threeB:id、name、parentid(B自关联)现在项目中的需求是,把全部的数据列表,每一条A记录占一行,A记录中onetwothree的位置显示为B中对应的name。请各位高手...

    引用:

    和期望的结果有差距,无法进一步操作。

    准确的说,想要的效果是查询结果是一条记录……能实现吗?

    更正一下数据库结构:

    A表:id、name、one、two、three

    B表:id、name、parentid(B表自关联)

    现在项目中的需求是,把全部的数据列表,每一条A记录占一行,A记录中one two three的位置显示为B表中对应的name。

    请各位高手帮忙解答一下,谢谢!

    语句:

    --测试数据

    ;WITH A(id,name,one,two,three)AS(

    select 1,"A",1,2,3 UNION ALL

    select 2,"B",3,4,5

    ),B(id,name)AS

    (

    SELECT 1,"id1" UNION ALL

    SELECT 2,"id2" UNION ALL

    SELECT 2,"id2" UNION ALL

    SELECT 3,"id3" UNION ALL

    SELECT 4,"id4" UNION ALL

    SELECT 5,"id5"

    )

    --测试数据结束

    SELECT  id ,

    A.name ,

    ( SELECT TOP 1

    name

    FROM      B

    WHERE     A.one = B.id

    ) AS one ,

    ( SELECT TOP 1

    name

    FROM      B

    WHERE     A.two = B.id

    ) AS two ,

    ( SELECT TOP 1

    name

    FROM      B

    WHERE     A.three = B.id

    ) AS three

    FROM    A;

    结果:

    793137670bacf2d86834c1dd63402334.png

    展开全文
  • CREATE TABLE orderitems ( order_num int(11) NOT NULL, order_item int(11) NOT NULL, prod_id char(10) NOT NULL, quantity int(11) NOT NULL, item_price decimal(8,2) NOT NULL, PRIMARY KEY (order_num,orde.....
  • 但是事情往往没有我们想象的那么简单,一张表其实也是可以个主键。 如上图所示,其实说多个主键也不对,可以说是复合主键。意思为 这2个字段都不是唯一的,2个字段可以分别重复 复合主键指将关联起来,...
  • 例如用户 user_id user_name 1 zhangsan ... 另一张money,表示了借钱的关系 id from to how 1 1 2 100 2 3 4 100 关联查询 select m.id,u1.use...
  • 数据库主键

    千次阅读 2021-12-09 15:30:09
    数据库中的多个主键称为联合...sql 中一个设置两个主键是 将两个字段联合起来设置为主键 一个只能一个主键 1.只有id为主键时 2.id和name这2个列一起构成为联合主键时 甚至可以全部字段设置为主键 ...
  • 今天在工作,做老项目维护的时候无意中发现一张表居然个主键。吓死宝宝了,然后尝试着建表建主键,但是都不能成功。 难道是我写的问题,最后通过查资料总终于解决了。 1、数据库的每张只能个主键,不...
  • 就是讲两个表的数据产生关联,就比如个人信息和部门之间,部门的部门id就可以作为一个外键存放于个人信息中,除此之外设定外键在父子中的维护关系,可以达到一个类似于级联的操作,就是当父级主键作为...
  • 如何在sql server中设置两个主键

    千次阅读 2020-12-30 21:21:51
    建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立,下面分别介绍。1、在数据库提供的GUI环境中建立。输入信息后按Ctrl键同时选中多行,然后点上面的主键按钮就行了。2、通过...
  • 1、数据库的每张只能个主键,不可能个主键。 2、所谓的一张表个主键,我们称之为联合主键。  注:联合主键:就是用多个字段一起作为一张表的主键。 3、主键的主键的作用是保证数据的...
  • SQL--当一张表两个外键指向同一主键

    万次阅读 多人点赞 2017-11-26 18:54:54
    最近遇到了这样一个问题,当一张表有两个外键同时执行了另外一种主键,如何建立一张视图,让这两个外键都找到相应的信息。来实例吧:第一张表,归还记录:第二张表,用户:问题就是,归还记录表里有两个字段,...
  • 如何在sql server中设置两个主键

    千次阅读 2020-12-21 20:37:04
    建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立,下面分别介绍。1、在数据库提供的GUI环境中建立。输入信息后按Ctrl键同时选中多行,然后点上面的主键按钮...
  • 1. 利用Oracle中系统自带的两个视图可以实现查看主键信息, 语句如下: select a.constraint_name, a.column_name from user_cons_columns a, user_constraints b where a.constraint_name = b.constraint_...
  • 如果已有主键需要先删除再同时添加。 错误示范:
  • //将两个表中的主键不同数据查找出来并添加到一张中 INSERT INTO t_user SELECT usera.userid, usera.name, usera.department, usera.position, usera.mobile, usera.gender, usera.email, usera.weixinid, ...
  • mysql建表时怎么设置主键

    千次阅读 2021-03-04 02:44:07
    设置方法:在“CREATE TABLE”语句中,通过“PRIMARY KEY”关键字来指定主键,语法格式“字段名 数据类型 PRIMARY KEY [默认值]”或“...一般情况下,为了便于 DBMS 更快的查找到中的记录,都会在中设置一...
  • 一张表两个主键 在另外一张表中怎么用外键引用它? 麻烦帮忙解决一下。 非常感谢。
  • 如何设置多个主键
  • Oracle报错:只能个主键。总结及解决方案。
  • update DSP_DATAMAN_RES_REGISTER_COL set dicttypefiltersql = (select dicttypefiltersql from DICT_TEMP where DSP_DATAMAN_RES_REGISTER_COL.unid=DICT_TEMP.unid) where exists (select 1 from DICT_TEMP wher
  • 尽管人问过这问题,但由于我不断收到错误,它并没有真正适应我希望它对我的工作方式。我有一个表:Customer_orders,将值插入到其中:insert into customer_order (order_date,delivered ,shipping_date,...
  • oracle
  • 之间一对多、多对多的关系,只要涉及到之间的关联们就会涉及到外键和主键 知识点:   那么怎么设置外键呢? demo: 现在有两,user(编号、姓名、职务、工种、部门)、kinds (工种、...
  • 展开全部主键只有一个,但是可以设置...数据库的每张只能个主键,不可能个主键。所谓的一张表个主键,我们称之为联合主键。联合主键就是用多个字段一起作为一张表的主键。主键的主键的作用是保证数据的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 103,534
精华内容 41,413
关键字:

一张表有两个主键