sql表怎么有两个主键呢
PRIMARY KEY (`classid`),
KEY `bclassid` (`bclassid`)
怎么会有两个KEY呢?
我能否再增加一个,比如 KEY `mclassid` (`mclassid`) 展开
这里的PRIMARY KEY是主键,KEY不是主键,就是普通索引。 再增加一个也是可以的。
mysql的key和index有点相近是索引约束,单独的key和其它关键词结合的key(primary key)实际表示的意义是不同。
扩展资料
primary key和key的区别:
primary key是主键,一般为自动增长并且是非空、int类型的,主要用来保证数据的唯一性;
Key是索引约束,对表中字段进行约束索引的,都是通过primary foreign unique等创建的。
举例说明:
CREATE TABLE wh_logrecord (
logrecord_id int(11) NOT NULL auto_increment,
user_name varchar(100) default NULL,
operation_time datetime default NULL,
logrecord_operation varchar(100) default NULL,
PRIMARY KEY (logrecord_id),
KEY wh_logrecord_user_name (user_name)
)
解析:KEY wh_logrecord_user_name (user_name) ,本表的user_name字段与wh_logrecord_user_name表user_name字段建立外键,括号外是建立外键的对应表,括号内是对应字段。
一个表是不能抄有两个主键的。但是可以有两个字段组合袭成一个主键,这就是为什么有时候表里会有两个字段都有主键的标志,那是因为他们组合成了一个主键了。
SQL语言的组成:
1、一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。
2、一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。
3、一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。
扩展资料:
基本表的定义及变更:
本身独立存在的表称为基本表,在SQL语言中一个关系唯一对应一个基本表。基本表的定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除与修改。
数据查询:
SQL是一种查询功能很强的语言,只要是数据库存在的数据,总能通过适当的方法将它从数据库中查找出来。SQL中的查询语句只有一个:SELECT,它可与其它语句配合完成所有的查询功能。SELECT语句的完整语法,可以有6个子句。
参考资料:
一个数据库表只能有一个主键,不允许两个主键。但是允许两个字段联合起来设置为主键,这叫联合主键。
创建主键的方式如下:
ALTER TABLE 选课表
ADD CONSTRAINT pk_选课表 PRIMARY KEY(学号);
创建联合主键的方式如下:
ALTER TABLE 选课表
ADD CONSTRAINT pk_选课表 PRIMARY KEY(学号, 课程编号);
当一个字段无法确定唯一性的时候,需要其他字段来一起形成唯一性。就是说用来组成唯一性的字段如果有多个就是联合主键。
你再加几个都可以。只要跟你的需求符合
主键的个数是根据业务的需要来设定的
没有固定的个数,满足需求,一个就够,不同的业务表,根据业务需要设定。
谢谢回复!不过看样子你也是个门外汉!
是啊,我是做了十几年SQLserver的门外汉