当前位置: 首页 > news >正文

MySQL数据管理二

1.数据库的完整性
数据库中的数据是从外界输入的,而数据的输入由于种种原因,会发生输入无效或错误信息。保证输入的数据符合规定,成为了数据库系统,尤其是多用户的关系数据库系统首要关注的问题。
它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。
分为三类:域完整性、引用完整性、实体完整性

2、实体完整性
表中所有的行唯一

3.域完整性
列必须满足特定的数据类型或约束
约束包括取值范围精度等

4.引用完整性
保证主关键字和外部关键字之间的参照关系。涉及两个或两个以上表的数据的一致性维护

5、使用约束实现数据完整性
数据库采用多种方法来保证数据完整性,包括约束、规则和触发器。

 约束类型

关键字

说明

非空约束

NOT NULL

如果字段不允许为空,则需要设置NOT NULL约束。

默认约束

DEFAULT

赋予某字段默认值,如果该字段没有赋值,则其值为默认值。

唯一约束

UNIQUE KEY

设置该字段的值唯一的,允许为空。

主键约束

PRIMARY KEY

设置该字段为表的主键,可以作为该表记录的唯一标识。

外键约束

FOREIGN KEY

用于在两表之间建立关系,需要引用主表的哪一字段。

 6.添加约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束关键字说明
约束名的取名推荐采用:约束类型_约束字段
主键(Primary Key)约束:如 PK_stuNo
唯一(Unique )约束:如 UQ_stuID
外键(Foreign Key)约束:如 FK_stuNo 

7.设置唯一约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名)ALTER TABLE student
ALTER TABLE STUDENT ADD CONSTRAINT uq_stuid  UNIQUE(identitycard) 

8.主键
唯一标识表中的行,强制表的实体完整性
1)保证实体的完整性;
2)加快数据库的操作速度;
3)添加新记录时,DBMS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复;
4) DBMS自动按主键值的顺序显示记录。如果没有定义主键,则按输入记录的顺序显示记录。
1:一个表只能有一个主键,并且主键列不允许出现空值。
2:尽管有的表中允许没有主键,但是通常情况下,建议为表设置主键。

9.主键选择的原则
1)最少性是指列数最少的键。如果可以从单个主键和复合主键中选择,应该选择单个主键,这是因为操作一列比操作多列要快。当然该规则也有例外,例如,两个整数类型的列的组合比一个很大的字符类型的列操作要快。
2)稳定性是指列中数据的特征。由于主键通常用来在两个表之间建立联系,所以主键的数据不能经常更新。理想情况下,应该永远不变。
如果两列或多列组合起来唯一标识一行,为组合主键

10.主键约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY(列名1,列名2,...)

11.外键
一般不使用外键
在数据库设计中,学生的信息和学生的考试成绩是存放在不同的数据表中。在成绩表中,可以存储学生的学号来表示是哪个学生的考试成绩,这又引发一个问题:“如果成绩表中输入的学号根本不存在或者把学号写错了” ,该怎么办 ?
这个时候,就应当建立一种“引用”的关系,确保“从表”中的某个数据项在“主表”中必须存在,以避免上述错误发生。
“外键”就是用来达到这个目的的,它是相对于主键而言的,就是“从表”中对应于“主表”中的列,在从表中称为外键或引用键,它的值要求与主表的主键相对应。
“外键”用来强制引用完整性。一个表可以有多个外键。

12.外键约束
ALTER TABLE 从表名
ADD CONSTRAINT 约束名  FOREIGN KEY(从表的列名)
REFERENCES 主表名(主表的列名)
主表中的字段必须为主键。
从表中的外键列和主表中的主键列的数据类型要保持一致,和字段名无关。
主表和从表的表类型为InnoDB。

13.删除约束
ALTER TABLE 表名  DROP PRIMARY KEY;   #删除主键约束
ALTER TABLE 表名  DROP KEY 唯一约束名;  #删除唯一约束
ALTER TABLE 表名  DROP FOREIGN KEY 外键约束名;  #删除外键约束

14.DML语言
数据操作语言
包括INSERT,UPDATE,DELETE(增删改)

15.插入数据
INSERT INTO  表名  [ ( 字段1, 字段2, 字段3, … ) ]  VALUES  ( 值1, 值2, 值3, …);
INSERT INTO  表名  [ ( 字段1, 字段2, 字段3, … ) ]  VALUES  ( 值1, 值2, 值3, …);
表的字段是可选的,如果省略,则依次插入所有的字段。
如果插入的是表中部分列的数据,字段名列表必须填写。
多个字段和多个值之间使用逗号分隔。
值列表必须和字段名列表数量相同且数据类型相符(字符串和日期类型的值要加单引号)。
值列表中的数据必须符合数据完整性的要求。

