PRIMARY :   主键

AUTO_INCREMENT  : 自增长

FOREIGN KEY : 外键

NOT NULL : 非空

UNIQUE KEY : 唯一

DEFAULT :  默认值

主键:

-- 主键:不能重复,不能为空
--
CREATE TABLE user1(
-- id INT KEY, 可以省略掉PRIMARY
id INT PRIMARY KEY,
username VARCHAR(20)
); -- 复合主键或多字段主键
CREATE TABLE user2(
id INT,
username VARCHAR(20),
card CHAR(18),
PRIMARY KEY(id,card)
);

自增长:

-- 自增长:t一个表中只能有一个自增长字段,而且一定要配合主键使用
-- 自增长字段一定是主键,但主键不一定是自增长的
CREATE TABLE user3(
id SMALLINT KEY AUTO_INCREMENT,
username VARCHAR(20)
-- 最后加上AUTO_INCREMENT=100是指自增长的超始值,如果不加就从1开始
)AUTO_INCREMENT=100;
-- 插入数据
INSERT user3 VALUES(1, 'king');
-- 如果不指定id,则在已有的id最大值+1
INSERT user3(username) VALUES('queen');
-- id字段给NULL或DEFAULT, 也是自增长
INSERT user3 VALUES(NULL, 'queen2');
INSERT user3 VALUES(DEFAULT, 'queen2'); -- 如果在定义表的时候没有设置自增长起始值,后来也可以修改;
-- 修改之后添加的数据从修改的起始值开始
ALTER TABLE user3 AUTO_INCREMENT =500;

非空:

-- 非空, NULL就是一个空值,如果给一个非空字段一个NULL, 也会报错的
-- 没有标记为非空的字段,默认是可以为空的
CREATE TABLE user4(
id INT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
-- 密码字段一般用加密的,返回一个32位长度
password CHAR(32) NOT NULL,
-- age 可以为空,当不给值是,默认为NULL
age TINYINT UNSIGNED
);

默认值:

-- 默认值 DEFAULT
CREATE TABLE user5(
id INT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
password CHAR(32) NOT NULL,
age TINYINT UNSIGNED DEFAULT 18,
addr VARCHAR(50) NOT NULL DEFAULT '北京',
sex ENUM('男', '女', '保密') NOT NULL DEFAULT '男'
); -- 添加数据, DEFAULT表示使用默认值
INSERT user5(username,password) VALUES('KING', '123');
INSERT user5 VALUES(3,'QUEEM','123',DEFAULT,DEFAULT,'保密');

唯一性:

-- 唯一性约束
-- 一个表中只能有一个主键,但可以有多个唯一
-- 这里要注意,card不是NOT NULL, 可以为空,NULL是不算重复的
CREATE TABLE user6(
id TINYINT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL UNIQUE,
card CHAR(18) UNIQUE
);

完整的创建table:

-- 完整的创建表的方法
CREATE TABLE [IF NOT EXISTS] tb_name(
字段名称 字段类型 [UNSIGNED|ZEROFILL] [NOT NULL] [DEFAULT 默认值] [[PRIMARY] KEY | UNIQUE [key]] [AUTO_INCREMENT]
)ENGINE=INNODB CHARSET=UTF8 AUTO_INCREMENT=100;

