MySQL 建表 及其 表的约束类型

目录

步骤:

1、选择数据库(mydb--自定义数据库) 

 2、建立班级表

3、建立学生表

4、增加约束+删除约束

 增添约束:

 删除约束:


以班级表和学生表为例说明表的约束类型

步骤:

1、选择数据库(mydb--自定义数据库) 

 2、建立班级表

命令如下:

create table class(

    class_id int primary key auto_increment comment '班级编号',

    class_name varchar(50) not null

    )auto_increment=1001;

在其中插入数据

insert into class values(null,'电子信息工程01');

查看插入结果: 

select *from class;

 再插入一个数据

 

  

说明:

auto_increment:自增

        默认从0开始自增1

        这里设置了起始的位置:10001

primary key:主键

        一个表中只允许一个主键

        从功能上看相当于非空且唯一

not null:非空约束

        确保字段值不允许为空
        所有数据类型的值都可以是NULL

3、建立学生表

 命令如下

create table student( stu_id int primary key auto_increment comment'学号',

                                stu_name varchar (30) not null comment '姓名',

                                stu_age tinyint check (stu_age >= 18 ) comment'年龄',

                                stu_gender char(1) default  'M' check (stu_gender in ('M','F')) comment'性别',

                                stu_addr varchar(200) unique,

                                stu_class int references class(class_id)

                                )auto_increment =10001;

 desc student 查看表结构

插入表数据:

 insert into student values(null,'z1',20,null,'hunan',10001);

查看表数据:

 select *from student;

check:检查约束

        如例子中约束了age的取值为18以上,约束gender为男或女

default:默认值约束

        可以使用default关键字设置每一个字段的默认值。

        如例子中若gender插入数据时未指定取值,则默认gender为‘M’

unique:唯一约束

        唯一性约束条件确保所在的字段或者字段组合不出现重复值
        唯一性约束条件的字段允许出现多个NULL
        同一张表内可建多个唯一约束
        唯一约束可由多列组合而成

references:外键约束

        外键是构建于一个表的两个字段或者两个表的两个字段之间的关系
        外键确保了相关的两个字段的两个关系:
        子(从)表外键列的值必须在主表参照列值的范围内,或者为空(也可以加非空约束,强制不允许为空)。
        当主表的记录被子表参照时,主表记录不允许被删除。
        外键参照的只能是主表主键或者唯一键,保证子表记录可以准确定位到被参照的记录。

        如例子中主表为class;子表为student。

4、增加约束+删除约束

 新建一个student1表(不含任何约束)

 增添约束:

alter table student1 add constraint student_id_pk primary key(stu_id);

alter table student1 modify stu_name varchar(30) not null;

alter table student1 add constraint student1_chk_1 check(stu_age >= 18);

alter table student1 modify stu_gender char(1) default 'M';

alter table student1 add constraint student1_chk_2 check(stu_gender in ('M','F'));

alter table student1 add constraint student1_addr_key unique key(stu_addr);

alter table student1 add constraint student1_class_id_fk foreign key(stu_class) references class
(class_id);

 删除约束

alter table student1 drop primary key;(删除PRIMARY KEY约束)

alter table student1 modify stu_name char null;(删除NOT NULL约束)

alter table student1 drop index stu_addr;(删除UNIQUE约束)

alter table student1 drop foreign key student1_class_id_fk;(删除FOREIGN KEY约束)

alter table student1 drop constraint student1_class_id_fk;(删除FOREIGN KEY约束)

alter table student1 drop check student1_chk_1; (删除CHECK约束)

alter table student1 drop check student1_chk_2; (删除CHECK约束)

alter table student1 modify stu_gender char(1);  (删除DEFAULT约束)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/67556.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java 企业工程管理系统软件源码 自主研发 工程行业适用 em

​ 工程项目管理软件(工程项目管理系统)对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营,全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#…

Linux配置QT Creator环境:ubuntu中安装QT Creator环境

一、前景 目前市面上很多公司使用QT Creator进行界面开发,基本都会选择在Linux环境进行,优点不仅是市场所需,更是方便后期代码的移植,相较于Windows系统,Linux系统移植性非常好。故此篇文章,介绍如何在Linu…

spring boot策略模式实用: 告警模块为例

spring boot策略模式实用: 告警模块 0 涉及知识点 策略模式, 模板方法, 代理, 多态, 反射 1 需求概括 场景: 每隔一段时间, 会获取设备运行数据, 如通过温湿度计获取到当前环境温湿度;需求: 对获取回来的进行分析, 超过配置的阈值需要产生对应的告警 2 方案设计 告警的类…

创建型设计模式:4、建造者模式(Builder Pattern)

目录 1、建造者模式含义 2、建造者模式的讲解 3、使用C实现建造者模式的实例 4、建造者模式的优缺点 5、建造者模式VS工厂模式 1、建造者模式含义 The intent of the Builder design pattern is to separate the construction of a complex object from its representatio…

云计算——CPU虚拟化

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​ 目录 前言 一.CPU虚拟化 1.CPU虚拟化的计算 (1)一颗cpu的算力 &…