16.将查询结果添加到查询中
CREATE TABLE  新表名  ( SELECT 字段1, 字段2, 字段3, … FROM 原表)
CREATE TABLE  stuhistory  ( SELECT *  FROM student)

17.修改数据
 UPDATE   表名   
 SET   column_name = value  [ ,  column_name2 = value2, …. ]  [ WHERE   condition ];
column_name 为要更改的字段名。
value 为修改后的数据,可以为变量、具体值、表达式或者嵌套的SELECT结果。
多个字段之间用逗号隔开。
提供的修改数据必须符合数据完整性的要求。
condition为筛选条件,如不指定则修改该表的所有列数据。

18.sql语句的运算符
算数运算符
+、-、*、/、%(取模求余)、=(赋值)
比较运算符
=、<>或!=(不等于)、>、<、>=、<=、BETWEEN...AND...(之间)
逻辑运算符
AND,OR,NOT(取反)

19.删除数据
 DELETE FROM   表名   [ WHERE   condition ];
DELETE语句删除的是整条记录,不会只删除单个列。
condition为筛选条件,如不指定则修改该表的所有列数据。
TRUNCATE TABLE 命令
TRUNCATE TABLE   表名;
TRUNCATE TABLE不能用于有外键约束引用的表。
 

相关文章:

MySQL数据管理二

1.数据库的完整性 数据库中的数据是从外界输入的&#xff0c;而数据的输入由于种种原因&#xff0c;会发生输入无效或错误信息。保证输入的数据符合规定&#xff0c;成为了数据库系统&#xff0c;尤其是多用户的关系数据库系统首要关注的问题。 它是应防止数据库中存在不符合语…...

sqoop-import 详解

文章目录 前言一、介绍1. sqoop简介2. sqoop import的作用3. 语法3.1 sqoop import 语法3.2 导入配置属性 二、导入参数1. 常见参数2. 验证参数3. 导入控制参数4. 用于覆盖映射的参数5. 增量导入参数6. 输出行格式参数7. 输入解析参数8. Hive 参数9. HBase 参数10. Accumulo 参…...

第二周opencv

一、边缘检测算子 边缘检测算子是用于检测图像中物体边界的工具。边缘通常表示图像中灰度值或颜色发生显著变化的地方。边缘检测有助于识别图像中的物体形状、轮廓和结构。这些算子通过分析图像的灰度或颜色梯度来确定图像中的边缘。 梯度算子 要得到一幅图像的梯度&#xff0c…...

python_读取txt文件绘制多条曲线II

从给定的列表中来匹配txt文件对应列的数据&#xff1b; import matplotlib.pyplot as plt import re from datetime import datetime from pylab import mplmpl.rcParams["font.sans-serif"] ["SimHei"] # 设置显示中文字体 mpl.rcParams["axes.un…...

java排序简单总结和推荐使用套路(数据排序,结构体排序)

了解int和Integer的区别 int是Java的基本数据类型&#xff0c;用于表示整数值。Integer是int的包装类&#xff0c;它是一个对象&#xff0c;可以包含一个int值并提供一些额外的功能。 Java集合框架中的集合类&#xff08;如List、Set、Map&#xff09;只能存储对象&#xff0c;…...

掘根宝典之C语言联合和枚举

联合 C语言中的联合&#xff08;Union&#xff09;是一种特殊的数据类型&#xff0c;它允许在同一块内存空间中存储不同类型的数据。 联合与结构体类似&#xff0c;但不同的是&#xff0c;在给联合变量赋值时&#xff0c;它只能存储最后一次赋值的值。 创建联合 在C语言中&…...

【debug】element-ui时间控件回显后不可编辑且显示为空

问题&#xff1a;使用element-ui的时间控件回显数据&#xff0c;编辑数据没有反应&#xff1a;点时间和“确认”按钮都没反应。 输入框中会显示数据&#xff0c;但提交时的校验显示为空。 <el-form-item label"开始时间" prop"limitStartTime"><…...

【Linux从青铜到王者】进程信号

