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.单字段主键 写法 ...
随机推荐
- python全栈开发-Day11 迭代器、生成器、面向过程编程
一. 迭代器 一 .迭代的概念 迭代器即迭代的工具,那什么是迭代呢? 迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而 ...
- Java基础学习笔记十四 常用API之基本类型包装类
基本类型包装类 Java中有8种基本的数据类型,可是这些数据是基本数据,想对其进行复杂操作,变的很难.怎么办呢?在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们 ...
- SpagoBi开发示例——员工离职人数统计
1.开发工具:SpagoBIStudio_5.1,操作界面和使用方法和eclipse没差 安装参考:http://www.cnblogs.com/starlet/p/4778334.html 2. ...
- Alpha第四天
Alpha第四天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...
- bug终结者 团队作业第二周
bug终结者 团队作业第二周 我们小组选取游戏"开心消消乐",回答问题: 1. 此类软件是什么时候开始出现的, 这些软件是怎么说服你(陌生人)成为他们的用户的? 他们的目标都是盈利 ...
- java封装的概念
继承.封装.多态.抽象是面向对象编程的四大基本概念,其中封装尤为重要,因为从我们学习JAVA开始,就基本上接触了封装,因为JAVA中的所有程序都是写在类中的,类也能当做一种封装. 在面向对象中封装是指 ...
- 【转】Python处理wave文件
#本文PDF版下载 Python解析Wav文件并绘制波形的方法 #本文代码下载 Wav波形绘图代码 #本文实例音频文件night.wav下载 音频文件下载 (石进-夜的钢琴曲) 前言 在现在繁忙的生活 ...
- c# windows service 实现监控其他程序是否被关闭,关闭则报警
namespace MonitorService { public partial class MonitorSv : ServiceBase { string AppName = "&qu ...
- Python之旅.第二章数据类型 3.19/3.20/3.21/3.22/3.23
一.数字类型 1.int类型: 基本使用: 用途:用于年龄,手机号,身份证号: 定义: age=18: 常用操作+内置方法: 正常的运算赋值: 进制转换: print(bin(3)); 把十进制3转换 ...
- Python内置函数(58)——input
英文文档: input([prompt]) If the prompt argument is present, it is written to standard output without a ...