数据库表的列约束

1、主键约束——PRIMARY KEY

声明了主键约束的列上不允许插入重复的值,一个表中只能有一个主键,通常加在编号列上,查询的时候会按照主键标号从小到大排序,会加快查找速度。主键约束不允许为NULL

2、唯一约束——UNIQUE

声明了唯一约束的列上,不允许插入重复的值,但允许插入NULL,并且多个NULL。一个表中可以出现多个唯一约束。

3、非空约束——NOT NULL

声明了非空约束的列上禁止为NULL

4、检查约束——CHECK

mysql不支持检查约束,认为会对服务器造成一定的压力,降低数据的插入速度。

5、外键约束——FOREIGN KEY

声明了外键约束的列上,取值必须在另一个表的主键列上出现过,而且两者的列类型要保持一致。

FOREIGN KEY (familyId) REFERENCES  family(fid)

6、默认值约束——DEFAULT

7、自增列——AUTO_INCREMENT

原文地址:https://www.cnblogs.com/Dcode/p/12700257.html

时间: 2024-08-12 09:38:29

数据库表的列约束的相关文章

数据库表散列

http://dapple.iteye.com/blog/740338 数据库表散列: 思路:1.缩短查询耗时: 2.分拆表或者库,表小,查询自然快: 3.需要快速定位,hash算法可以做到这种(唯一)映射

PostgreSQL修改数据库表的列属性(ALTER语句)

一,修改表 PostgreSQL 提供了一族命令用于修改现有表. 可以实现: 增加字段, 删除字段, 增加约束, 删除约束, 修改默认值, 重命名字段, 重命名表. 这些操作可以用:ALTER TABLE命令执行的. 1,增加字段 要增加一个字段,使用这条命令: ALTER TABLE products ADD COLUMN description text; 新增的字段对于表中已经存在的行而言最初将先填充空值. 你也可以同时在该字段上定义约束,使用通常的语法: ALTER TABLE prod

MySql 数据库表之间--->>>增加约束

#1.向表emp2的id列中添加PRIMARY KEY约束(my_emp_id_pk) ALTER TABLE emp2 MODIFY COLUMN id INT PRIMARY KEY;ALTER TABLE emp2 ADD CONSTRAINT my_emp_id_pk PRIMARY KEY(id); #2. 向表dept2的id列中添加PRIMARY KEY约束(my_dept_id_pk) #3. 向表emp2中添加列dept_id,并在其中定义FOREIGN KEY约束,与之相关联

通过SQL语句查看数据库表的列数

看具体是什么数据库,以oracle,mysql,sqlserver分别回答. 1.oracle: 1 select count(*) from user_tab_cols where table_name='表名';--表名含英文的话应为英文大写字母 结果如图: 2.mysql: 1 select count(*) from information_schema.COLUMNS where table_name='表名';--表名大小写均可 结果如图: 3.sqlserver: 1 select

在没有数据库表或者列的情况下新建model;rails ,ruby, rack

因为在某些情况下要使用不存在的列,或者是要新建一个虚拟的model 可以在models下的concerns下新建tableless.rb,代码如下: module Tableless def self.included(base) base.extend(ClassMethods) base.send(:include,InstanceMethods) end module InstanceMethods def save(validate = true) validate ? valid? :

SQL Server 查询数据库表的列数

1 select count(*) from sysobjects a 2 join syscolumns b 3 on a.id=b.id 4 where a.name='表名' 5 go

关系型数据库表结构设计规范-浅谈(转)

数据库表结构设计规范-浅谈,为啥是浅谈呢,因为主要的观点还是来自原微信公共账号的一篇文章,稍微加了一些自己的看法. 谁来进行数据库的设计? 肯定是具体的开发工程师来进行,开发同学的话,第一业务熟悉度比较高,第二结合OO和ORM的思想,能有比较好的运用关系型数据库的特性.如果是DBA同学的话,虽然对于数据库本身了解比较多,但是对于业务了解较少,很难有比较客观的设计.但是业务上线或者运行期间,需要DBA同学能够重度的加入进来,针对一些性能点和不合理的点进行优化,同事也可以在上线前,针对SQL进行re

数据库及表、列的操作,常用函数

数据库及表.列的操作,常用函数 一.数据库的建立 格式:CREATE DATABASE "数据库文件名 " 修改数据库 格式:ALTER DATABASE "数据库文件名"{} 删除数据库 DROP DATABASE "数据库文件名" 二.建立表的结构 注释:下划线表示可有可无 1.CREATE TABLE "数据库名"."表名" (  列名 数据类型 null/not null primary,    列

information_schema系列四(跟踪,列约束,表和列)

这个系列的文章主要是为了能够让自己了解MySQL5.7的一些系统表,统一做一下备注和使用,也希望分享出来让大家能够有一点点的受益. 1:KEY_COLUMN_USAGE 按照官方的解释,这个表描述的是关于有约束的列.也就是没有约束的列都不会显示出来,按照整库查了一下,我里面有五张表,结果这个库记录的只有一条信息.因为只有这个列有约束,其他几张表都是测试玩的,并没有什么约束. 我现在创建两张表主键外键关联关系,然后查一下记录: 看一下就很是明朗了有没有,test1的ID只是主键,后面的关联就会显示