3-1约束

1、约束保证数据的完整性和一致性;
2、约束分表级约束(两个或两个个以上字段的约束)和列级约束(一个字段约束);
3、NOT NULL       非空;
PRIMARY KEY       主键约束;
UNIQUE KEY         唯一约束;
DEFAULT               默认约束;
FOREIGN KEY        外键约束。
空值与非空值:
NULL 与 NOT NULL 
自动编号:
AUTO_INCREMENT 自动编号,必须与主键组合使用,默认情况下起始值为1,每次增量为1;
主键:
PRIMARY KEY  主键约束,每张鼠标只存在一个主键,主键保证记录的唯一性,主键自动为NOT NULL;
#CREATE TABLE tb3(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,       #设置主键 和自动编号
username VACHAR(20) NOT NULL);
唯一约束:
UNIQUE KEY 唯一约束,可以保证记录的唯一性,可以为空值(只有一个NULL值),每张数据表可以存在多个唯一约束
#CREATE TABLE tb4(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VACHAR(20) NOT NULL UNIQUE KEY,     #设置姓名唯一约束 
age TINYINT UNSIGNED);
默认约束:
DEFAULT  当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。
#CREATE TABLE tb5(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VACHAR(20) NOT NULL UNIQUE KEY,
sex EMUI('1','2','3') DEFAULT '3');       #设置默认性别字段为3
外键约束:
要求:父表和子表必须使用相同的存储引擎,只能为InnoDB,且禁止使用临时表;外键列和参照列必须具有相似的数据类型,其中数字的长度或者是否有符号位必须相同;而字符的长度则可以不同;外键列和参照列必须创建索引。如外键列不存在索引,mysql将自动创建索引。
#默认存储引擎:bin目录下 my.ini文件中  修改成INNODB;
针对外键约束的参照操作:
1、CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行;
2、SET NULL:从父表删除或更新行,并设置子表中的外键列;
3、RESTRICT:拒绝父表的删除或更新操作;
4、NO ACTION:标准SQL的关键字,再mysql中与RESTRICT相同。
表级约束和列级约束:对一个数据列建立的约束 为列级约束;对多个数据列建立的约束称为表级约束。
表级约束只能再列定义后声明,列级约束可以再列定义时声明,也可以再列定义后声明。

菜鸟的MySQL学习笔记(二)的更多相关文章

  1. 菜鸟的MySQL学习笔记(一)

    本学习笔记是照搬慕课网<与MySQL的零距离接触>内容,特此感谢! 1-1 mysql的安装与配置 Windows环境下的MSI安装: 1.安装: 双击MSI文件->用户协议-> ...

  2. MySQL学习笔记(二):MySQL数据类型汇总及选择参考

    本文主要介绍了MySQL 的常用数据类型,以及实际应用时如何选择合适的类型.  ******几个通用的简单原则:******* 1. 更小的通常更好.但是要确保没有低估需要存储的值的范围,如果无法确定 ...

  3. MySQL学习笔记(二)

    连接与断开服务器 应该以下面的方式连接MySQL服务器,而不是将密码以明文方式输入连接. C:\> mysql -h host -u user -pEnter password: ******* ...

  4. MySQL学习笔记二:权限管理

    1. 创建和删除用户,mysql中的用户是由用户名和主机名来确定的 create user "user_name@host_name" identified by passwd; ...

  5. sql分类及基本sql操作,校对规则(mysql学习笔记二)

    sql针对操作对象分为不同语言 数据操作(管理)语言 DML或者将其细分为 ( 查询  DQL 管理(增,删,改)  DML) 数据定义语言(对保存数据的格式进行定义) DDL 数据库控制语言(针对数 ...

  6. MySQL学习笔记二

    Ø function 函数 函数的作用比较大,一般多用在select查询语句和where条件语句之后.按照函数返回的结果, 可以分为:多行函数和单行函数:所谓的单行函数就是将每条数据进行独立的计算,然 ...

  7. 菜鸟的MySQL学习笔记(五)

    7.自定义函数 用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同.包含了两个必要条件,参数与返回值.没有必然内在联系. 函数可以返 ...

  8. 菜鸟的MySQL学习笔记(四)

    MySQL中的运算符和函数: 1.字符函数: 2.数值运算符与函数: 3.比较运算符与函数: 4.日期时间函数: 5.信息函数: 6.聚合函数: 7.加密函数等:   6-1.字符函数: CONCAT ...

  9. 菜鸟的MySQL学习笔记(三)

    4-1插入记录INSERT INSERT [INTO] tbl_name [(col_name)] {VALUES|VALUE} ({expr|DEFAULT},...), (...), ...   ...

随机推荐

  1. Delphi- 内置数据库的使用例子BDE

    以前开发时经常使用一些大型的数据库,像这样小的数据库还是前段时间才看到.看看Delphi怎么使用内置的数据库, 先在BDE里拉两个数据库控件.DataBase和Table,然后再拉两个数据库控件Dat ...

  2. UIImage的使用

    UIImage是IOS中层级比较高的一个用来加载和绘制图像的一个类,更底层的类还有CGImage,以及IOS5.0以后新增加的CIImage.今天我们主要聊一聊UIImage的三个属性: imageO ...

  3. eclipse 不能切换输入法

    按了Alt+Shift键?再按一次把EN切换成CN,然后再Ctrl+Shift就可以切换输入法

  4. IP地址的分类——a,b,c 类是怎样划分的

    如今的IP网络使用32位地址,以点分十进制表示,如172.16.0.0.地址格式为:IP地址=网络地址+主机地址 或 IP地址=主机地址+子网地址+主机地址. IP地址类型 最初设计互联网络时,为了便 ...

  5. -bash: ls: command not found

    在iMac下ls既然command not found,查找了下 原因:在设置环境变量时,编辑profile文件没有写正确,导致在命令行下 ls等命令不能够识别.解决方案: 直接在控制台下  expo ...

  6. QVariant与自定义数据类型转换的方法

      在使用VC.Delphi编写用户界面程序的时候,经常会把对象与控件的data域进行绑定,便于程序运行中读写提高效率.然而在Qt编程中怎么实现这个功能呢?比如将一个用户自定义的结构体与QComboB ...

  7. 导演类(CCDirector)

  8. POJ1329题

    Circle Through Three Points Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 20000/10000K (Jav ...

  9. Android(java)学习笔记156:Java虚拟机和Dalvik虚拟机的区别

    Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野.它对内存的高效使用,和在低速CPU上表现出的高性能,确实令 ...

  10. wins和linux 系统不同编码格式导致的.py执行问题: bad interpreter: No such or file directory

    我在win7上用IDLE编写了一个python文件(MyTopo.py),但是用putty传到VM中的ubuntu系统中,用 ./MyTopo方式执行. 显示: /bin/sh^M: bad inte ...