当前位置: 首页 > 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”就…...

基于springboot的运动员健康管理系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过上千套毕业设计程序&#xff0c;没有什么华丽的语言&#xff0…...

【入门】【练9.3】 加四密码

| 时间限制&#xff1a;C/C 1000MS&#xff0c;其他语言 2000MS 内存限制&#xff1a;C/C 64MB&#xff0c;其他语言 128MB 难度&#xff1a;中等 分数&#xff1a;100 OI排行榜得分&#xff1a;12(0.1*分数2*难度) 出题人&#xff1a;root | 描述 要将 China…...

CSS 渐变完全指南:从基础概念到实战案例(线性渐变/径向渐变/重复渐变)

一、什么是 CSS 渐变&#xff1f; 渐变是网页设计中常用的视觉效果&#xff0c;指两种或多种颜色之间的平滑过渡。CSS 提供了强大的渐变功能&#xff0c;无需依赖图片即可创建复杂的色彩过渡效果&#xff0c;主要分为线性渐变和径向渐变两大类。 二、线性渐变&#xff08;Line…...

【Netty系列】解决TCP粘包和拆包:LengthFieldBasedFrameDecoder

目录 如何使用&#xff1f; 1. 示例代码&#xff08;基于Netty&#xff09; 2. 关键参数解释 3. 协议格式示例 4. 常见配置场景 场景1&#xff1a;长度字段包含自身 场景2&#xff1a;长度字段在消息中间 5. 注意事项 举个例子 完整示例&#xff1a;客户端与服务端交互…...

ADQ36-2通道2.5G,4通道5G采样PXIE

ADQ36是一款高端12位四通道灵活数据采集板&#xff0c;针对高通道数科学应用进行了优化。ADQ36具有以下特性: 4 / 2模拟输入通道每通道2.5 / 5 GSPS7gb/秒的持续数据传输速率两个外部触发器通用输入/输出&#xff08;GPIO&#xff09;ADQ36数字化仪包括固件FWDAQ ADQ36简介 特…...

ArcGIS Pro 创建渔网格网过大,只有几个格网的解决方案

之前用ArcGIS Pro创建渔网的时候&#xff0c;发现创建出来格网过大&#xff0c;只有几个格网。 后来查阅资料&#xff0c;发现是坐标不对&#xff0c;导致设置格网大小时单位为度&#xff0c;而不是米&#xff0c;因此需要进行坐标系转换&#xff0c;网上有很多资料讲了ArcGIS …...

保持本地 Git 项目副本与远程仓库完全同步

核心目标&#xff1a; 保持本地 Git 项目副本与 GitHub 远程仓库完全同步。 关键方法&#xff1a; 定期执行 git pull 命令。 操作步骤&#xff1a; 进入项目目录&#xff1a; 在终端/命令行中&#xff0c;使用 cd 命令切换到你的项目文件夹。执行拉取命令&#xff1a; 运行…...

GIS数据类型综合解析

GIS数据类型综合解析 目录 GIS数据类型综合解析1. 总体介绍2. GIS数据类型分类与对比2.1 主要数据类型对比表 3. 详细解析与扩展内容3.1 矢量数据&#xff08;Vector Data&#xff09;3.2 栅格数据&#xff08;Raster Data&#xff09;3.3 属性数据&#xff08;Attribute Data&…...

Rust Mock 工具

Rust Mock 工具 Mock&#xff08;模拟&#xff09;是测试中不可或缺的工具&#xff0c;用来替代复杂或不可控的依赖&#xff0c;比如数据库、网络服务等&#xff0c;帮助我们写出高质量、健壮的测试代码。Rust 社区中&#xff0c;mockall 和 mockito 是两款主流且强大的 Mock …...

hot100 -- 4.子串系列

1.和为 K 的子数组 问题&#xff1a; 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 方法1&#xff1a;暴力枚举 # 方法1&#xff1a;暴力枚举&#xff08;遍历子数组起点和终点&…...