mysql-完整性约束条件
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-完整性约束条件的更多相关文章
- MYSQL—— 完整性约束条件中primary key、auto_increment使用总结!
完整性约束条件主要有:primary key(主键), auto_increment(自增长), poreign key(外键), not null(非空), unique key(唯一), defa ...
- 【MySQL】完整性约束条件与设计范式
完整性约束条件 概念: 对表中的数据进行限定,保证数据的正确性.有效性和完整性. 分类: 主键约束:primary key 非空约束:not null 唯一约束:unique 外键约束:foreign ...
- MySQL中的完整性约束条件(主键、外键、唯一、非空)
数据库的完整性约束用来防止对数据的意外破坏,来保证数据的安全性和一致性. 主键 1.创建表时候指定主键 创建表user(id, username, age),并且id字段非空自增. CREATE TA ...
- 字符编码,存储引擎,MySQL字段类型,MySQL字段约束条件
字符编码 查看MySQL默认编码命令:\s """ 如果是5.X系列 显示的编码有多种 latin1 gbk 如果是8.X系列 显示的统一是utf8mb4 utf8mb4 ...
- MySQL完整性语言
文章为作者原创,未经许可,禁止转载. -Sun Yat-sen University 冯兴伟 实验3:完整性语言 完整性语言实验包含3个实验项目,其中2个必修项目,1个选修项目.该实验的各个实验 ...
- MySQL字段约束条件、字段类型、存储引擎、配置文件
字符编码与配置文件 # 查看MySQL默认字符编码 \s ''' 如果是5.X系列 显示的编码有很多种 Latin1 gbk 如果是8.X系列 显示的统一是utf8mb4 utf8mb4是utf8优化 ...
- python开发mysql:mysql数据类型&约束条件
一 整形 只有Int类型跟存储没有关系,显示的是宽度,其他类型都是限制 整形类型:[(m)][unsigned][zerofill] 作用:存储年龄,等级,id,各种号码 m,代表显示宽度 默认11 ...
- Oracle中错误代码ORA-02292 违反了完整性约束条件解决
百度处理: A表被B表引用,删除A表的时候提示ORA-02292,A表的主键被引用了,虽然已经把B表的数据全部删除掉,但仍然删除不了A表的数据.解决办法: 用禁用约束语句把A表的主键约束给禁用掉.1. ...
- MySQL数据库:SQL语句基础、库操作、表操作、数据类型、约束条件、表之间的关系
数据库相关概念: 1. 数据库服务器:运行数据库管理软件的计算机 2. 数据库管理软件:MySQL.Oracle.db2.slqserver 3. 库:文件夹,用来组织文件/表 4. 表:文件(类似于 ...
- mysql数据库之表操作及字段约束条件
目录 一.存储引擎 二.表介绍 三.创建表 四.查看表结构 五.数据类型 一.介绍 二.数值类型 整数类型 浮点型 三.字符串类型 四.日期类型 五.枚举类型与集合类型 六.约束条件 七.修改表 al ...
随机推荐
- 【转】删除已经存在的 TFS Workspace
删除已经存在的 TFS Workspace 分类: TFS2010-03-03 16:59 1239人阅读 评论(2) 收藏 举报 serverpathcommandcachefilegoogle 工 ...
- My集合框架第一弹 LinkedList篇
package com.wpr.collection; import java.util.ConcurrentModificationException; import java.util.Itera ...
- 最小生成树之Prime法
关于最小生成树的概念,在前一篇文章中已经讲到,就不在赘述了.下面介绍Prime算法: 其基本思想为:从一个顶点出发,选择由该顶点出发的最小权值边,并将该边的另一个顶点包含进来,然后找出 ...
- 数据库 SQL :有关 NULL 值引发 TRUE、FALSE、UNKNOW 三值逻辑
在 Java.C# 中,相信如果是 boolean 类型值,只有两种选择 true.false.然而,在 SQL 查询中,NULL 值的引入,使得新增了 UNKNOW ,因此,就产生了 TRUE.FA ...
- JS瀑布流布局模式(2)
这个例子与上一篇类似,唯一的区别是排序的方式有差别.上一篇是在高度最小的列里插入内容,这个案例是按顺序放置内容. 两种方法各有优缺点.第一种需要在图片内容加载完成的情况下有效,各个列的图高度差异不大. ...
- 解决 Cocos2d-x 中 Android.mk 手动添加源文件
转自:http://blog.csdn.net/ypfsoul/article/details/8909178 Makefile Android.mk 引发的思索 在我们编写 Android 平台 c ...
- C#操作Word生成目录
OperateWord ow = new OperateWord(); Microsoft.Office.Interop.Word.ApplicationClass ss = ow.WordAppli ...
- Java IO之File
FILE类是用来实现获取文件.文件夹的类库工具,File并不是像类名所表示的那样仅仅是用来表示文件.它还能够用来表示文件夹. 所以能够用File来获取一个文件夹下的全部文件,甚至是文件夹中的文件. 一 ...
- C 语言指针怎么理解?
对于程序员来说内存可以简化成这样一种东西:<img src="https://pic1.zhimg.com/4d060c3f67c22cd4b07273db00f64708_b ...
- QQ上传大文件为什么这么快
今天和同事在群里讨论“QQ上传大文件/QQ群发送大文件时,可以在极短的时间内完成”是如何做到的. 有时候我们通过QQ上传一个几百M的文件,竟然只用了几秒钟,从带宽上限制可以得出,实际上传文件是不可能的 ...