——————————————————————————————————————————— 信号入门 在了解信号之前有许多要理解的相关概念 我们可以先通过一个生活例子来初步认识一下信号 1.生活角度的信号 你在网上买了很多件商品&#xff0c;再等待不同商品快递的到来…...

MyBatis-Plus 快速入门

介绍 j​​​​​MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window)的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 官网&#xff1a;MyBatis-Plus (baomidou.com) 1.…...

iOS调起高德/百度/腾讯/谷歌/苹果地图并使用GCJ02坐标进行导航

使用演示: 2.地图API相关网站 : 高德:...

HarmonyOS Full SDK的安装

OpenHarmony的应用开发工具HUAWEI DevEco Studio现在随着OpenHarmony版本发布而发布,只能在版本发布说明中下载,例如最新版本的OpenHarmony 4.0 Release。对应的需要下载DevEco Studio 4.0 Release,如下图。 图片 下载Full SDK主要有两种方式,一种是通过DevEco Studio下载…...

小程序嵌套H5-真机突然无法使用

今天测试反馈了一个问题&#xff0c;测试环境的小程序突然就登录不了了。我自己拿手机扫码登录是正常的&#xff0c;用其他同事的手机扫描登录也是正常。 下面是排查的路线&#xff1a; 1、其他环境使用测试手机扫码登录是否正常&#xff1f;(正常) 2、H5地址改为本地IP&#…...

自然语言处理 | 语言模型(LM) 浅析

自然语言处理&#xff08;NLP&#xff09;中的语言模型&#xff08;Language Model, LM&#xff09;是一种统计模型&#xff0c;它的目标是计算一个给定文本序列的概率分布&#xff0c;即对于任意给定的一段文本序列&#xff08;单词序列&#xff09;&#xff0c;语言模型能够估…...

全量知识系统问题及SmartChat给出的答复 之13 解析器+DDD+文法型

Q32. DDD的领域概念和知识系统中设计的解析器之间的关系。 那下面&#xff0c;我们回到前面的问题上来。 前面说到了三种语法解析器&#xff0c;分别是 形式语言的&#xff08;机器或计算机语言&#xff09;、人工语言的和自然语言的。再前面&#xff0c;我们聊到了DDD设计思…...

华中某科技大学校园网疑似dns劫持的解决方法

问题 在校园网ping xxx.ddns.net&#xff0c;域名解析失败 使用热点ping xxx.ddns.net&#xff0c;可以ping通 尝试设置windows dns首选dns为114.114.114.114&#xff0c;重新ping&#xff0c;仍然域名解析失败 猜测【校园网可能劫持dns请求】 解决方法 使用加密的dns请求…...

模型部署 - onnx 的导出和分析 -(1) - PyTorch 导出 ONNX - 学习记录

onnx 的导出和分析 一、PyTorch 导出 ONNX 的方法1.1、一个简单的例子 -- 将线性模型转成 onnx1.2、导出多个输出头的模型1.3、导出含有动态维度的模型 二、pytorch 导出 onnx 不成功的时候如何解决2.1、修改 opset 的版本2.2、替换 pytorch 中的算子组合2.3、在 pytorch 登记&…...

【鸿蒙 HarmonyOS 4.0】多设备响应式布局

一、背景 在渲染页面时&#xff0c;需要根据不同屏幕大小渲染出不同的效果&#xff0c;动态的判断设备屏幕大小&#xff0c;便需要采用多设备响应式布局。这种设计方法能够动态适配各种屏幕大小&#xff0c;确保网站在不同设备上都能呈现出最佳的效果。 二、媒体查询&#xf…...

Android ANR 日志分析定位

ANR 是 Android 应用程序中的 "Application Not Responding" 的缩写&#xff0c;中文意思是 "应用程序无响应"。这是当应用程序在 Android 系统上运行时&#xff0c;由于某种原因不能及时响应用户输入事件或执行一个操作&#xff0c;导致界面无法更新&…...

Optional 详解

Optional 详解 1、Optional 介绍2、创建 Optional 对象3、Optional 常用方法1. 判断值是否存在 — isPresent()2. 非空表达式 — ifPresent()3. 设置(获取)默认值 — orElse()、orElseGet()4. 获取值 — get()5. 过滤值 — filter()6. 转换值 — map() 作为一名 Java 程序员&am…...

(科目三)数据库基础知识

1、基本概念 1.1 数据库 1、数据、信息和数据处理 数据是指表达信息的某种物理符号&#xff1b; 信息是对客观事物的反映&#xff0c;是为某一特定目的二提供的决策数据&#xff1b; 数据处理是指将数据转换成信息的过程&#xff0c;是对各类型的数据进行收集、整理、存储、…...

