加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

MySQL与SQL Server数据完整性约束的比较教学

发布时间:2022-10-12 15:30:25 所属栏目:MsSql教程 来源:互联网
导读: 王彩霞,王睿
摘要:近年来,各大职业技术院校计算机相关专业《数据库技术》课程,授课计划从原来的“SQL Server”换成了“MySQL”,主要是因为MySQL数据库已是当下许多公司采用的数据库系

王彩霞,王睿

摘要:近年来,各大职业技术院校计算机相关专业《数据库技术》课程,授课计划从原来的“SQL Server”换成了“MySQL”,主要是因为MySQL数据库已是当下许多公司采用的数据库系统,MySQL数据库系统占空间很小,安装简单,卸载方便,兼容不同的操作系统,代码开源,也不存在盗版问题,还能配合Navicat进行可视化操作,这也方便了教学的开展,比SQL Server使用更方便,更有效提高开发效率,与SQL Server相比,两者在很多方面有相同点,也有差异,该文主要针对两者在数据完整性约束上的异同进行研究和阐述,重点讨论了用户定义的五种完整性约束的异同。

关键词:MySQL;SQL Server;Navicat;数据库

中图分类号:G642 文献标识码:A

文章编号:1009-3044(2021)21-0026-03

开放科学(资源服务)标识码(OSID):

数据完整性是数据库设计好坏的一项重要标志,它是为了保證数据库中数据的一致性和准确性,让不符合规范的数据不能写入数据库,特别是插入、修改、删除数据时,数据库管理系统软件(以MySQL为例)会提供一种自动保证数据完整性的方法,即约束,来保证数据库中数据是合理的、正确的、有效的。

1 数据完整性约束的简介

数据完整性约束可分成下面五种:

(1)主键约束:主键是指一个列或多个列的组合,其值能唯一标识表中的每一行,通过它可以保证表的实体完整性。

(2)外键约束:可以保证数据库中两表的数据链接,通过主关键字和外关键字来实现,保证数据库中两表数据的一致性。第一个表中的一列或多列必须是主键或组合主键,将该字段添加到第二个表中,这个列就是第二个表的外键。

(3)唯一约束:又被称为UNIQUE约束,标识数据库表中的每条记录不能重复,即唯一性,但是可以允许为空值,但只能有一行值为NULL。

(4)检查约束:又被称为:“CHECK约束”,用于限定数据库中每列数据的取值范围。

(5)默认值约束:又被称为:“DEFULT约束”,主要作用是向数据库列字段中插入默认的值,该默认值可以根据自己需求来设置。

2数据完整性约束的方法

本文以学生选课系统数据库(XK)为例,从用户定义的完整性约束着手Mssq数据完整性约束,探讨MySQL与SQL Server在用户定义的完整性中五种约束的相同点和不同点。

XK数据库中,有5张表,关系模式如下:

(1)系部(Department) (系部编号DepartNo、系部名称DepartName)

(2)班级(Class) (班级编号ClassNo、班级名称ClassName、系部编号DepartNo)

(3)学生(Student) (学号StuNo、姓名StuName、密码pwd、班级编号ClassNo)

(4)课程(Course) (课程号CouNo、课程名CouName、报名人数Willnum、系部编号DepartNo)

(5)选修(StuCou) (学号StuNo、课程号CouNo、报名志愿号Willorder、报名状态State)

2.1 PRIMARY KEY主键约束

主键用来表示一个精确定位的特定行,表示行的唯一性,如果没有主键,无法精准定位一条记录是否就是你要的相关行记录,会导致更新或者删除表中特定的行很困难。如果有主键约束行记录的唯一性,可以来解决这些问题。

2.1.1 创建primary key

为Department表中DepartNo列创建一个主键约束,代码如下:

MySQL:

CREATE TABLE Department

DepartNoVARCHAR(3) NOT NULL,

DepartNameVARCHAR(255) NOT NULL,

PRIMARY KEY (DepartNo) //声明主键写在最后

SQL Server:

CREATE TABLE Department

DepartNo VARCHAR(10) NOT NULL PRIMARY KEY, //声明主键紧跟列后

DepartNameVARCHAR(255) NOT NULL

假设表Department存在,要给该表DepartNo列加主键主健时,Mysql 和SqlServer都可以用下面SQL语句:

ALTER TABLE Department ADD PRIMARY KEYpk_DepartNo (DepartNo)

2.1.2删除 PRIMARY KEY 约束

删除Department表中DepartNo列的主键约束,代码如下:

MySQL:

ALTER TABLE Department DROP PRIMARY KEY

SQL Server:

ALTER TABLE Department DROP constraint PK_DepartNo

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!