数据库相关知识2

数据库知识2

关系完整性

在这里插入图片描述
数据完整性 指的是数据库中的数据的准确性和可靠性

实体完整性约束:

目的: 在表中至少有一个唯一的 标识,主属性字段中,不为空,不重复

主键约束:唯一 不重复 不为空 primary key,一个表中只可以有一个主键约束
在这里插入图片描述

  1. 创建表的同时创建主键约束
    create table 表名(
    列名 数据类型 primary key,
    列名2 数据类型
    );
  2. 主键约束名字的写法:PK_列名
    create table 表名(
    列名1 数据类型,
    列名2 数据类型,
    constraint 主键约束的名字 primary key(列名)
    );

create table 表名(
列名1 数据类型,
列名2 数据类型,
primary key(列名)
);
4. 对已经存在的表

在这里插入图片描述
在这里插入图片描述

--对id添加主键约束alter table teacher modify id int(6) primary key;-- 商品编号添加主键约束
alter table 商品信息表 add constraint PK_编号 primary key(商品编号);-- 商品编号添加主键约束
alter table 商品信息表 add primary key(商品编号);--删除主键约束
alter table teacher drop primary key;

联合主键

指把两个列堪称一个整体,这个整体不为空,唯一,不重复

  1. 创建表的同时创建联合主键
  2. 主键约束名字的写法:PK_列名
    create table 表名(
    列名1 数据类型,
    列名2 数据类型,
    constraint 主键约束的名字 primary key(列名1,列名2)
    );

create table 表名(
列名1 数据类型,
列名2 数据类型,
primary key(列名1,列名2)
);

-- 创建一个员工 员工编号姓名 年龄 部门编号 员工编号和部门编号当作联合主键
create table stuff(snum varchar(10),name char(10),age int,snnum int,constraint PK_员工部门 primary key (snum,snnum)		
);
-- 删除联合主键
alter table stuff drop primary key;
-- 对已经存在的表添加联合主键
alter table stuff add constraint PK_yuangpngbumen primary key(snum,snnum);

唯一约束

在这里插入图片描述
在这里插入图片描述

唯一约束 unique

  1. 不允许有重复的值,保证数据的唯一性

  2. 可以用空值

  3. 在一个表中可以有多个唯一约束

  4. 默认情况下唯一约束的名字和列名保持一致

  5. 添加唯一约束的列,系统也会默认给这个列添加一个唯一索引

  6. 创建表的同时创建唯一约束 UN_列名
    create table 表名(
    列名1 数据类型,
    列名2 数据类型,
    constraint 唯一约束的名字 unique(列名1)
    );

create table 表名(
列名 数据类型 unique,
列名2 数据类型
);

在这里插入图片描述
在这里插入图片描述
2. 对已经存在的表添加唯一约束
格式:alter table 表名 add unique(列名1,列名2);

  1. 删除唯一约束
    格式: alter table 表名 drop index 唯一约束的名字
    (唯一约束的删除是使用名字来删除的,不是根据关键字来删的)

域完整性约束:保证在表中不会输入无校的数据

在这里插入图片描述
默认约束:default 当默认约束来修饰某个列的时候,修饰的列即使不写数据也会默认一个值的

  1. 创建表的同时创建默认约束
    create table 表名(
    列名1 数据类型 default ‘字符串类型或日期类型的默认值’,
    列名2 数据类型 default 数值
    ) ;

在这里插入图片描述

在这里插入图片描述

alter table 成绩表 modify 成绩 int default 60;

在这里插入图片描述

非空约束 not null

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

CREATE TABLE StudentStudent(sno varchar(10) primary key,sname varchar(15) unique,sdept varchar(10) not null,sage int not null
);

参照完整性

在这里插入图片描述
在这里插入图片描述

外键约束 foreign key

  1. 创建表的同时创建外键约束
    主表(创建新表时要参照的表)
    create table 表1 (
    列名1 数据类型 primary key,
    列名2 数据类型
    );

