数据库约束定义及分类

约束

约束定义及分类:

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 AB公司开发,目前属于Oracle公司,MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(Relational Database Manageme...

    2024年6月18日
    02
  • PHP实现MySQL数据库负载均衡的方法。

    在高并发的情况下,单个服务器无法承受所有的请求,因此需要将请求分散到不同的服务器上进行处理,这就是负载均衡的概念。MySQL作为一种常用的数据库管理系统,也需要负载均衡来提高其性能和可靠性。本文将介绍如...

    2023年5月21日
    014
  • php操作mysql的操作-查询数据库

    结合我们上一期讲过的php操作数据库的添加数据库,这期我学习的是查询数据库。通过以下截图代码记录了查询数据的操作。 上一期php操作数据库的添加数据库:https://www.cwhello.com/4861.html

    2018年3月23日
    0407
  • 我来教你MySQL报错:Error 1045(28000)的解决方法。

    简单介绍一下MySQL报错:Error 1045(28000) : user ‘root’@‘localhost’is denied access的解决方法: 服务启动之后,执行mysql -u root -p 报错:Error 1045(28000) : user ‘root’@‘localhost’is denied access E...

    2024年6月13日
    01
  • 教你5步教你怎样使用宝塔面板搭建小程序。

    宝塔面板搭建小程序教程:1.安装宝塔;2.创建网站并绑定域名;3.下载并上传小程序代码;4.配置数据库;5.申请微信开发者工具。 宝塔面板是一款简单易用的服务器管理工具,它可以帮助用户轻松搭建和管理网站、数据...

    2024年7月9日
    07
  • 分享简明易懂的数据库入门教程视频。

    本视频为初学者提供数据库入门教程,内容简明易懂。 数据库是计算机科学中的一个重要领域,它用于存储、管理和检索大量的数据,在这篇文章中,我们将介绍数据库的基本概念和使用方法,帮助你快速入门数据库。 数...

    2024年7月11日
    02
  • 说说sqlplus oracle。

    “使用sqlplus工具连接Oracle数据库。” Oracle数据库之SQLPLUS详解 SQLPLUS是Oracle数据库的一个命令行工具,它允许用户通过命令行界面与Oracle数据库进行交互,SQLPLUS提供了一种简单、灵活的方式来...

    2024年7月17日
    01
  • 今日分享jsp用什么数据库。

    JSP可以使用多种数据库,例如MySQL、Oracle、SQL Server等。 JSP建站可以使用哪些数据库? 在进行JSP建站时,可以选择多种数据库作为数据存储和管理的工具,以下是一些常见的数据库选择: 1、关系型数据库(RDBMS)...

    2024年7月9日
    00

联系我们

QQ:951076433

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