
不光是mysql,任何比较完善的关系型database都可以设置复合主键,设置复合主键的原因是当一个列不足以用来表示一条记录的唯一性的时候,就需要设置多个列为复合主键,来标识一条记录的唯一性。
通过SQL语句执行建立。又分两种,一是在建表语句中直接写,二是建表之后更改表结构。
在建表语句中直接写:
Create Table 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3…………
字段名N………… )
建表之后更改表结构:
CREATE TABLE 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null
字段名3…………
字段名N…………)
GO
ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[字段名1],
[字段名2]
)
GO
主键只有一个,但是可以设置为多个字段为主键,也即联合主键。外键就是自己设置了也即可以有多个,可以设置除主键以外的其他字段全部是外键的。
数据库的每张表只能有一个主键,不可能有多个主键。所谓的一张表多个主键,我们称之为联合主键。联合主键就是用多个字段一起作为一张表的主键。主键的主键的作用是保证数据的唯一性和完整性,同时通过主键检索表能够增加检索速度。
扩展资料:
一、数据库模型:
1、对象模型
2、层次模型(轻量级数据访问协议)
3、网状模型(大型数据储存)
4、关系模型
5、面向对象模型
6、半结构化模型
7、平面模型(表格模型,一般在形式上是一个二维数组。如表格模型数据Excel)
二、数据库的架构:
数据库的架构可以大致区分为三个概括层次:内层、概念层和外层。
1、内层:最接近实际存储体,亦即有关数据的实际存储方式。
2、外层:最接近用户,即有关个别用户观看数据的方式。
3、概念层:介于两者之间的间接层。
三、数据库索引:
索引跟字段有着相应的关系,索引即是由字段而来,其中字段有所谓的关键字段(Key
Field),该字段具有唯一性,即其值不可重复,且不可为“空值(null)"。例如:在合并数据时,索引便是扮演欲附加字段数据之指向性用途的角色。故此索引为不可重复性且不可为空。
参考资料:
建立关联是通过外键引用实现的
例如建立一个学生表和班级表的关联,可以如下:
create
table
class
(
classid
char(4)
primary
key
not
null,
classname
varchar(10)
not
null
)
go
create
table
student
(
stuid
char(6)
primary
key
not
null,
sname
varchar(10)
not
null,
classid
char(4)
constraint
fk_classid
foreign
key
references
class(classid)
)
嫌麻烦的话也可以使用sql
server管理工具中的数据库关系图功能,只需要在关联的表间字段拖拽鼠标就可以了
复合主键(就是多关键字)的创建属于表一级的约束要在创建完表之后来创建
语句如下
Alter Table 表名称 Add 复合主键名称 Primary key(字段1,字段2) on Primary
go
希望可以帮助楼主
以上就是关于mysql 为什么要设置复合主键全部的内容,包括:mysql 为什么要设置复合主键、复合主键数据库怎样写、数据库建表时一个表最多可以有几个主键,几个外键等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)