在这里插入图片描述
从表(外键约束所在的表)FK_列名
create table 表1 (
列名1 数据类型 primary key,
列名2 数据类型,
constraint 外键约束的名字 foreign key(从表的列名1) references 主表表名1(列名1)
);

注意:关于引用的列的要求,从表和主表中的列,列名可以不一样,但这两个列的数据类型和内容必须保持一致。
在这里插入图片描述

CREATE TABLE StudentStudent(sno varchar(10) primary key,sname varchar(15) unique,sdept varchar(10) not null,sage int not null
);CREATE TABLE stu(sno varchar(10),name char(10),age int,constraint FK_sno foreign key(sno) references StudentStudent(sno)
)

–给学生表添加一个外键约束
–主表

CREATE TABLE StudentStudent(sno varchar(10), sname varchar(15) unique,sdept varchar(10) not null,sage int not null
);
CREATE TABLE chengji(sno varchar(10),chengji int
);
ALTER TABLE StudentStudent ADD constraint FK_xuehao foreign key(sno) references chengji(sno);
  1. 删除外键约束
    在这里插入图片描述
    格式: alter table 表明 drop foreign key 外键约束的名字;

练习题:
在这里插入图片描述

CREATE database 教师授课管理;
use 教师授课管理;
CREATE TABLE Teacher(Tno varchar(7) primary key,Tname varchar(10) not null,Tsex char(2) default '男',Birthday datetime,Dept varchar(20),Sid char(18) 
);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/56246.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言实现堆

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、树1、树的概念2、树的相关概念3、树的表示 二、二叉树1、二叉树概念2、特殊的二叉树3、二叉树的性质4、二叉树的顺序结构5、二叉树的链式结构 三、堆(二叉树…

C# textBox1.Text=““与textBox1.Clear()的区别

一、区别 textbox.Text "" 和 textbox.Clear() 都可以用于清空文本框的内容,但它们之间有一些细微的区别。 textbox.Text "": 这种方式会将文本框的 Text 属性直接设置为空字符串。这样会立即清除文本框的内容,并将文本框显示为空…

【leetcode 力扣刷题】双指针///原地扩充线性表

双指针///原地扩充线性表 剑指 Offer 05. 替换空格定义一个新字符串扩充字符串,原地替换思考 剑指 Offer 05. 替换空格 题目链接:剑指 Offer 05. 替换空格 题目内容: 这是一道简单题,理解题意,就是将字符串s中的空格…

拼多多开放平台的API接口可以获取拼多多电商数据。以下是API接口流程

使用拼多多开放平台的API接口可以获取拼多多电商数据。以下是一般的API接口流程: 1. 注册开发者账号:首先,您需要在拼多多开放平台注册一个开发者账号。通过开发者账号,您可以获得API密钥和其他必要的信息。 2. 鉴权与认证&…

数据结构1

数据结构是计算机科学中存储和组织数据的一种方式,它定义了数据的表示方式和对数据进行操作的方法,常见的数据结构包括数组、栈、链表、队列、树、图等。 目录 一、常见的数据结构 1.数组 2.栈 3.队列 4.链表 5.树 6.图 一、常见的数据结构 1.数…

自动设置服务器全教程

亲爱的爬虫探险家!在网络爬虫的世界里,自动设置代理服务器是一个非常有用的技巧。今天,作为一家代理服务器供应商,我将为你呈上一份轻松实用的教程,帮助你轻松搞定爬虫自动设置代理服务器。 一、为什么需要自动设置代…

前端如何走通后端接口

0 写在前面 现在基本都是前后端分离的项目了,那么前端小伙伴如何获取后端小伙伴接口呢? 1 条件 同一WiFi下,让后端小伙伴分享出自己的ip地址: 步骤1:winr调出运行界面 步骤2:cmd调出命令行窗口 步骤3:…

JavaScript用indexOf()在字符串数组中查找子串时需要注意的一个地方

一、遇到问题 在 继续更新完善:C 结构体代码转MASM32代码 中,由于结构体成员中可能为数组类型的情况,因此我们在提取结构体成员信息的过程中,需要检测结构体成员名称字符串中是否包括 [],如果包括那么我们要截取[前面…

Python爬虫分布式架构 - Redis/RabbitMQ工作流程介绍

在大规模数据采集和处理任务中,使用分布式架构可以提高效率和可扩展性。本文将介绍Python爬虫分布式架构中常用的消息队列工具Redis和RabbitMQ的工作流程,帮助你理解分布式爬虫的原理和应用。 为什么需要分布式架构? 在数据采集任务中&#…

android2022配置opencv4android480

1,安装android studio2022。 2,下载OPENCV4ANDROID,解压到任意盘中。 3,File->New->New Project,选择Empty Views Activity。再选择语言,本文选择JAVA。 4,File->New->Import Modu…

麒麟系统开启root账户及自动登陆

1.首先我们通过“开始菜单t”快捷键打开命令行页面,然后我们通过 cd /usr/share/lightdm/lightdm.conf.d/进入对应系统目录。之后我们通过ls命令查看目录中的文件,找到95-ukui-greeter.conf这个文件。 2.之后我们通过命令 sudo vim 95-ukui-greeter.c…

【C++进阶(二)】STL大法--vector的深度剖析以及模拟实现

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 vector 1. 前言2. 熟悉vector的接口函数2.1 vec…

leetcode 1022.从根到叶的二进制数之和

⭐️ 题目描述 🌟 leetcode链接:https://leetcode.cn/problems/sum-of-root-to-leaf-binary-numbers/description/ 代码: class Solution { public:int sum (TreeNode* root , int num 0) {if (root nullptr) {return 0;}int cur num r…

Docker学习笔记

Docker学习笔记 docker的作用docker的基本组成安装docker阿里云镜像加速run的流程和docker原理 docker的思想来自于集装箱。 核心思想: 隔离 docker可以通过隔离机制将服务器利用到极致。 虚拟机:在windows中装一个Vmware,通过这个软件可以虚…

Ubuntu本地快速搭建web小游戏网站,并使用内网穿透将其发布到公网上

文章目录 前言1. 本地环境服务搭建2. 局域网测试访问3. 内网穿透3.1 ubuntu本地安装cpolar内网穿透3.2 创建隧道3.3 测试公网访问 4. 配置固定二级子域名4.1 保留一个二级子域名4.2 配置二级子域名4.3 测试访问公网固定二级子域名 前言 网:我们通常说的是互联网&am…

Zebec在Nautilus Chain 开启质押,ZBC 将极致通缩

前不久,Zebec Protocol旗下的模块化公链Nautilus Chain上线了主网,模块化Layer3体系正式开启。在Nautilus Chain主网上线的初期阶段,将以ZBC通证作为链上主要的职能通证,用于Gas消耗、治理等诸多方面。据悉,此前在测试…

css3英文文字换行,超过两行...展示

需求:超过两行...展示 开发的过程中发现div内容中文可以换行英文不换行,导致长度会溢出。 是英文全英文的话浏览器会解析成一个单词, 加上这句就好了 word-break:break-all; 一开始不知道是会解析成一个单词,用字符串拼接处理…

await Promise内部执行setTimeout定时器,提前clearTimeout,导致卡死的情况分析及解决方案

背景概述 在我们日常开发中,我们常常需要在某个地方暂停某个动作一段时间。这个时候,我们的通常做法是使用setTimeout,配合promise实现。也就是如下代码。 function delay(ms) {return new Promise((resolve, reject) > {setTimeout(() …

element上传图片,调取接口传值,参数FormData为空

需求 输入完reason,选完文件后,点击提交按钮后 调取接口。 遇到的问题 上传文件orderFile 字段一直为空 打印了发现,上传文件也是有值得。但是传到接口中就为空 原因 json里边不能放file,但是formData里可以放 file 也可以放…

AIGC ChatGPT 实现动态多维度分析雷达图制作

雷达图在多维度分析中是一种非常实用的可视化工具,主要有以下优势: 易于理解:雷达图使用多边形或者圆形的形式展示多维度的数据,直观易于理解。多维度对比:雷达图可以在同一张图上比较多个项目或者实体在多个维度上的…