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

MySQL 约束

查看约束

select * from information_schema.table_constraints
where   table_name='要查看的表名'

按约束的作用范围

列级约束: 将此约束声明在对应字段的后面

表级约束:在表中所有字段都声明完,在所有字段的后面声明的约束,可以声明组合约束

约束的作用

  1. not null 非空约束
  2. unique 唯一约束
  3. primary key 主键约束
  4. foreign key 外键约束
  5. check 检查约束
  6. default 默认值约束

在这里插入图片描述

添加约束

声明表定义约束

create table 表名 (
id int not null
);

声明表之后,追加、删除约束

alter table 表名
modify 列 类型 约束 — 追加约束 写上约束便可,若删除约束 不写约束便可

sql server 追加约束

alter table 表名
add constraint 约束名 约束类型 (字段)

alter table 表名
add constraint ch_tel check( 列名 like [0-9] [0-9][0-9][0-9] )

非空约束

声明表定义约束

create table 表名 (
id int not null
);
声明之后追加约束
alter table 表名
modify 列 类型 not null— 追加约束 写上约束便可,若删除约束 不写约束便可

删除非空约束

alter table 表名
modify 列 类型 — 除去 not null 便可

唯一约束 UNIQUE

在这里插入图片描述

  1. 同一个表可以有多个唯一约束
  2. 唯一约束可以是某一列的值唯一,也可以多个列组合的值唯一(复合约束)
  3. 唯一约束允许列值为空, 主键约束 是特殊的唯一约束,只是不允许为 null,即 主键约束(primary key)相当于 唯一约束+非空约束组合,主键约束 列 不允许重复,且不能出现 空值 null
  4. 在创建唯一约束的时候,若没有给唯一约束 命名,则默认和列名相同。复合唯一约束,没命名,也取 复合列中的第一个列 做为约束名
  5. Mysql 会给唯一约束的列上默认创建一个唯一索引, SQL server 中 主键约束,会默认创建一个 唯一索引

在create table 添加唯一约束

create table 表名(
sut_NO char(8) UNIQUE, – 列级约束
sut_ID char(18), – , 别忘记
constraint 约束名 UNIQUE(sut_ID ) 可以简写 UNIQUE KEY (sut_ID) —表级约束
);

在create table 添加复合唯一约束

create table 表名(
sut_NO char(8) , – 列级约束
sut_ID char(18), – , 别忘记
constraint 约束名 UNIQUE(sut_ID ,sut_NO) 可以简写 UNIQUE KEY (sut_ID,sut_NO) —表级约束
);

建表后 指定唯一约束

方式1 支持复合约束的
alter table 表名 add unique key(字段列表)

方式2 不支持复合约束
alter table 表名 modify 字段名 unique

删除唯一约束
在这里插入图片描述

alter table 表名
DROP INDEX 索引名

查看表的索引
show index from 表名 ;

主键约束 PRIMARY KEY

主键约束: 唯一约束+ 非空约束 非空且唯一
在这里插入图片描述