mysql-完整性约束条件的更多相关文章

  1. MYSQL—— 完整性约束条件中primary key、auto_increment使用总结!

    完整性约束条件主要有:primary key(主键), auto_increment(自增长), poreign key(外键), not null(非空), unique key(唯一), defa ...

  2. 【MySQL】完整性约束条件与设计范式

    完整性约束条件 概念: 对表中的数据进行限定,保证数据的正确性.有效性和完整性. 分类: 主键约束:primary key 非空约束:not null 唯一约束:unique 外键约束:foreign ...

  3. MySQL中的完整性约束条件(主键、外键、唯一、非空)

    数据库的完整性约束用来防止对数据的意外破坏,来保证数据的安全性和一致性. 主键 1.创建表时候指定主键 创建表user(id, username, age),并且id字段非空自增. CREATE TA ...

  4. 字符编码,存储引擎,MySQL字段类型,MySQL字段约束条件

    字符编码 查看MySQL默认编码命令:\s """ 如果是5.X系列 显示的编码有多种 latin1 gbk 如果是8.X系列 显示的统一是utf8mb4 utf8mb4 ...

  5. MySQL完整性语言

    文章为作者原创,未经许可,禁止转载.    -Sun Yat-sen University 冯兴伟 实验3:完整性语言 完整性语言实验包含3个实验项目,其中2个必修项目,1个选修项目.该实验的各个实验 ...

  6. MySQL字段约束条件、字段类型、存储引擎、配置文件

    字符编码与配置文件 # 查看MySQL默认字符编码 \s ''' 如果是5.X系列 显示的编码有很多种 Latin1 gbk 如果是8.X系列 显示的统一是utf8mb4 utf8mb4是utf8优化 ...

  7. python开发mysql:mysql数据类型&约束条件

    一 整形 只有Int类型跟存储没有关系,显示的是宽度,其他类型都是限制 整形类型:[(m)][unsigned][zerofill] 作用:存储年龄,等级,id,各种号码 m,代表显示宽度 默认11 ...

  8. Oracle中错误代码ORA-02292 违反了完整性约束条件解决

    百度处理: A表被B表引用,删除A表的时候提示ORA-02292,A表的主键被引用了,虽然已经把B表的数据全部删除掉,但仍然删除不了A表的数据.解决办法: 用禁用约束语句把A表的主键约束给禁用掉.1. ...

  9. MySQL数据库:SQL语句基础、库操作、表操作、数据类型、约束条件、表之间的关系

    数据库相关概念: 1. 数据库服务器:运行数据库管理软件的计算机 2. 数据库管理软件:MySQL.Oracle.db2.slqserver 3. 库:文件夹,用来组织文件/表 4. 表:文件(类似于 ...

  10. mysql数据库之表操作及字段约束条件

    目录 一.存储引擎 二.表介绍 三.创建表 四.查看表结构 五.数据类型 一.介绍 二.数值类型 整数类型 浮点型 三.字符串类型 四.日期类型 五.枚举类型与集合类型 六.约束条件 七.修改表 al ...

随机推荐

  1. C#下实现的半角转与全角的互转

    全角和半角的互转在C#下怎么实现呢? /// 转全角的函数(SBC case) /// ///任意字符串 ///全角字符串 /// ///全角空格为12288,半角空格为32 ///其他字符半角(33 ...

  2. C# 扩展方法奇思妙用高级篇六:WinForm 控件选择器

    在Web开发中,jQuery提供了功能异常强大的$选择器来帮助我们获取页面上的对象.但在WinForm中,.Net似乎没有这样一个使用起来比较方便的选择器.好在我们有扩展方法,可以很方便的打造一个. ...

  3. C:指针、数据类型、格式化输入输出、输入函数的坑点

    指针.数据类型.格式化输入输出.输入函数的坑点 有时候我们迷茫的时候,坚持就是最好的选择. 1.指针的分类为什么很重要? 参考 答:因为指针会根据相应的类型取对应长度的数据,类型决定所取数据的长度.如 ...

  4. [p2p]UDP用打洞技术穿透NAT的原理与实现

    首先先介绍一些基本概念:            NAT(Network Address             Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的, ...

  5. dmalloc 原文 翻译整理

    http://blog.csdn.net/cardinal_508/article/details/5553387 L13 从快速入门开始(Quickstart) 这个库是一个文件中所有简化用法中最常 ...

  6. Codeforces Beta Round #4 (Div. 2 Only) C. Registration system hash

    C. Registration system Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset ...

  7. C#中的ICollection接口

    一.集合类: 1.1 ICollection接口 前面我们学习了数组,这是.net Framework定义的最基本的集合类型,除过数组外,.net Framework还另外定义了很多集合类型以满足编程 ...

  8. [连载]JavaScript讲义(05)--- 数据处理

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamFja2ZydWVk/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...

  9. Java多线程:线程死锁

    发生死锁的原因通常是两个对象的锁相互等待造成的. 以下用一个实例来构造这样的情况: package basic.e_deadlock; import org.apache.log4j.Logger; ...

  10. 【JavsScript】XMLHttpRequest Level 2 使用指南

    XMLHttpRequest是一个浏览器接口,使得Javascript可以进行HTTP(S)通信. 最早,微软在IE 5引进了这个接口.因为它太有用,其他浏览器也模仿部署了,ajax操作因此得以诞生. ...