数据库约束定义及分类

约束

约束定义及分类:

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

相关推荐

  • 我来教你宝塔面板轻松实现LNMP一键安装省时省力搭建网站。

    宝塔面板是一款轻松实现LNMP一键安装的工具,可以省时省力地搭建网站。 宝塔面板轻松实现LNMP一键安装省时省力搭建网站 随着互联网的普及,越来越多的人开始关注自己的个人网站和博客,而搭建一个网站并不是一件容…

    2024年7月14日
    00
  • mysql_建立索引的优缺点

    建立索引的优缺点: 为什么要创建索引呢? 这是因为,创建索引可以大大提高系统的性能。 第一、通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二、可以大大加快 数据的检索速度,这也是创建索引的最…

    2017年10月19日
    0173
  • 关于mongodb创建数据库。

    MongoDB是一个非常流行的NoSQL数据库,它以其高性能、高可用性和易扩展性而受到许多开发者的喜爱,在MongoDB中,我们可以使用`use`命令来创建一个新的数据库,本文将介绍如何在MongoDB中创建一个新的数据库,并提供…

    2024年6月20日
    00
  • 经验分享cmd 执行mysql。

    要在cmd中执行MySQL,首先确保已经安装了MySQL并配置了环境变量。然后打开命令提示符,输入以下命令以启动MySQL客户端:,,“,mysql -u 用户名 -p,“,,输入密码后,即可进入MySQL命令行界面。 要在c…

    2024年6月26日
    00
  • 分享asp+mysql。

    ASP和MySQL是两种常用的Web开发技术,ASP用于编写动态网页,而MySQL则是一种关系型数据库管理系统。 强大的ASPCMS使用MySQL数据库 简介 ASPCMS(Active Server Pages Content Management System)是一个基于ASP.NET…

    2024年6月26日
    00
  • 分享win7下怎么启用mysql服务。

    您可以通过以下步骤在Windows 7上启用MySQL服务:,,1. 打开“服务”应用程序。,2. 在服务列表中查找“MySQL”。,3. 如果服务未启动,请右键单击该服务并选择“启动”。 MySQL简介 MySQL是一个关系型数据库管理系统,…

    2024年7月15日
    00
  • 关于自建服务器可以用来干什么。

    自建服务器可以用来干什么 随着互联网的普及和发展,越来越多的企业和个人开始关注到服务器的重要性,服务器作为网络的核心设备,承担着存储、处理和传输数据的重要任务,自建服务器可以用来干什么呢?本文将从以下…

    2024年7月6日
    00
  • 教你如何管理mysql数据库。

    MySQL是一种开源的关系型数据库管理系统,它可以用于管理关系型数据库。要管理MySQL数据库,您需要了解SQL语言。SQL是结构化查询语言,它是用于管理关系型数据库的标准语言。您可以使用SQL语句来创建、删除和修改数…

    2024年7月24日
    00

联系我们

QQ:951076433

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