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. 使用dbcp : BasicDataSource

    需要 commons-dbcp2 com.oracle.ojdbc6 <dependency> <groupId>org.apache.commons</groupId& ...

  2. .Net项目版本号的生成

    给.Net项目编译的程序集加入版本号的方式有许多种,包括: 1. 默认的方式,在每个项目的AssemblyInfo.cs文件中指定版本号: // Version information for an ...

  3. sql查找字符串是否包含字符

    SELECT [Fgoodsid] ,[Fgoodsname] ,[Fcinema] ,[Fprice] FROM [tenpaytest].[dbo].[goodsinfo]where Fgoods ...

  4. C:矩形相交、相包含、相离关系判断

    矩形相交 包含 问题.参考 假定矩形是用一对点表达的(minx, miny) (maxx, maxy),那么两个矩形    rect1{(minx1, miny1)(maxx1, maxy1)}    ...

  5. DataTable添加行和列

    tablenullobjectdatasetc#c 手动插入一行数据 DataSet ds = tTalent.GetAllInfo();         DataRow dr = ds.Tables ...

  6. SQL Server 2008 无法保存表的更改

    MS SQL Server 2008 在建完表后,如果要重新设计表,如修改字段长度,就会提示:“当用户在在SQL Server 2008企业管理器中更改表结构时,必须要先删除原来的表,然后重新创建新表 ...

  7. PHP中关于超链接的拼接问题

    <?php$link = " http://www.baidu.com";echo '<a href='.$link.'> 百度 </a>';?> ...

  8. hadoop分布式部署(2014-3-8)

    hadoop简介: (维基百科)Apache Hadoop是一款支持數據密集型分佈式應用并以Apache 2.0許可協議發佈的開源軟體框架.它支持在商品硬件構建的大型集群上運行的應用程序.Hadoop ...

  9. little's law(律特法则)

    参考:https://en.wikipedia.org/wiki/Little%27s_law(周末看一下) 最近在做性能压力测试,开始时,压力压不上去,参考: N = X * E[T] ,N就是你的 ...

  10. INDY idhttp Post用法

    http://www.cnblogs.com/tk-del/archive/2013/05/10/3071541.html function Post(AURL: string; ASource: T ...