mysql设置约束大于0_MySQL基础之如何创建、修改、约束数据表

整型类型

在了解整型的几种形式之前,整型有符号和无符号的区分;其中有符号区分正负,无符号不区分(unsigned)。

整型按照存储范围分为以下几种:

1、tinyint :范围略

有符号:

无符号:

2、smallint:

3、mediumint:

4、int :

5、bigint:

一般我们设计数据库时,可以根据实际情况来设置字段的类型,如我们有一个年龄字段age,据统计一般就是一百多岁吧,所以可以设置age为tinyint,并且年龄都是大于0的,所以是无符号unsigned。浮点类型

1、float[(M,D)]:m 表示数字的总位数,D表示小数点位数。

2、double[(M,D)];

比较float和double:主要是存储范围,后者比前者大。一般来说,float存储到小数点后7位,相对于double类型,float用的比较多。日期类型

1、year

2、time

3、date

4、datetime

5、timestamp(时间戳)

一般如果是数据是时间类型,我们存储到数据表的字段用字符串类型代替日期类型。字符串类型

1、字符串分类

char(m) 0<=m<=255;

varchar(m)  0<=m<=65535;

tinytext、text、mediumtext、longtext;

enum('value1',value2)枚举类型。主要针对记录数比较少的字段,如性别等;多选一

set('value1','value2') 集合。它区别于枚举,这种类型就是一排列组合。

2、比较char 和varchar以及enum 和set:

char 和varchar:char(m)定义的列的长度是固定的;varchar(m)定义的列的长度是可变字符串;

例如:字段如果设置为char(10) ,那么不管你存入的数据是多长,数据库都会占据10个字节的空间,不够的用空格进行填补;而varchar(10)就不同,存入的数据是多大就占用几个字节的空间,如‘aa’就只会占用两个字节。

enum 枚举多选一,如字段user_type 设置为enum('a','b','c'),那么user_type 只能保存为a或者b或者c,但是若user_type设置为set('a','b','c'),那么user_type的值就可以为a,也可以为ab等,是abc的排列组合。创建表的语法:

create table [if not exists] tb_name(

column_name data_type

);查看表

1、查看数据库的所有表:

show tables from [db_name];

2、 查看表的结构:

show columns from tb_name;

3、 查看表的创建语句:

show create table tb_name记录插入

插入数据表的语法:

insert [into] tb_name [column1,column2,...] values(value1,value2...);

其中若字段省略,那么插入的数据值是所有的字段值。初识约束

1、约束的作用:

保证数据的完整性和一致性;

2、约束的类型:

NOT NULL :非空约束;

DEFAULT:默认约束;

PRIMARY KEY :主键约束;

注:其中一个表只存在一个主键,声明为主键的字段值是唯一的并且不可以为空。注:设置为自动编号(AUTO_INCREMENT)的列必须是主键,默认值是1,自动增量也是1。

UNIQUE KEY:唯一约束;

注:其中一个表中可以存在多个唯一约束,声明为唯一约束的字段值必须保证唯一,可以为空。

FOREIGN KEY:外键约束;

注:外键约束实现了一对多的关系;一般使用较多的是逻辑外键约束,很少使用物理。修改表

1、 添加字段:

alter table tb_name add [column] column_name column_definition [first|after column_name];

如:alter table tb_student add age int not null after sex;

2、删除字段:

alter table tb_name drop column_name1,drop column_name2...;

如:alter table tb_student drop age,drop sex;

3、修改数据表:

给字段添加主键约束:

alter table tb_name add [contraint] primary key (column_name);

给字段添加唯一约束:

alter table tb_name add [contraint] unique key (column_name1,column_name2..);

给字段添加外键约束:

alter table tb_name add [contraint] foreign key (column_name) references parent_tb_name(parent_column_name);

添加/删除/修改默认约束

alter table tb_name alter column_name{set default value|drop defalut};

删除主键约束/唯一约束/外键约束:

alter table tb_name drop{primary key|index 约束名称(而不是字段名称)|foreign key 外键约束名称};

4、修改列定义:

alter table tb_name modify column_name column_definition [first|after column_name];

5、修改列名称:

alter table tb_name change old_column_name new_column_name column_definition;

6、修改数据表名称:

alter table tb_name rename [to|as] new_tb_name;

rename table tb_name to new_tb_name [,tb_name2 to new_tb_name2];删除表

drop table [if exists] tb_name;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值