非空约束:
create table temp(
id int not null,
name varchar() not null default 'adc',
sex char null
)//给id,name加上非空约束
alter table temp modify sex varchar() not null;//增减非空约束
alter table temp modify sex varchar() default 'adc' null;//取消非空约束并且增加默认值
唯一约束:
create table temp(
id int not null,
name varchar(),
password varcha(),
constraint uq_name_pass unique(name,password)//组合约束,不仅里面的单列不能重复,而且该组合名字也不能重复。constraint:给约束命名
);//建表同时增加约束 name和pass组合不能重复
alter table temp add unique(name,password);//使用add给name和pass增加唯一约束
alter table temp modify name varchar() unique;//使用modify给name增加唯一约束
alter table temp drop index name;//删除约束
主键约束:(每个表只允许一个主键,该主键可以为单列,可以为多列组合的主键,不能为空,不能重复)
create teble temp(
id int primary key,
name varchar()
);
create table temp1(
id int not null,
name varchar(),
pwd varchar(),
constraint p_name_pwd primary key(name,pwd)//组合约束
);//组合约束例如:成绩表(学号,课程号,成绩)
//成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录
//所以 学号和课程号的属性组是一个主键
alter table temp drop primary key;//删除主键约束
alter table temp add primary key(name,pwd);//给name和pwd组合增加主键
alter table temp modify id int primary key;//修改列为主键
create table temp(
id int auto_increment primary key,
name varchar()
) ;//auto_increment设置自增,设置自增后就可以不用在插入具体值了
外键:(外键可以重复,可以为空,)
主表:
create table test2(
id int auto_increment primary key,
name varchar()
);
从表:
create table stu(
id int auto_increment,
name varchar(),
constaint p_id primary key(id),
test2_id int references test2(id)
);
或者:
create table stu(
id int auto_increment primary key,
name varchar(),
test2_id int,
foreigh key(test2_id) references test2(id)
//constaint fk_id foreigh key(test2_id) references test2(id)//改约束命名
);
alter table stu drop foreigh key test_id;//删除外键约束
alter table stu add foreigh key(test_id) references test2(id);//增加外键约束
check约束:(不适用mysql)

mysql——约束的更多相关文章

  1. MySQL 约束的讲解

    MySQL 约束 作用:保证数据的完整性和一致性按照约束的作用范围分为:表级约束和行级约束.常见的约束类型包括: Not null(非空约束) Primary key (主键约束) Unique ke ...

  2. MySQL 约束和数据库设计

    1.MySQL 约束: 1.约束的概念: 约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性. MySQL中,常用的几种约束: 约束类型: 非空 主键 唯一 外键 默认值 ...

  3. MySQL 约束

    MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息: 约束主要完成对数据的检验,保证数据库数据的完整性:如果有相互依赖数据 ...

  4. MySQL约束

    MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息: 常用5种约束: not null: 非空约束,指定某列不为空 uni ...

  5. SQLServer与MySQL约束/索引命名的一些差异总结

    约束是数据库完整性的保证,主要分为:主键/外键/唯一键/默认值/check等类别,约束是一个逻辑概念,表示数据的某些特性(不能为空,唯一,必须满足某些条件等等),索引是一个逻辑与物理概念的结合,逻辑上 ...

  6. mysql约束以及数据库的修改

    一.约束 1.约束保证数据完整性和一致性. 2.约束分为表级约束和列级约束. (1)表级约束(约束针对于两个或两个以上的字段使用) (2)列级约束(针对于一个字段使用) 3.约束类型有: (1)NOT ...

  7. MySQL 约束、表连接、表关联、索引

    一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性. 外键:是另一表的唯一性 ...

  8. mysql 约束和外键约束实例

    1.约束保证数据的完整性和一致性. 2.约束分为表级约束和列级约束.(根据约束所针对的字段的数目的多少来决定) 列级约束:对一个数据列建立的约束 表级约束:对多个数据列建立的约束 列级约束即可以在列定 ...

  9. MySQL——约束(constraint)详解

    该博客说说关于数据库中一个重要的知识点——约束 一.什么是约束约束英文:constraint 约束实际上就是表中数据的限制条件 二.约束作用表在设计的时候加入约束的目的就是为了保证表中的记录完整和有效 ...

  10. MySQL约束笔记

    MySQL 查看约束,添加约束,删除约束 添加列,修改列,删除列 · 查看表的字段信息:desc 表名; · 查看表的所有信息:show create table 表名; 添加主键约束:alter t ...

随机推荐

  1. mysql中字段类型是datetime时比较大小问题

    select sum(studychj) as tofflinejz from afterline where studybegin >= '2010-01-01 00:00:00' and s ...

  2. 百度地图api-动态添加覆盖物

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  3. Cannot connect to VM com.sun.jdi.connect.TransportTimeoutException

    Cannot connect to VM com.sun.jdi.connect.TransportTimeoutException 描述 在用eclipse进行debug的时候弹出了上面的错误,在s ...

  4. tomcat-dbcp数据库连接池配置以及使用时候的一些坑

    一.数据库连接池 开发的时候经常会需要对数据库进行一些操作,比如说常见的增删改查之类的,当数据量小的时候,可以直接进行操作,但是当数据量增多的时候,每一次连接以及释放数据库都会耗费一定的时间,这个时候 ...

  5. pod install 出错

    今天使用cocoapods的时候在执行pod install出错,如下: 使用很多方法都不行,但是问题感觉应该是需要升级,所有就找到升级cocoapods:sudo gem install -n /u ...

  6. IO流之缓冲流

    缓冲流 Java中提高了一套缓冲流,它的存在,可提高IO流的读写速度 缓冲流,根据流的分类字节缓冲流与字符缓冲流. 字节缓冲流 字节缓冲流根据流的方向,共有2个 l  写入数据到流中,字节缓冲输出流 ...

  7. Django组件——分页器(paginator)

    一.视图层 from django.shortcuts import render # Create your views here. from .models import Book from dj ...

  8. node.js-cancelled because Node.js is unresponsive

    今天初学node.js,但是在使用vs code 进行启动调试的时候出现了一个问题 这个报错,一开始我并不知道是什么意思.(而截至我写这个笔记我也还没了解清楚) 大概翻译出来的意思是说 “node.j ...

  9. JDE获取所有字典数据

    select a.*,b.DTDL01 FROM crpctl.f0004 a,crpctl.f0004d b where a.dtsy =b.dtsy(+) and a.dtrt =b.dtrt(+ ...

  10. 64位MATLAB和C混合编程以及联合调试

    [环境说明] 电脑操作系统:win 7 旗舰版,64位 MATLAB版本:R2013b VS版本:Microsoft Visual Studio 2010 [操作说明] 1.在原来工程的基础上添加下列 ...