(我的创作纪念日)[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

相关文章

使用Dify访问mysql数据库详细代码示例

《使用Dify访问mysql数据库详细代码示例》:本文主要介绍使用Dify访问mysql数据库的相关资料,并详细讲解了如何在本地搭建数据库访问服务,使用ngrok暴露到公网,并创建知识库、数据库访... 1、在本地搭建数据库访问的服务,并使用ngrok暴露到公网。#sql_tools.pyfrom

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

MySQL中实现多表查询的操作方法(配sql+实操图+案例巩固 通俗易懂版)

《MySQL中实现多表查询的操作方法(配sql+实操图+案例巩固通俗易懂版)》本文主要讲解了MySQL中的多表查询,包括子查询、笛卡尔积、自连接、多表查询的实现方法以及多列子查询等,通过实际例子和操... 目录复合查询1. 回顾查询基本操作group by 分组having1. 显示部门号为10的部门名,员

kotlin中的模块化结构组件及工作原理

《kotlin中的模块化结构组件及工作原理》本文介绍了Kotlin中模块化结构组件,包括ViewModel、LiveData、Room和Navigation的工作原理和基础使用,本文通过实例代码给大家... 目录ViewModel 工作原理LiveData 工作原理Room 工作原理Navigation 工

Java的volatile和sychronized底层实现原理解析

《Java的volatile和sychronized底层实现原理解析》文章详细介绍了Java中的synchronized和volatile关键字的底层实现原理,包括字节码层面、JVM层面的实现细节,以... 目录1. 概览2. Synchronized2.1 字节码层面2.2 JVM层面2.2.1 ente

MyBatis-Plus中静态工具Db的多种用法及实例分析

《MyBatis-Plus中静态工具Db的多种用法及实例分析》本文将详细讲解MyBatis-Plus中静态工具Db的各种用法,并结合具体案例进行演示和说明,具有很好的参考价值,希望对大家有所帮助,如有... 目录MyBATis-Plus中静态工具Db的多种用法及实例案例背景使用静态工具Db进行数据库操作插入

MySQL中COALESCE函数示例详解

《MySQL中COALESCE函数示例详解》COALESCE是一个功能强大且常用的SQL函数,主要用来处理NULL值和实现灵活的值选择策略,能够使查询逻辑更清晰、简洁,:本文主要介绍MySQL中C... 目录语法示例1. 替换 NULL 值2. 用于字段默认值3. 多列优先级4. 结合聚合函数注意事项总结C

Java实现数据库图片上传功能详解

《Java实现数据库图片上传功能详解》这篇文章主要为大家详细介绍了如何使用Java实现数据库图片上传功能,包含从数据库拿图片传递前端渲染,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、数据库搭建&nbsChina编程p; 3、后端实现将图片存储进数据库4、后端实现从数据库取出图片给前端5、前端拿到

IDEA连接达梦数据库的详细配置指南

《IDEA连接达梦数据库的详细配置指南》达梦数据库(DMDatabase)作为国产关系型数据库的代表,广泛应用于企业级系统开发,本文将详细介绍如何在IntelliJIDEA中配置并连接达梦数据库,助力... 目录准备工作1. 下载达梦JDBC驱动配置步骤1. 将驱动添加到IDEA2. 创建数据库连接连接参数

通过ibd文件恢复MySql数据的操作方法

《通过ibd文件恢复MySql数据的操作方法》文章介绍通过.ibd文件恢复MySQL数据的过程,包括知道表结构和不知道表结构两种情况,对于知道表结构的情况,可以直接将.ibd文件复制到新的数据库目录并... 目录第一种情况:知道表结构第二种情况:不知道表结构总结今天干了一件大事,安装1Panel导致原来服务