create table student (
id int autoincrement,
name   varchar(10),
stu_ID  char(18)  primary key   -- 列级约束----身份证号  create table student (
id int autoincrement,
name   varchar(10),
stu_ID  char(18) ,
--   MYSQL   主键名总是PRIMARY ,就算命名了主键约束名,也没用
constraint  约束名 primary key(stu_ID)   -- 列级约束----身份证号  

相关文章:

MySQL 约束

查看约束 select * from information_schema.table_constraints where table_name要查看的表名按约束的作用范围 列级约束: 将此约束声明在对应字段的后面 表级约束:在表中所有字段都声明完,在所有字段的后面声明的约束,可以声…...

unity实现角色体力功能【体力条+体力计算】

导读:实现功能 1、角色体力计算 2、角色疲劳动画 3、体力条制作、跟随 默认做好角色的idle/run/walk动画、切换和玩家输入,我使用的是新输入系统,动画时单变量混合树,参数Sports。 【每一部分功能根据自己需求观看哦】 1、角色体…...

【深度学习所有损失函数】在 NumPy、TensorFlow 和 PyTorch 中实现(1/2)

一、说明 在本文中,讨论了深度学习中使用的所有常见损失函数,并在NumPy,PyTorch和TensorFlow中实现了它们。 二、内容提要 我们本文所谈的代价函数如下所列: 均方误差 (MSE) 损失二进制交叉熵损失加权二进…...

七夕好物分享,哪些礼物适合送男/女朋友?这几款好物最为合适!

七夕是个值得纪念的日子,牛郎织女鹊桥相会的故事百年流传,七夕是一个表达爱意的节日,送礼物是必不可少的,情侣们可以选择一份有意义的礼物,也可以选择对方需要的东西当做礼物来赠送,总的来说,送…...

C语言学习系列-->看淡指针(2)

文章目录 前言一、数组名的理解二、使用指针访问数组三、一维数组传参本质四、二级指针五、指针数组六、指针数组模拟二维数组 前言 不把指针学的扎实&#xff0c;可不敢说自己C语言基础学的好 一、数组名的理解 #include <stdio.h> int main() {int arr[10] { 1,2,3,4…...

Java基础篇--Character 类

Character 类是用来操作单个字符的&#xff0c;它将 char 值包装在一个对象中。 实际上&#xff0c;在 Java 中&#xff0c;char 是基本数据类型&#xff0c;而 Character 是 char 的包装类。通过 Character 类&#xff0c;可以使用一系列方法来操作字符。在创建 Character 对…...

Flutter参考资料

Flutter 官网 : https://flutter.dev/ Flutter 插件下载地址 : https://pub.dev/packages Flutter 开发文档 : https://flutter.cn/docs ( 强烈推荐 ) 官方 GitHub 地址 : https://github.com/flutter Flutter 中文社区 : https://flutter.cn/ Flutter 实用教程 : https://flut…...

sed命令如何正确修改ini配置文件

需要保证key值的唯一性 function sed_key_value_file(){key$(echo "$1" | sed s/[\/&]/\\&/g)value$(echo "$2" | sed s/[\/&]/\\&/g)# 先删除原有的value&#xff0c;然后添加新的keyvaluesed -i -e "s#${key}.*#${key}${value}#&q…...

【新版系统架构补充】-信息系统基础知识

信息系统 信息系统的5个基本功能&#xff1a;输入、存储、处理、输出和控制 信息系统的分类&#xff08;低级到高级&#xff09;&#xff1a;业务&#xff08;数据&#xff09;处理系统&#xff08;TPS/DPS&#xff09;、管理信息系统&#xff08;MIS&#xff09;、决策支持系…...

安防监控视频汇聚平台EasyCVR分发的FLV视频流在VLC中无法播放是什么原因?

众所周知&#xff0c;TSINGSEE青犀视频汇聚平台EasyCVR可支持多协议方式接入&#xff0c;包括主流标准协议国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。在视频流的处理与分发上&#xff0c;视频监控…...

前端遇到的面试题

1.水平垂直居中 绝对定位 transform position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);绝对定位 margin(子元素宽高知道的情况下) position:absolute; top:50%; left:50%; margin-top:-100px; margin-left:-100px;绝对定位 margin:auto position:a…...

abbitmq启动访问不了http://localhost:15672 通过修改服务登录admin

abbitmq默认的对Administration授权&#xff0c;而我的用户不是默认的Administration&#xff0c;所以后来打开服务&#xff0c;找到rabbitmq服务&#xff0c;属性&#xff0c;登陆&#xff0c;将本地系统账户修改为此账户&#xff0c;修改完成之后再重启服务&#xff0c;这时候…...

换架 3D 飞机,继续飞呀飞

相信大多数图扑 HT 用户都曾见过这个飞机的 Demo&#xff0c;在图扑发展的这十年&#xff0c;这个 Demo 是许多学习 HT 用户一定会参考的经典 Demo 之一。 这个 Demo 用简洁的代码生动地展示了 OBJ 模型加载、数据绑定、动画和漫游等功能的实现。许多用户参考这个简单的 Demo 后…...

js ?? || 使用方法

平时很常用的就是||,比如调用接口的时候&#xff0c;接口报错了需要给个默认值 const data(await getData())||{};今天遇到了一个场景&#xff0c;正常后端返回的就是false&#xff0c;如果接口报错要默认设置成true&#xff0c;但如果用了 || &#xff0c;如下&#xff0c;那…...

i茅台自动申购算法协议分析

首发地址:http://zhuoyue360.com/crack/104.html 一、引言 今日看到有人分享了i茅台自动申购的文章。但是它酷似引流文章&#xff0c;全文一张图&#xff0c;呜呜呜。无法白嫖。太可恶了&#xff0c;因此&#xff0c;我来啦~ 我来整一整&#xff0c;我也要抢茅子&#xff01; …...

【HarmonyOS】Java如何引用外部jar包

【关键字】 Java、引用jar包​ 【写在前面】 使用API6和API7开发HarmonyOS应用时&#xff0c;因为应用中只能引用SDK中开放的功能接口&#xff0c;但是部分jdk自带的接口功能在SDK中并未封装&#xff0c;要想在工程中使用jdk开放的接口功能&#xff0c;需要将jdk中的jar包通过…...

vue在线编辑表格导入导出

npm i file-saver npm i exceljs npm i luckyexcelindex.html &#xff08;方式一在html中引入&#xff09; <link relstylesheet hrefhttps://cdn.jsdelivr.net/npm/luckysheetlatest/dist/plugins/css/pluginsCss.css /><link relstylesheet hrefhttps://cdn.jsde…...

监控Kafka的关键指标

Kafka 架构 上面绿色部分 PRODUCER&#xff08;生产者&#xff09;和下面紫色部分 CONSUMER&#xff08;消费者&#xff09;是业务程序&#xff0c;通常由研发人员埋点解决监控问题&#xff0c;如果是 Java 客户端也会暴露 JMX 指标。组件运维监控层面着重关注蓝色部分的 BROKE…...

React18 hook学习笔记

useState useState用于在函数组件中声明和管理状态 它接受初始状态&#xff0c;并返回一个状态变量和一个更新状态的函数 通过调用更新状态的函数&#xff0c;可以改变状态的值并触发组件的重新渲染 import { useState } from "react"function App() {const [obj, …...

Java038——正则表达式

一、认识正则表达式 正则表达式通常被用于判断语句中&#xff0c;用来检查某一字符串是否满足某一格式。正则表达式是含有一些具有特殊意义字符的字符串&#xff0c;这些特殊字符称为正则表达式的元字符。例如&#xff0c;“\d”表示数字 0~9 中的任何一个&#xff0c;“d”就…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...