数据库相关知识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中的空格…

unity 提取 字符串中 数字 修改后返回 字符串

参考博主:unity 提取字符串数字修改后返回字符串_unity string提取数字_lvcoc的博客-CSDN博客 正数和浮点数的 正则表达式 //正则表达式//const string pattern "\d";//表达1位或多位的整数数字 const string pattern "\d\.\d";//表达1位或…

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

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

数据结构1

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

自动设置服务器全教程

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

【MongoDB】Springboot中MongoDB简单使用

1. docker安装MongoDB 拉取镜像 docker pull mongo创建容器 docker run -di --name mongo-service --restartalways -p 27017:27017 -v ~/data/mongodata:/data mongo2. 导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactI…

前端如何走通后端接口

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

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

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

Glog安装与使用

安装 脚本 #!/bin/bash git clone https://github.com/google/glog.git cd glog git checkout v0.4.0 mkdir build && cd build cmake .. make -j4 echo "your password" | sudo -S make install使用 main.cc #include <glog/logging.h>int main(i…

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

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

android2022配置opencv4android480

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

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

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

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

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

Redis Replication

Redis Replication 1、前言 在单节点搞事情, 存在的问题包括存量问题和增量问题两类, 解决方案就是1个不行上N个, 做到单机维度宕机但服务维度是可用的。 1.1 存量问题 如果目前的单节点QPS满足(也就是综合瓶颈还没达到), 那么只有宕机能影响到。如果业务量不大, 又是出于成…

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

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

三种常用盒子布局的方法

在Vue中&#xff0c;可以使用各种CSS布局属性和技巧来设置盒子的布局。以下是一些常用的方法&#xff1a; 1.使用Flexbox布局&#xff1a;在包含盒子的父元素上设置display: flex&#xff0c;然后可以使用flex-direction、justify-content和align-items 等属性来控制盒子的布局…

Docker学习笔记

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

机器学习基础09-审查分类算法(基于印第安糖尿病Pima Indians数据集)

算法审查是选择合适的机器学习算法的主要方法之一。审查算法前并 不知道哪个算法对问题最有效&#xff0c;必须设计一定的实验进行验证&#xff0c;以找到对问题最有效的算法。本章将学习通过 scikit-learn来审查六种机器学习的分类算法&#xff0c;通过比较算法评估矩阵的结果…