FPGA实战:手把手教你用Verilog给NAND Flash数据上把“安全锁”(附完整ECC代码)

FPGA实战&#xff1a;用Verilog为NAND Flash打造硬件级ECC防护系统 1. 为什么你的NAND Flash需要硬件ECC&#xff1f; NAND Flash存储芯片在工业控制、物联网终端和边缘计算设备中扮演着关键角色&#xff0c;但它的物理特性导致数据可靠性存在先天缺陷。想象一下&#xff0c;当…...

Qwen2.5-0.5B-Instruct新手入门:从零到一的AI助手搭建全流程

Qwen2.5-0.5B-Instruct新手入门&#xff1a;从零到一的AI助手搭建全流程 1. 认识Qwen2.5-0.5B-Instruct 1.1 模型特点与优势 Qwen2.5-0.5B-Instruct是阿里开源的通义千问系列中最轻量级的指令微调版本&#xff0c;专为资源有限环境优化设计。这个5.08亿参数的模型虽然体积小…...

Anaconda虚拟环境管理:为春联生成模型创建独立Python空间

Anaconda虚拟环境管理&#xff1a;为春联生成模型创建独立Python空间 你是不是也遇到过这种情况&#xff1f;电脑上装了好几个Python项目&#xff0c;有的需要TensorFlow 2.0&#xff0c;有的却只能用TensorFlow 1.x&#xff0c;结果为了运行一个项目&#xff0c;把整个系统的…...

用ESP32和TB6612FNG做个遥控小车:从硬件接线到Arduino代码调试全记录

从零打造ESP32智能遥控小车&#xff1a;硬件选型、代码优化与避坑指南 项目背景与核心组件解析 去年夏天&#xff0c;我在工作室里堆满了各种电机和开发板&#xff0c;试图为侄子制作一个生日礼物——能通过手机控制的遥控小车。经过多次迭代&#xff0c;最终选择了ESP32TB6612…...

从单张图片到动态世界:Depth-Anything-3如何重塑3D视觉的通用法则

1. 当单张图片学会"思考"深度 第一次看到Depth-Anything-3&#xff08;DA3&#xff09;处理一张普通照片时&#xff0c;我盯着屏幕足足愣了三分钟。它就像给二维世界突然装上了Z轴——原本平淡无奇的街景照片&#xff0c;在DA3的解构下&#xff0c;近处的咖啡杯轮廓清…...

Nomad与Consul集群搭建实战指南

1. 为什么选择NomadConsul组合&#xff1f; 如果你正在寻找一套轻量级、易上手的分布式系统解决方案&#xff0c;Nomad和Consul这对黄金搭档绝对值得考虑。我最早接触这个组合是在三年前的一个物联网项目中&#xff0c;当时我们需要在20台边缘计算设备上动态部署服务&#xff0…...

微信聊天记录的数字守护:WeChatMsg本地存储解决方案全解析

微信聊天记录的数字守护&#xff1a;WeChatMsg本地存储解决方案全解析 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/W…...

从零上手FinalShell:Windows环境下的高效SSH连接与服务器管理实战

1. FinalShell是什么&#xff1f;为什么选择它&#xff1f; 如果你是Windows用户&#xff0c;第一次接触服务器管理&#xff0c;可能会被各种专业工具吓到。XShell虽然强大但收费&#xff0c;Putty又太简陋&#xff0c;这时候FinalShell就像个贴心的助手。我用了三年多&#xf…...

CCS12.2配置避坑:手把手教你为DSP28335生成可烧录的.bin和.hex文件

CCS12.2实战&#xff1a;DSP28335固件生成终极指南 最近在调试一块基于DSP28335的电机控制板时&#xff0c;遇到了固件升级的难题。传统的.out文件虽然可以通过仿真器下载&#xff0c;但在现场维护时显得力不从心。这时候&#xff0c;能够通过串口或CAN总线直接升级的.bin和.he…...

Scream:构建网络音频共享的虚拟声卡解决方案

Scream&#xff1a;构建网络音频共享的虚拟声卡解决方案 【免费下载链接】scream Virtual network sound card for Microsoft Windows 项目地址: https://gitcode.com/gh_mirrors/sc/scream 一、核心价值&#xff1a;突破物理限制的音频传输革命 在数字化办公与家庭娱乐…...