数据库表的约束条件[通俗易懂]

数据库表的约束条件[通俗易懂]1.主键约束主键约束可以用两种方式定义:列级主键约束和表级主键约束列级主键约束演示:createtabledept_htlwk(deptnovarchar(20)primarykey,–列级约束条件dnamevarchar(20),locationvarchar(40));表级主键约束演示:createtabledept_htlwk(deptnovarchar(20),dnamevarchar(20),locationvarchar(40),

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1.主键约束

主键约束可以用两种方式定义:列级主键约束和表级主键约束

列级主键约束演示:

create table dept_htlwk(
deptno varchar(20) primary key, --列级约束条件 
dname varchar(20),
location varchar(40)
);

表级主键约束演示:

create table dept_htlwk( 
deptno varchar(20) ,
dname varchar(20) ,
location varchar(40) ,
constraint dept_htlwk_deptno_pk primary key (deptno) );

2.非空约束

非空约束只有列级定义方式,即非空约束只能定义在列级

create table dept_htlwk_bak1(
deptno varchar(20) primary key,
dname varchar(30) not null,//非空约束
location varchar(50));

非空约束如何命名?

create table dept_htlwk_bak1(
deptno varchar(20) primary key,
dname varchar(30) constraint dept_htlwk_bak1_dname_nn not null,//非空约束
location varchar(50));

3.唯一约束

唯一约束可以用两种方式定义:列级唯一约束和表级唯一约束

列级唯一约束演示:

create table student(
student_id bigint(20) primary key,
student_name varchar(30) not null,
email varchar(30) unique,
student_age tinyint(3));

表级唯一约束演示:

 create table student(
student_id bigint(20),
student_name varchar(30) not null,
email varchar(30),
age tinyint(3),
constraint student_id_pk primary key(student_id),//表级主键约束
constraint student_email_uk unique(email) );//表级唯一约束

4.检查约束

检查约束可以用两种方式定义:列级检查约束和表级检查约束

列级检查约束演示:

create table student(
student_id bigint(20) primary key,
student_name varchar(30) not null,
email varchar(30) unique,
age tinyint(3) check(age > 10),
gender char(1) check(gender in('F', 'M') ) --'F'代表女生 ;'M'代表男生
);

表级检查约束演示:

create table student( 
student_id bigint(20),
student_name varchar(10) not null,
email varchar(30),
age tinyint(3),
gender char(1), --'F'代表女生 ;'M'代表男生
constraint student_id_pk primary key(student_id),
constraint student_email_uk unique(email),
constraint student_age_ck check(age > 10),
constraint student_gender_ck check(gender in('F', 'M', 'f', 'm'))
 );

MySQL关于check约束无效的解决办法

5.外键约束

外键约束只有表级定义方式,即外键约束只能定义在表级

外键约束演示:

create table student( 
student_id bigint(20),
student_name varchar(20) not null, 
email varchar(30) unique,
gender char(1),
age tinyint(3),
major_id bigint(20),
constraint student_id_pk primary key(student_id),
constraint student_gender_ck check (gender in ('F','M','f','m')),
constraint student_major_id_fk foreign key (major_id) references major(major_id) on delete set null);

解释:
on delete set null 一旦主表数据删除,从表关联数据置为null
on delete cascade 级联删除,主表数据删除,从表关联数据也删除

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182418.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JAVA 位操作详解 另一篇

    JAVA 位操作详解 另一篇

  • 基于Spring MVC + Spring + MyBatis的【图书信息管理系统(一)】

    基于Spring MVC + Spring + MyBatis的【图书信息管理系统(一)】资源下载:https://download.csdn.net/download/weixin_44893902/33163160一、语言和环境1.实现语言:JAVA语言。2.环境要求:MyEclipse/Eclipse+Tomcat+MySql。3.使用技术:SpringMVC+Spring+Mybatis。二、实现功能随着校内图书馆的发展,现需要制作图书信息管理系统,主要功能如下:1.首页默认显示所有图书信息2.鼠标悬停某行数据时,以线性过渡动画显示光棒效果3.用.

  • ViewPager 详解(一)—基本入门

    ViewPager 详解(一)—基本入门前言:这两天研究研究ViewPager滚动功能,现在很多的app都有用到这个功能,我们的大虾米也有这个模块。要研究就彻底的研究研究,我从不满足于一个功能只是简单的应用,要学就学的彻底,所以我打算将ViewPager分几篇写,研究的哪个程度就写到哪个程度吧。今天是第一篇,基本入门篇。相关文章:1、《ViewPager详解(一)—基本入门》2、《ViewPager详…

  • 图集谷-写真集-爬虫-1.0[通俗易懂]

    图集谷-写真集-爬虫-1.0[通俗易懂]图集谷写真集爬虫

  • sqlSessionFactory创建

    sqlSessionFactory创建前言分析上篇文章的整合的配置文件,我们可以知道配置的bean是成树状结构的,而在树的最顶层是类型为org.mybatis.Spring.SqlSessionFactoryBean的bean,它将其他相关的bean组装在了一起,那么我们的分析就从此类开始。sqlSessionFactory创建对于配置文件的读取,Spring是通过org.mybatis.Spring.SqlSessi…

  • Mp4文件和3gp文件的区别「建议收藏」

    Mp4文件和3gp文件的区别「建议收藏」相同:3GP/MP4都是文件容器。不同:3GP是通信公司制定的规范主要用在手机上这种移动通讯设备上,所以对文件内包含的音视频编码格式定义的非常死.这样手机只要支持固定的几种codec就可以放3g

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号