MySQL完整性语言

实验3:完整性语言

完整性语言实验包含3个实验项目,其中2个必修项目,1个选修项目。该实验的各个实验项目均为验证型实验项目。本次实验我选择的是实验3.1和实验3.3。

实验3.1 实体完整性实验

(1)实验目的

掌握实体完整性的定义和维护方法。

(2)实验内容和要求

定义实体完整性,删除实体完整性。能够写出两种方式定义实体完整性的SQL语句:创建表时定义实体完整性、创建表后定义实体完整性。设计SQL语句验证完整性约束是否起作用。

(3)实验重点和难点

实验重点:创建表时定义实体完整性。

实验难点:有多个候选码时实体完整性的定义。

1)        创建表时定义实体完整性(列级实体完整性),以创建department,dept_name为主码,定义department的实体完整性,蓝色那行定义了dept_name同时声明其为主码。

2)        创建表时定义实体完整性(表级实体完整性),同样以创建department,dept_name为主码,定义department的实体完整性,蓝色那行在表级层次上给出了实体完整性。

3)        创建表后定义实体完整性,以department为例,先创建department,不声明主码,之后在蓝色那两行在创建表后定义了department中的dept_name属性为主码。

4)        定义实体完整性(主码由多个属性组成),以创建classroom表为例

5)        有多个候选码时定义实体完整性,以创建instructor表为例,其中name,salary,dept_name和ID均为候选码,选择ID作为主码,name限制为非空,salary检查工资是否超过29000,dept_name外键引用department的主码。

6)        删除实体完整性,删除instructor的主码

删除前:

删除后:

可明显看出主码已经删除。

7)        增加两条主码相同的记录,验证实体完整性是否起作用,以department为例,插入两条主码相同的记录可以看到会违反实体完整性约束。

实验3.3 用户自定义完整性实验

(1)实验目的

掌握用户自定义完整性的定义和维护方法。

(2)实验内容和要求

针对具体应用语义,选择NULL/NOT NULL、DEFAULT,UNIQUE、CHECK等,定义属性上的约束条件。

(3)实验重点和难点

实验重点:NULL/NOT NULL, DEFAULT。

实验难点:CHECK。

1)      定义属性NULL/NOT NULL约束

定义student表上的ID和name的NOT NULL属性。

2)      定义属性DEFAULT约束

定义student表中的tot_cred学分缺省属性值为0,表示学生初始学分为0

3)      定义属性UNIQUE约束

定义nation表中name属性必须唯一的完整性约束,表示国家名字不能一样。

4)      使用CHECK

使用CHECK定义instructor表中salary应该满足的约束。

5)      插入instructor的一条记录验证是否违反NOT NULL约束

执行此语句会报错:

21:47:18  insert into instructor  values(‘66666‘,null,‘NEW_Department‘,88888)

Error Code: 1048. Column ‘name‘ cannot be null

故可以看到完整性约束只有在被满足时才可以进行的操作才能被允许。

时间: 2024-10-03 13:44:48

MySQL完整性语言的相关文章

Mysql C语言API编程入门讲解

原文:Mysql C语言API编程入门讲解 软件开发中我们经常要访问数据库,存取数据,之前已经有网友提出让鸡啄米讲讲数据库编程的知识,本文就详细讲解如何使用Mysql的C语言API进行数据库编程.  API,全称Application Programming Interfaces,即应用程序编程接口,我们可以调用这些接口,执行API函数提供的功能.  Mysql C语言API就是用C语言编写的Mysql编程接口,使用这些接口函数可以实现对Mysql数据库的查询等操作.  Mysql的安装  要进

Mysql C语言API编程入门讲解【转载】

软件开发中我们经常要访问数据库,存取数据,之前已经有网友提出让鸡啄米讲讲数据库编程的知识,本文就详细讲解如何使用Mysql的C语言API进行数据库编程.鞍山皮肤病专科医院www.0412pfk.net API,全称Application Programming Interfaces,即应用程序编程接口,我们可以调用这些接口,执行API函数提供的功能. Mysql C语言API就是用C语言编写的Mysql编程接口,使用这些接口函数可以实现对Mysql数据库的查询等操作. Mysql的安装 要进行M

mysql 完整性备份 及备份注意事项

mysql 完整性备份 及备份注意事项 describe  user; //查看表describe mysql.user //   describe 可以简写成desccreate databese abc; //创建数据库show databases; 相当于是/var/lib/mysql/这里面会出现一个文件夹,当然也可以直接这里面创建一个库比如cloud ,在show databases;中就可以查看到.唯一不同的是权限不一样.一个是root 一个是mysql.use abc  //切换到

mysql数据库语言分类

数据定义语言:Data definition language,简称DDL,其包括createdrop alter等语句 Create table/database 表名/数据库名: Drop table 表名:(记录和结构都被删除) Alter table 表名 add column 新增加的列名 类型: Alter table 表名 modify 列名 类型:(修改表当中列的属性) Alter table 表名 change column(可以省略) 旧列名 新列名 类型: 数据操纵语言:D

8.3.4 - mysql 完整性约数

约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NOT NULL 标识该字段不能为空 UNIQUE KEY (UK) 标识该字段的值是唯一的 AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键) DEFAULT 为该字段设置默认值 UNSIGNED 无符号 ZEROFILL 使用0填充 说明 1.

MySQL C语言函数接口调用

记录下MySQL的C语言API的使用 1.Linux环境,操作系统是ubuntu 执行:sudo apt-get install libmysqlclient-dev 这样系统默认头文件路径(/usr/include)下就会多了一个mysql的文件夹,里面就是API头文件: 动态库路径/usr/lib/x86_64-linux-gnu/libmysqlclient.so. 原文地址:https://www.cnblogs.com/ho966/p/12241634.html

mysql C语言API接口及实例

Mysql数据库动态库: libmysql.dll  libmysql.lib mysql.h  WinSock2.h Mysql API数据结构   (mysql.h) MYSQL:连接数据库前,必须先创建MYSQL变量,此变量在很多Mysql API函数会用到.它包含了一些连接信息等数据. MYSQL_RES:MYSQL_RES结构体中包含了查询结果集,也就是从数据库中查询到的数据.可以使用mysql_store_result或mysql_use_result函数获得. MYSQL_ROW:

MySQL安全性语言

实验2:安全性语言 安全性实验包含两个实验项目,其中1个为必修,1个为选修.自主存取控制实验为设计型实验项目,审计实验为验证型实验项目,选做一个即可. 实验2.1 自主存取控制实验 (1)实验目的 掌握自主存取控制权限的定义和维护方法. (2)实验内容和要求 定义用户.角色,分配权限给用户.角色,回收权限,以相应的用户名登录数据库验证权限分配是否正确.选择一个应用场景,使用自主存取控制机制设计权限分配.可以采用两种方案.方案一:采用SYSTEM超级用户登录数据库,完成所有权限分配工作,然后用相应

ubuntu 18.04 安装mysql 遇到语言格式不兼容性问题解决

安装mysql的时候,遇到了这样一个错误:perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back