(我的创作纪念日)[MySQL]数据库原理7——喵喵期末不挂科

2024-04-14 09:36

本文主要是介绍(我的创作纪念日)[MySQL]数据库原理7——喵喵期末不挂科,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

希望你开心,希望你健康,希望你幸福,希望你点赞!

最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!!

喵喵喵,你对我真的很重要!

目录

​编辑

前言

数据约束和参照完整性

背景与要求

PRIMARY KEY约束

理解PRIMARY KEY约束

表的完整性约束

复合主键

小总结

修改表的主键

UNIQUE约束

创建UNIQUE约束

总结


前言

喵子回来了,冲冲冲!


数据约束和参照完整性

背景与要求

 在一个表中,通常需要某个字段或字段的组合唯一地标识一条记录,这就是主键约束。

  在一个表中,有时要求某些列值不能重复,但一个表只能有一个主键,这时可以设置UNIQUE进行约束。

  在关系数据库中,表与表之间数据是有关联的。例如,成绩表中的课程号要参照课程表的课程号,成绩表的学号要参照学生表中的学号。该怎样进行约束,使表与表之间的数据保证一致呢?

本任务要求学习者理解主键约束(PRIMARY KEY)、唯一性约束(UNIQUE外键参照完整性约束(FOREIGN KEY以及CHECK约束的含义。

  学习创建和修改约束的方法,掌握数据约束的实际应用。


PRIMARY KEY约束

理解PRIMARY KEY约束

  可指定一个字段,也可以指定二个及以上的字段作为复合主键,其值能唯一地标识表中的每一行,列不能取空值。

  主键约束能确保数据唯一,所以经常用来定义标志列。

  可以在创建表时创建主键,也可以对表中已有主键进行修改或者增加新的主键。

  设置主键通常有两种方式:表的完整性约束、列的完整性约束。


表的完整性约束

 举个例子

创建表course1,用表的完整性约束设置主键。  

mysql> CREATE TABLE IF NOT EXISTS course1(c_no char(4) NOT NULL,c_name char(10) DEFAULT NULL,t_no char(10) DEFAULT NULL,hours int(11) DEFAULT NULL,credit int(11) DEFAULT NULL,type varchar(10) DEFAULT NULL,PRIMARY KEY (c_no))ENGINE=InnoDB DEFAULT  CHARSET=gb2312;

创建表course2,用列的完整性约束设置主键。

  mysql> CREATE TABLE IF NOT EXISTS course2(c_no char(4) NOT NULL  PRIMARY KEY,c_name char(10) DEFAULT NULL,d_no char(10) DEFAULT NULL,hours int(11) DEFAULT NULL,credit int(11) DEFAULT NULL,type varchar(10) DEFAULT NULL)ENGINE=InnoDB DEFAULT  CHARSET=gb2312;

复合主键

创建score1,用s_noc_no作为复合主键。

mysql> CREATE TABLE IF NOT EXISTS score1s_no char(8) NOT NULL,c_no char(4) NOT NULL,ccore float(5,1) DEFAULT NULL,PRIMARY KEY (s_no,C_no))ENGINE=InnoDB DEFAULT CHARSET=gb2312

小总结

1)主键以是单一的字段,也以是多个字段的组合。

2)在score表中,一个学生一门课的成绩只能有一条记录,不能出现同一个学生同一门课多条记录,因此,必须设置s_noc_no为表score复合主键,以保证数据的唯一性。 另外,如果单独设置s_noc_no为主键,将出现一位学生(或一门课)只能录入一次成绩的情况。

3)当表中的主键为复合主键时,只能定义为表的完整性约束

4)作为表的完整性约束时,需要在语句最后加上一条PRIMARY KEYcol_name)语句,作为列的完整性约束时,只需在列定义的时候加上关键字PRIMARY KEY


修改表的主键

  修改表students的主键,删除原来主键,增加s_name为主键。

Mysql>ALTER TABLE students

  DROP PRIMARY KEY,

  ADD PRIMARY KEY (s_name );

注:如果原主键已被引用为外键,将出错。


UNIQUE约束

 理解UNIQUE约束(唯一性约束)

  UNIQUE约束(唯一性约束)又称替代键

  替代键是没有被选作主键的候选键

  替代键像主键一样,是表的一列或一组列,它们的值在任何时候都是唯一的。

  可以为主键之外的其他字段设置UNIQUE约束。 


创建UNIQUE约束

TEST数据库中,创建一个表employees, 只含employeeidnamesexeducation,用列的完整性约束的方式将Name设为主键,用表的完整性约束的方式将employeeid设为替换键。

mysql> create table employees(employeeid char(6) not null,name char(10) not null primary key,sex tinyint(1),education char(4),UNIQUE(employeeid));

或者,可以作为列的完整性约束直接在字段后面设置唯一性。    


总结

数据库记的东西蛮多的

记住就好了!


希望你开心,希望你健康,希望你幸福,希望你点赞!

最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!!

喵喵喵,你对我真的很重要!

这篇关于(我的创作纪念日)[MySQL]数据库原理7——喵喵期末不挂科的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/902684

相关文章

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

MySQL DQL从入门到精通

《MySQLDQL从入门到精通》通过DQL,我们可以从数据库中检索出所需的数据,进行各种复杂的数据分析和处理,本文将深入探讨MySQLDQL的各个方面,帮助你全面掌握这一重要技能,感兴趣的朋友跟随小... 目录一、DQL 基础:SELECT 语句入门二、数据过滤:WHERE 子句的使用三、结果排序:ORDE

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

mysql中insert into的基本用法和一些示例

《mysql中insertinto的基本用法和一些示例》INSERTINTO用于向MySQL表插入新行,支持单行/多行及部分列插入,下面给大家介绍mysql中insertinto的基本用法和一些示例... 目录基本语法插入单行数据插入多行数据插入部分列的数据插入默认值注意事项在mysql中,INSERT I

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal