在新建数据库(Access)中,如何设置主键

在新建数据库(Access)中,如何设置主键,第1张

你的问题没有问明确啊

如果你是在编写vb程序的时候新建数据库的话,那么:

1代码新建空数据库

2代码新建一个数据表如“成绩单”,并设置其中姓名为主键,则SQL代码如下:

CREATE TABLE [成绩单]([姓名] int identity primary key      '这里“姓名”被设置为主键。

如果你是直接打开数据库设置主键的话,那么:

你用“使用设计器创建表”完毕,在要设置为主键的名称(如姓名)左侧右键单击后出来的菜单内有“主键”二字,点击“主键”即可完成,如下图所示:

如果在 MySQL 创建表时提示主键不存在,可能有以下几种原因和解决办法:

主键字段未定义:在创建表时,应该明确指定一个字段作为主键。如果主键字段没有被定义,则需要使用 ALTER TABLE 语句添加主键。

不符合主键要求:主键是一组唯一的值,因此不允许重复或空值。如果您尝试将重复或空值插入主键字段,则会收到错误消息。请检查您的数据并确保满足主键的要求。

数据库引擎不支持主键:某些数据库引擎不支持主键。例如,MyISAM 引擎不支持外键约束。如果您正在使用这些引擎,您可以选择 InnoDB 引擎或其他支持主键的引擎。

主键名称已存在:如果您在创建表时指定了主键名称,则必须确保该名称在数据库中唯一。如果该名称已被使用,您需要更改主键名称。

综上所述,如果 MySQL 在创建表时提示主键不存在,请检查以上问题并采取相应的措施。

主外键的存在是依托两个实体之间的关系而存在的;

比如班级与学生的关系:

一个班级可以有多个学生,并且一个学生只能属于一个班级,这就是一对多的关系;

那么设计数据库的时候就应该在学生表内存放班级的id作为外键,为什么不在班级表内放学生呢?

因为,你想一想班级表内如果放学生那么记录可能就是这样:

1班id

1班

xx同学id

1班id

1班

xx同学id

这是不允许的,班级表内班级为主键,是唯一的不允许相同记录的;

下面简单给你讲下大概建成的表结构

--建班级表

create

table

class(

classid

int

primary

key,--定义班级id为主键

classname

varchar(15)

)

--建学生表

create

table

students(

studentid

int

primary

key,--定义学生id为主键

classid

int

,--外键值,跟班级表classid

属性类型相同

stuname

varchar(20),--学生姓名

---定义外键

foreign

key(classid)

references

class(classid)

--本表classid是基于class表classid的外键

)

---------

如上定义了主外键后,两个表间的关系就是一对多的关系了,并且学生表内的classid必须依托班级表的classid存在,也就是说外键必须要主键存在的时候才能创建,例如:

--在班级表为空的情况往学生表插入一条记录是不允许的:

insert

into

students(studentid,classid,stuname)values(1,1,'小明')

系统会抛出异常提示主键表班级表内班级id不存在这样是不允许插入的;

必须要先往班级表内插入一条记录:

insert

into

class(classid,classname)values(1,'一班')

后才能执行插入前面一条往学生表插入信息的语句

--------------可了解一些了?真累啊

1、保证每个实体的完整性;

2、加快数据库的 *** 作速度,更好地给用户带来体验;

3、在表中添加新记录时,DBMS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复;

4、DBMS自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。

当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。

扩展资料

主键的使用规则介绍:

1、任意两行都不具有相同的主键值;

2、每行都必须具有一个主键值(主键列不允许NULL值);

3、可以使用多个列作为主键,但是所有列值得组合必须是唯一的(但单个列的值可以不唯一);

4、不更新主键列中的值;

5、不重用主键列的值;

6、不在主键列中使用可能会更改的值(例如,供应商的名字,如果供应商更改了名字,你就得改这个主键)。

参考资料来源:百度百科-数据库主键

ALTER TABLE 选课表 \x0d\ ADD CONSTRAINT pk_选课表 PRIMARY KEY(学号, 课程编号);\x0d\\x0d\一个表只能一个主键\x0d\\x0d\主键可以由2个字段组成

1、为了方便大家理解,使用一个例子来帮助大家理解。意思大概就是通过引用表二中的字段完成对表一字段的约束。方法:

2、这里一共两个表,先创建外键表,因为先有外键,主键才能引用。首先创建数据库,新建查询。

3、新建外键表teacher,输入命令:create table teacher。添加需要的字段teacher_xingming并设置它为主键。输入命令:teacher_xingming nchar(10) primary key,

4、选中需要执行的命令行,单击执行,下方会有是否成功的提示。现在对表进行刷新 *** 作后,会发现已经成功创建了一个新表teacher。

5、接下来就要创建学生表了,create table student(\tstudent_xingming nchar(10) primary key not null,——该程序段意思为创建一个student表,表中新建一个主键student_xingming字段,类型为nchar(10) ,并不允许为空。

6、继续写,输入:student_banji nchar(10) not null,——表中新建一个student_banji字段,类型为nchar(10) ,并不允许为空。

7、创建外键,输入命令student_jiaoshi  nchar(10) foreign key references teacher(teacher_xingming)看起来很长,实际意思很简单:表中新建一个student_jiaoshi字段,它是外键,nchar(10)类型,它来至 teacher_xingming中的内容。

8、选中,点击执行,没有错误,就说明成功了。刷新一下表,看看是不是多了一个表student?所有约束已经创建好了。

9、来试一下看看是否真正实现所说的功能。打开teacher表,填写“刘老师”。打开student表,前面任意填,最后填写“刘老师”,没有错误说明没问题。

10、如何想测试约束是否真的有效,填写其他内容,看看是否成功,只要不是teacher字段中的内容,他就会报错。

以上就是关于在新建数据库(Access)中,如何设置主键全部的内容,包括:在新建数据库(Access)中,如何设置主键、MySQL创建表时提示主键不存在怎么办、数据库建表主键外键怎么创建合适等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/sjk/9461471.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存