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⽤的⽐较多。⽇期类型mysql创建表数据类型
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();
其中若字段省略,那么插⼊的数据值是所有的字段值。初识约束
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 ;
如: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;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论