数据库约束定义及分类

约束

约束定义及分类:

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

相关推荐

  • PHP操作MySQL详细自学教程(附代码)

      开启PHP操作MySQL的函数库    查看是否开启MySQL函数库功能 创建一个php文件,在这个文件中写phpinfo();,查看当前文件是否有MySQL。 三、   PHP操作MySQL的流程   1.链接数据库 2.选择数据库并设置编码 3.…

    2018年3月30日 PHP自学教程
    01.3K
  • 经验分享mysql服务器安装步骤是什么样的。

    MySQL服务器安装步骤如下:1. 下载MySQL安装包;2. 解压缩安装包;3. 进入解压后的文件夹,运行mysqld –initialize命令进行初始化;4. 进入解压后的文件夹,运行mysqld命令启动MySQL服务;5. 进入解压后的文…

    2024年7月27日
    01
  • 我来分享wordpress 虚拟主机。

    在选择WordPress虚拟主机时,重要的是要考虑以下几个因素:PHP7或以上版本、MySQL5.6或以上版本,或MariaDB 10.1及以上版本、支持HTTPS(SSL)。虚拟主机的速度、安全性和可靠程度也是需要考虑的重要因素。在购买之…

    2024年7月25日
    00
  • oracle密码怎么设置。

    您可以通过以下步骤设置Oracle密码:,1. 登录到Oracle数据库。,2. 使用DBA身份登录。,3. 输入命令进入Oracle控制台,连接后查看用户列表。,4. 修改用户口令即可。 Oracle数据库是一款功能强大的关系型数据库管…

    2024年7月16日
    01
  • 我来教你修改oracle数据库编码。

    修改Oracle数据库编码,需要先备份数据,然后关闭数据库,修改参数文件,最后启动数据库。 在Oracle数据库中,串号(serial number)是一个非常重要的概念,它用于唯一标识数据库中的每个数据文件、控制文件和日志…

    2024年7月13日
    03
  • 今日分享php 匹配。

    PHP是一种广泛使用的开源通用脚本语言,特别适合于Web开发,可以嵌入到HTML中,而MySQL则是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司,PHP和MySQL的结合是Web开发中的一种常见组合,…

    2024年6月20日
    01
  • 高性能mysql实战。

    高性能MySQL实战是一本介绍如何优化MySQL性能的书籍,其中包括了MySQL的体系架构与存储引擎、事务与锁的机制、库表设计和索引设计的一些思路、架构设计和查询优化等内容。如果您需要更详细的信息,可以参考以下链接…

    2024年7月13日
    01
  • 小编教你db2move怎样导入导出数据库「db2 导入导出数据」。

    # db2move的数据库导入导出操作详解 ## 一、db2move简介 Db2move是一款由IBM开发的用于管理DB2数据库的工具,它可以帮助用户在不同的平台和环境中迁移数据库,而无需进行复杂的数据迁移或重建工作,Db2move提供了一…

    2024年6月14日
    01

联系我们

QQ:951076433

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