数据库相关知识2

news2024/11/26 4:35:28

数据库知识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.coloradmin.cn/o/938923.html

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

相关文章

Java:HashMap、LinkedHashMap、TreeMap集合的底层原理和集合的嵌套

HashMap的底层原理 LinkedHashMap的底层原理 TreeMap集合的底层原理 集合的嵌套

汽车制造行业,配电柜如何实施监控?

工业领域的生产过程依赖于高效、稳定的电力供应,而配电柜作为电力分配和控制的关键组件,其监控显得尤为重要。 配电柜监控通过实时监测、数据收集和远程控制,为工业企业提供了一种有效管理电能的手段,从而确保生产的连续性、安全性…

C++ 改善程序的具体做法 学习笔记

1、尽量用const enum inline替换#define 因为#define是做预处理操作,编译器从未看见该常量,编译器刚开始编译,它就被预处理器移走了,而#define的本质就是做替换,它可能从来未进入记号表 解决方法是用常量替换宏 语言…

linux 设置与命令基础(二)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、系统基本操作 二、命令类型 三、命令语法 四、命令补齐 五、命令帮助 六、系统基本操作命令 总结 前言 这是本人学习Linux的第二天,今天主…

Unity插件---Dotween

1.什么是DOTween DoTween 是由 Demigiant 开发的,被广泛应用于 Unity 游戏开发中。它是一个流行的动画插件,被许多开发者用于创建流畅、高效的动画效果,提升游戏体验。 2.DOTween的初始配置 ①set up 首先找到DOTween Unity Panel 的面板 点…

机器学习资料汇总

一 卷积 原来卷积是这么计算的 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/268179286 最核心的部分是要知道,通道数和输出特征图无关,是卷积核的个数,决定了输出特征图的个数

【进程】状态模型(三态、五态、七态)

进程的三态模型 按进程在执行过程中的不同情况至少要定义三种状态: 运行(running)态:进程占有处理器正在运行的状态。进程已获得CPU,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态&#xf…

eclipse工作区打开了很多文件,如何快速找到某个文件

例如,我在eclipse工作区打开了几十个文件,其中有的文件还不是eclipse某个工程中的文件,而是从外部直接拖到工作区打开的: 如果要找到某个文件,可以用鼠标单击打开文件的数字的地方,如下面红框的地方&…

设计模式(一)

1、适配器模式 (1)概述 适配器中有一个适配器包装类Adapter,其包装的对象为适配者Adaptee,适配器作用就是将客户端请求转化为调用适配者中的接口;当调用适配器中的方法时,适配器内部会调用适配者类的方法…

分享2个u盘还原方法,轻松恢复u盘数据!

U盘,作为便捷的存储设备,经常用于传输和存储重要文件。然而,由于误操作、病毒感染或其他原因,U盘上的数据可能会丢失。在这种情况下,进行u盘还原成为救回丢失数据的关键一步。 本文将解释U盘还原的意义,并…

利用数据透视表统计出现的次数

一、统计出现的次数 注意:字段是直接使用左键拖动到求和栏中即可。 二、表内数据求和 三、按时间统计(参考该文)

RT_Thread内核机制学习(二)

对于RTT来说,每个线程创建时都自带一个定时器 rt_err_t rt_thread_sleep(rt_tick_t tick) {register rt_base_t temp;struct rt_thread *thread;/* set to current thread */thread rt_thread_self();RT_ASSERT(thread ! RT_NULL);RT_ASSERT(rt_object_get_type(…

Protobuf高性能接口ZeroCopyStream

Protobuf ZeroCopyStream 1.ZeroCopyStream protobuf在io接口上有一个叫做ZeroCopyStream,对于IO的接口设计,pb提供了相关序列化与反序列化接口,如: // Read a protocol buffer from the given zero-copy input stream. If // su…

Bigemap在公路勘察设计行业中如何应用呢?

选择Bigemap的原因: Google 已经停止使用,天地图清晰度偏低,bigmap可以提供多种不同源的影像、矢量数据。奥维,有接触,做了比选,后来从技术本身去考虑这个问题,影像、矢量数据下载方便&#xf…

命令行环境题目

在后台产生一个ID 不会输出任何东西

Golang Gorm 一对多的添加

一对多的添加有两种情况: 一种是添加用户的时候同时创建文章其次是创建文章关联已经存在的用户。 package mainimport ("gorm.io/driver/mysql""gorm.io/gorm" )// User 用户表 一个用户拥有多篇文章 type User struct {ID int64Name …

强强联袂,产教融合丨知了汇智与成都世纪超体达成战略合作

为了共培数字营销人才,实现产业、教育双向赋能,为地方乃至全国电商发展注入源源不断的行业性人才,8月24日,成都知了汇智科技有限公司(以下简称“知了汇智”)与成都世纪超体科技有限公司(以下简称…

科技资讯|苹果发布新专利:可在车内定位苹果的智能设备

根据美国商标和专利局近期公示的清单,苹果公司获得了一项名为《车内定位移动设备的系统和方式》专利,概述了在车内狭窄空间内如何定位 iPhone 等移动设备。 Find My 服务现阶段没有使用 UWB 来追踪 iPhone 或者 iPad,而是依赖 GPS 等相关辅…

iTubeGo for Mac视频下载器

iTubeGo YouTube Downloader是一款功能强大的YouTube视频下载工具, 它具有以下特色: 多种格式支持:iTubeGo YouTube Downloader可以将YouTube视频下载为多种常见的视频和音频格式,包括MP4、MP3、AVI、FLV、MOV、WMV等&#xff0c…

RFID服装管理系统:点亮时尚世界的新星

今天我们要聊聊一个真正酷炫的系统——RFID服装管理系统。別担心,我会用最地道的方式跟你聊,咱们来解开这神秘的时尚密码吧! 首先,先別怕,RFID其实是射频识别技术的缩写。别觉得高大上,其实就是让你的服装…