mysql列约束
列属性(约束)
1: 是否允许为空(not null) --not null不允许为空
create table t_1(
a tinyint(3) zerofill not null,
b tinyint(3)
);
例: insert into t_1 values(18,29);
例: insert into t_1 values(null,12); --报错
例: desc t_1;
例: alter table t_1 modify a tinyint(3) not null zerofill; --报错zerofill不能数据类型分开
例: insert into t_1(a) values(19);
例: insert into t_1(b) values(28);
*******************************************************************************************************************
2: 默认值属性(default)
create table t_2(
a tinyint(2) zerofill not null default 18,
b tinyint(2)
);
例: insert into t_2(b) values(19);
*******************************************************************************************************************
3: 列注释(comment)
create table t_3(
id tinyint(2) zerofill not null default 18 comment '编号',
name varchar(30) comment '姓名'
);
use information_schema;
show tables;
desc information_schema.columns;
select table_schema, table_name, column_name, column_comment from information_schema.columns;
select table_schema, table_name, column_name, column_comment from information_schema.columns where table_schema = 'test' and table_name = 't_3';
*******************************************************************************************************************
4: 唯一约束 --不允许有重复的值
drop table if exists t_4;
create table t_4(
id int,
age tinyint,
constraint un_id unique(id) --创建一个唯一约束给id字段, constraint un_id给这个唯一约束取名为un_id;
);
desc t_4;
show create table t_4\G
例: insert into t_4 values(1, 2);
例: insert into t_4 values(1, 2); --报错, id值要是唯一的
例: alter table t_4 drop index un_id; --删除唯一约束 un_id(约束名);
例: alter table t_4 add unique(id); --增加唯一约束,
ps: 约束名可以不用写, 如果不写的话则会默认的创建一个唯一约束名字,可以通过show create table t_4\G 来查看约束名;
例: alter table t_4 drop index id;
例: insert into t_4 values(null, null);
例: insert into t_4 values(null, null); --唯一约束允许null值的重复
*******************************************************************************************************************
5: 主键约束(primary key)
create table t_6(
t_no int(1) primary key,
t_name varchar(30),
t_sex varchar(3)
);
例: desc t_6;
例: insert into t_6 values(null, '胖胖', '男'); --报错 主键值不能为null, 在创建主键时也会默认把字段设置not null
例: insert into t_6 values(1, '胖胖', '男');
例: insert into t_6 values(1, '小明', '男'); --报错 主键值不能重复
ps: 一个表中只能有一个主键;
drop table if exists t_7;
create table t_7(
a int,
b int
);
alter table t_7 modify a int primary key; --添加主键
alter table t_7 modify b int primary key; --报错 一个表中只能有一个主键;
alter table t_7 drop primary key; --删除主键
ps: 可以设置组合主键
drop table if exists t_8;
create table t_8(
a int,
b tinyint,
primary key(a, b)
);
例: insert into t_8 values(1,2);
例: insert into t_8 values(1,3);
例: insert into t_8 values(1,3);
********************************************************************************************************************
6: 自动增长(auto_increment)
create table t_9(
id int primary key auto_increment,
name varchar(30)
);
例: insert into t_9 values(null, '胖胖'); --如果添加了auto_increment,主键值可以用null来表示插入,但真正插入的并不是null值
例: insert into t_9 values(null, '小明');
例: insert into t_9 values(null, '小红');
例: insert into t_9(name) values('哈哈');
insert into t_9 values('小哈'); --报错
ps: 自动增长需要整形和索引
例: create table t_9( --报错
id int auto_increment
);
自动增长的初始值从1开始, 可以自定义这个初始值
create table t_10(
id int primary key auto_increment
);
例: alter table t_10 auto_increment 10; --把自动增长的初始值 设置为10
例: insert into t_10 values();
例: insert into t_10 values(50);
例: insert into t_10 values(); --自动增长会从已有的最大值开始增长;
********************************************************************************************************************
mysql列约束的更多相关文章
- MySQL的列约束
1.列约束 (1)主键约束——PRIMARY KEY (2)非空约束——NOT NULL 声明了非空约束的列上,不允许使用NULL (3)唯一约束——UNIQUE 声明了唯一约束的列上不能插入重复的值 ...
- MySQL服务 - MySQL列类型、SQL模式、数据字典
MySQL列类型的作用: 列类型可以简单理解为用来对用户往列种存储数据时做某种范围"限定",它可以定义数据的有效值(字符.数字等).所能占据的最大存储空间.字符长度(定长或变长). ...
- MYSQL中约束及修改数据表
MYSQL中约束及修改数据表 28:约束约束保证数据的完整性和一致性约束分为表级约束和列级约束约束类型包括: NOT NULL(非空约束) PRIMARY KEY(主键约束) UNI ...
- 数据库-SQL语句:删除和修改语句-列类型-列约束
使用MySQL客户端连接服务器的两种方式: (1)交互模式: ——查 mysql.exe -h127.0.0.1 -uroot -p mysql -uroot (2)脚本模式:——增删改 m ...
- mysql列的处理
MySQL 添加列,修改列,删除列 示例:ALTER TABLE tb_financial MODIFY CREATE_TIME DATETIME(3) DEFAULT NULL COMMENT '录 ...
- 【MySQL】MySQL的约束
在开始之前,笔者介绍一下笔者使用的数据库版本为5.7.所有的关系型数据库都支持对数据表使用约束,通过约束可以更好的保证数据表里数据的完整性.约束是在表上强制执行的数据校验,约束主要用于保证数据库里数据 ...
- mysql的约束
SQL 约束 约束用于限制加入表的数据的类型. 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句). (1)NOT NULL约 ...
- [转]mysql的约束
转自:http://blog.csdn.net/kqygww/article/details/8882990 MySQL中约束保存在information_schema数据库的table_constr ...
- MYSQL数据库约束类型
07.14自我总结 MYSQL数据库约束类型 一.主键约束(primary key) 主键约束要求主键列的数据唯一,并且不能为空.主键分为两种类型:单字段主键和多字段联合主键. 1.单字段主键 写法 ...
随机推荐
- 关于JQuery的绑定方法
从jQuery1.7开始,jQuery引入了全新的事件绑定机制,on()和off()两个函数统一处理事件绑定.因为在此之前有bind(), live(), delegate()等方法来处理事件绑定,j ...
- [日常] AtCoder Beginner Contest 075 翻车实录
别问我为啥要写一篇ABC的游记... 周日打算CF开黑于是就打算先打打ABC找回手速... 进场秒掉 $A$ 和 $B$ , 小暴力一脸偷税 然后开 $C$ ...woc求桥? 怎么办啊我好像突然忘了 ...
- Java作业-多线程
未完成,占位以后补 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 书面作业 本次PTA作业题集多线程 源代码阅读:多线程程序BounceThread 1.1 Ball ...
- 201621123050 《Java程序设计》第5周学习总结
1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 答:接口.has-a.comparable 1.2 尝试使用思维导图将这些关键词组织起来.注:思维导图一般不需要出现过多的字. ...
- 201621123043《java程序设计》第五周学习总结
1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 接口. Comparable接口 .Comparator接口.compareTo. 1.2 尝试使用思维导图将这些关键词组织起来 ...
- django的FBV和CBV
title: python djano CBV FBV tags: python, djano, CBV, FBV grammar_cjkRuby: true --- python django的fu ...
- JS 实现MVC的写法
案例:当select 下拉选择框值变化时,显示其值(不是文本) 常规写法 <h3>JavaScript no MVC</h3> <div> <selec ...
- Docker学习笔记 - Docker的数据卷
一.什么是数据卷? 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性: 数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效 对数据卷的更新,不会影响镜像 数据 ...
- 云计算学习(5-1)云平台产品介绍-华为的FusionCloud产品
FusionSphere云平台:继承了虚拟化和云管理系统,为企业构建私有云 FusionManager:云管理平台(管理计算虚拟化.网络虚拟化.存储虚拟化) FusionCompute.Fusion ...
- spring-oauth-server实践:授权方式四:client_credentials 模式下有效期内重复申请 access_token ?
spring-oauth-server入门(1-12)授权方式四:client_credentials 模式下有效期内重复申请 access_token ? 一.失效重建邏輯 二.如果沒有失效,不会重 ...