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.单字段主键 写法 ...
随机推荐
- Flash Builder4.7安装破解
引用自CSDN博客,日后我会上传FlashBuilder到百度网盘谢谢 http://bbs.csdn.net/topics/391036327
- Git中一些远程库操作的细节
最近在公司,老是遇到Git远程操作的问题,现总结如下: 1,本地checkout一个新的分支,向远程push的时候,若远程没有该分支,会新建一个. 2.将远程代码clone到本地修改并commit后, ...
- python全栈学习--day4
列表 说明:列表是python中的基础数据类型之一,它是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: 1 li = ['alex',123,Ture,(1,2,3,'wu ...
- 局域网下访问其他计算机搭建的django网页
1.修改工程目录下的setting.py 文件 ALLOWED_HOSTS = ['*'] #*表示允许访问的ip 如果是添加* 则允许所有同局域网环境的主机访问 2.在完成的django工程下运行以 ...
- memmove 和 memcpy的区别以及处理内存重叠问题
区别: memcpy和memmove()都是C语言中的库函数,在头文件string.h中,作用是拷贝一定长度的内存的内容,原型分别如下: void *memcpy(void *dst, const v ...
- nyoj 对决吃桃
时间限制:3000 ms | 内存限制:65535 KB 难度:0 描述 有一堆桃子不知数目,猴子第一天吃掉一半,又多吃了一个,第二天照此方法,吃掉剩下桃子的一半又多一个,天天如此,到第m天早 ...
- Linux "零拷贝" sendfile函数中文说明及实际操作
Sendfile函数说明 #include ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count); sendfile ...
- Python模块configparser(操作配置文件ini)
configparser模块提供对ini文件的增删改查方法. ini文件的数据格式: [name1] attribute1=value1 attribute2=value2 [name2] attri ...
- 将Python程序打包为exe方法
将Python程序打包为exe文件,需要使用到的工具是pyinstaller pyinstaller是一个多平台的Python程序打包为exe的免费工具 安装pyinstaller: 1,在Windo ...
- Python内置函数(24)——set
英文文档: class set([iterable]) Return a new set object, optionally with elements taken from iterable. s ...