数据库约束定义及分类

约束

约束定义及分类:

Constraint,对数据库中的数据做要求,以保证设计出来的数据库及其中的数据真实可用。

约束分为

  • 行完整性约束(三范式)
  • 列完整性约束。
  • 主键约束

Alter table 表名 add constraint PK_表名_列名 primary key(列名);

创建表时可以简写

Create table tt(ttid int primary key);

Create table tt(ttid int,primary key(ttid));

创建的主键名是PK_随机的十六进制代码

 

外键约束

外键约束是加在外键表中,外键表中也有主键。

Alter table 外键表 add constraint FK_外键表名_外键列 foreign key(外键列) references 主键表(主键列);

 

删除外键约束

alter table 表名 drop foreign key FK_表名_列名;

在创建表时还可以简写

Create table 表名(

T1id int primary key auto_increment,

Scid int,

Foreign key(scid) references 主表(主键列)

);

 

唯一约束

Alter table 表名 add constraint UQ_表名_列名 unique(列名);

在创建表时还可以简写

Create table 表名(

T1id int primary key auto_increment,

Scid int,

unique(列名)

);

 

默认值约束

Alter table 表名 alter 列名 set default 值;

  • 对于允许为空的列并且设置了默认值,插入时省略该列值为默认值;

Insert into 表名(主键[省略掉设置了默认值而且允许为空的列]) values(null);

  • 设置默认值,插入可以使用default关键字调用默认值;

Insert into 表名(主键,默认值列) values(null,default);

  • 插入时不要默认可以自由指定。

Insert into 表名(主键,默认值列) values(null,’其他值’);

创建表时又可以简写

Create table 表名(

默认值列 default 值

);

 

检查约束

Alter table 表名 add constraint CK_表名_列名 check(表达式);

ALTER table Student add constraint CK_Student_sname check(sname is not null);

 

创建表时可以简写

Create table Student(

Sname not null

);

 

Alter table Student add constraint CK_Student_sAge check(sAge>=18 and sAge<=60);

等同于

Alter table Student add constraint CK_Student_sAge check(sAge between 18 and 60);

 

MYSQL不知道检查约束!!

 

  • 对于由于操作系统或者浏览器外界元素的编码导致的乱码,在数据库中可以通过一个指令来纠正。

Set names 对应数据的编码;

Set character set 对应数据库的编码;

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/2930.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚重蔚管理团队
上一篇 2017年10月22日 22:28
下一篇 2017年10月24日 08:28

相关推荐

  • 教你MYSQL下载文档复制快速学习数据库知识。

    MySQL是一个开源的关系型数据库管理系统,广泛应用于各种场景,如网站、企业应用等,学习MySQL的基础知识和技能对于开发者来说非常重要,本文将为您提供一份详细的MySQL快速学习指南,帮助您快速掌握数据库知识。 M…

    2024年6月20日
    01
  • 我来教你asp.net web连接数据库的方法是什么。

    在ASP.NET Web应用程序中,连接数据库的方法主要有两种。一种是使用ADO.NET来连接数据库,这需要创建一个数据库连接,设置连接字符串,指定数据库的服务器名称,数据库名称,用户名等。另一种是使用MySQL for Visua…

    2024年7月18日
    01
  • 说说mysql连接测试不成功怎么解决。

    检查配置、用户名密码是否正确,重启服务或重新安装MySQL。 当我们在使用MySQL时,可能会遇到连接测试不成功的问题,这种情况可能是由于多种原因引起的,例如网络问题、数据库配置错误、权限问题等,本文将详细介绍…

    2024年7月28日
    06
  • 我来说说独立云虚拟主机租用可以干什么。

    独立云虚拟主机租用可以用于以下用途:1. 网站托管:将自己的网站托管在独立云虚拟主机上,可以享受更高的网站访问速度和更稳定的服务器环境,同时还可以根据需要自由地安装和配置各种网站应用程序。2. 应用程序部…

    2024年7月15日
    02
  • 教你MYSQL神器无需INTO,轻松操作数据库。

    MySQL神器,如phpMyAdmin、Navicat等,提供了直观的图形界面,让用户轻松管理数据库。它们支持多种操作,如查询、编辑、备份等,无需编写SQL语句,简化了数据库操作流程。 MySQL是一个广泛使用的开源关系型数据库管…

    2024年6月26日
    01
  • 今日分享如何把虚拟主机数据库数据清空掉。

    要清空虚拟主机数据库数据,首先需要登录到数据库管理系统,然后选择要清空的数据库,执行DELETE或TRUNCATE语句删除所有数据。具体操作方法因数据库类型而异。 清空虚拟主机数据库数据通常涉及以下步骤: 1、登录到…

    2024年6月29日
    01
  • mysql的数据操作_修改数据

    语句:update 表名 set 字段名1=值表达式1,字段名2=值表达式2,....where条件 ; 之前相关数据库操作请移步: 1、数据库的删、查、改操作 2、mysql的数据操作_修改数据和查询数据 3、mysql的数据操作_插入数据 4、…

    2018年3月11日
    0232
  • PHP与数据库Docker化的集成。

    随着云计算和容器化技术的飞速发展,越来越多的开发者开始将应用程序Docker化,以提高效率和便捷性。今天,我们将探讨如何将流行的开发语言PHP和数据库Docker化,以实现更高效和可移植的开发流程。一、什么是Docker…

    2023年5月21日
    02

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息