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.单字段主键 写法 ...
随机推荐
- Java基础学习笔记二十一 多线程
多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念.进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线 ...
- string和c_str()使用时的坑
先看一段代码和它的运行结果: 看到结果了么这个运行的结果和我们理解的是不会有差距.对于经验丰富的开发者可能会微微一笑,但是对于一个刚刚学习的人就开始疑惑了.这里主要说两个问题: 1.声明了一个stri ...
- 利用PCA降维
参考:<机器学习实战>- Machine Learning in Action 一. 基本思想 PCA(Principal Component Analysis),主成分分析.是目前应用 ...
- 团队作业7——Beta版本冲刺计划及安排
上一个阶段的总结: 在Alpha阶段,我们小组已近完成了大部分的功能要求,小组的每一个成员都发挥了自己的用处.经过了这么久的磨合,小组的成员之间越来越默契,相信在接下来的合作中,我们的开发速度会越来越 ...
- 201621123054 《Java程序设计》第六周实验总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 1.2 可选:使用常规方法总结其他上课内容. 2 ...
- android 广播安装指定下载的apk
// 广播出去,由广播接收器来处理下载完成的文件 Intent sendIntent = new Intent("com.test.downloadComplete"); ...
- Flask 学习 八 用户角色
角色在数据库中表示 app/models.py class Role(db.Model): __tablename__='roles' id = db.Column(db.Integer,primar ...
- WebAPI 跨域解决方案.
先下载支持跨域的.dll,然后using System.Web.Http.Cors. 我把webapi解决方案部署到IIS上了.测试过后可以解决跨域. 方案一(用了*号,这样有安全隐患.): 直接在w ...
- EasyUI中DataGrid隔行改变背景颜色。
<table id="dg" class="easyui-datagrid" style="width: 1000px; height: 300 ...
- js window
window对象: browser object mode :bom对象. bom提供了独立于内容而与浏览器窗口进行交互的对象. bom主要用于管理窗口与窗口之间的通讯,因此其核心对象是window ...