创建型模式-单例模式

文章目录 一、创建型模式1. 单例设计模式1.1 单例模式的结构1.2 单例模式的实现(1)饿汉式-方式1(静态变量方式)(2)饿汉式-方式2(静态代码块方式)(3)懒汉式-方…

fetch异步上传图片(附html+JavaScript+php代码)

效果 index.html <!DOCTYPE html> <html><head><title>图片上传示例</title><meta charset"utf-8"><script src"upload.js"></script><style>*{padding: 0;margin: 0;}#app{width: 500px;margin: …

通过SunFlower学习Hilt基本使用

文章目录 添加hilt配置数据库自动注入常规kotlin 规范创建AppDatabase、表、查询封装Dao创建DatabaseModule&#xff0c;向外提供数据库访问方法InstallIn和Provider上Scope关系PlantRepository 使用 PlantDaoViewModel使用PlantRepositoryFragment声明需要进行注入sunflower 仓…

解决nvm安装后,node生效但npm无效

问题描述 nvm安装后&#xff0c;node生效但npm无效 清除缓存 C:\Users\cc\AppData\Roaming cc是我的用户名改成你自己的就行删除 npm和npm-cache

在vue中使用echarts

在Vue中使用ECharts可以按照以下步骤进行&#xff1a; 1. 安装ECharts&#xff1a; 在Vue项目的根目录下&#xff0c;执行以下命令安装ECharts依赖&#xff1a; npm install echarts --save2.引入echart import * as echarts from echarts引入echart有全部引入和按需引入&a…

浮动路由解决单点链路故障问题(第三十三课)

浮动路由解决单点链路故障问题(第三十三课) 理论来源于实践 1 路由的分类 2 直连路由: PC>ping 192.168.5.11Ping 192.168.5.11: 32 data bytes, Press Ctrl_C to break Request timeout! Request timeout! Request timeout! Request timeout! Request timeout!--- 192.16…

c基础扫雷

和三子棋一样&#xff0c;主函数先设计游戏菜单界面&#xff0c;这里就不做展示了。 初始化棋盘 初级扫雷大小为9*9的棋盘&#xff0c;但排雷是周围一圈进行排雷(8格)&#xff0c;而边界可能会越界。数组扩大了一圈,行和列都加了2&#xff0c;所以我们用一个11*11的数组来初始化…

【Git】版本控制器详解之git的概念和基本使用

版本控制器git 初始Gitgit的安装git的基本使用初始化本地仓库配置本地仓库三区协作添加---add修改文件--status|diff版本回退--reset撤销修改删除文件 初始Git 为了能够更⽅便我们管理不同版本的⽂件&#xff0c;便有了版本控制器。所谓的版本控制器&#xff0c;就是⼀个可以记…

skywalking忽略调用链路中的指定异常

文章目录 一、介绍二、演示项目介绍1. 支付服务2. 订单服务 三、项目演示1. 未忽略异常2. 忽略异常修改配置使用注解 四、结论 往期内容 一、skywalking安装教程 二、skywalking全链路追踪 三、skywalking日志收集 一、介绍 在前面介绍在微服务项目中使用skywalking进行全链…

进样顺序对列排斥能的影响

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入有3个节点&#xff0c;训练集AB各由6张二值化的图片组成&#xff0c;让AB中各有1个1&#xff0c;排列组合所有可能 &#xff0c;统计迭代次数并排序。 差值结构 A-B 迭代次数 36组平均迭代次数 - 2 1 1*0*0*0*0*0-2*…

Android自定义侧滑Item

源码地址&#xff1a;https://github.com/LanSeLianMa/CustomizeView/tree/master/cehuaitem 使用方式一&#xff1a;XML布局中直接使用 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com…

java版工程项目管理系统源码+系统管理+系统设置+项目管理+合同管理+二次开发em

​ 鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;公司对内部…

在家查阅下载AACR(美国癌症研究学会)数据库文献

AACR&#xff08;美国癌症研究学会&#xff09;简介&#xff1a; 美国癌症研究学会American Association for Cancer Research创建于1907年&#xff0c;是世界上成立最早、规模最大的致力于全面、创新和高水准癌症研究的科学组织。其出版物包括7种正式出版的期刊&#xff1a; …

【Eureka技术指南】「SpringCloud」从源码层面让你认识Eureka工作流程和运作机制(下)

原理回顾 Eureka Server 提供服务注册服务&#xff0c;各个节点启动后&#xff0c;会在Eureka Server中进行注册&#xff0c;这样Eureka Server中的服务注册表中将会存储所有可用服务节点的信息&#xff0c;服务节点的信息可以在界面中直观的看到。Eureka Client 是一个Java 客…

gpu-manager安装及测试

提示&#xff1a;GPU-manager安装为主部分内容做了升级开箱即用&#xff0c;有用请点收藏❤抱拳 文章目录 前言一、约束条件二、使用步骤1.下载镜像1.1 查看当前虚拟机的驱动类型&#xff1a; 2.部署gpu-manager3.部署gpu-admission4.修改kube-scheduler.yaml![在这里插入图片描…