整型类型
在了解整型的几种形式之前,整型有符号和无符号的区分;其中有符号区分正负,无符号不区分(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;