关于mysql中的数据类型
varchar(255)
可变长度的字符串
比较智能,节省空间。
会根据实际的数据长度动态分配空间.
优点:节省空间
缺点:需要动态分配空间,速度慢。
char(255)
定长字符串
不管实际的数据长度是多少。
分配固定长度的空间去存储数据。
使用不恰当的时候,可能会导致空间的浪费.
优点:不需要动态分配空间,速度快。
缺点:使用不当可能会导致空间的浪费。
varchar和char我们应该怎么选择?
性别字段你选什么?因为性别是固定长度的字符串,所以选择char.
姓名字段你选什么?每一个人的名字长度不同,所以选择varchar .
int (最长11)
数字中的整数型。等同于java的int.
bigint
数字中的长整型。等同于java中的long.
float
单精度浮点型数据
double
双精度浮点型数据
date
短日期类型
datetime
长日期类型
clob
字符大对象
最多可以存储4G的字符串.
比如:存储一篇文章,存储一个说明.
超过255个字符的都要采用cLob字符大对象来存储.
Character Large OBject: CLOB
blob
二进制大对象
Binary Large Object
专门用来存储图片、声音、视频等流媒体数据.
往BLOB类型的字段.上插入数据的时候,例如插入一个图片、视频等,
你需要使用Io流才行.
表的创建
建表的语法格式:
建表属于DDL语句,DDL包括: create drop alter
create table 表名(字段名1数据类型,字段名2数据类型,字段名3数据类型) ;
create table表名(
字段名1数据类型,
字段名2数据类型,
字段名3数据类型
);
表名:建议以t_或者tbl_ 开始,可读性强。见名知意.
字段名:见名知意.
表名和字段名都属于标识符.
创建一个学生表?
学号、姓名、年龄、性别、邮箱地址
create table t_student (
no int,
name varchar (32) ,
sex char(1) ,
age int(3) ,
email varchar (255)
);
快速创建表
mysql> create table emp2 as select *from emp;
原理:
将一个查询结果当做一张表新建!!!!!
这个可以完成表的快速复制!!!!
表创建出来,同时表中的数据也存在了!!!
表的删除
语法格式
drop table 表名; //当这张表不存在的时候会报错!
//如果这张表存在的话,删除
drop table if exists 表名;
快速删除表中的数据
- delete语句删除数据的原理
表中的数据被删除了,但是这个数据在硬盘上的真实存储空间不会被释放!!!
这种删除缺点是:删除效率比较低.
这种删除优点是:支持回滚,后悔了可以再恢复数据!!!
用法delete from 表名;
- truncate语句删除数据的原理
这种删除效率比较高,表被一次截断,物理删除.
这种删除缺点:不支持回滚。
这种删除优点:快速。
用法: truncate table 表名;
表的修改
什么是对表结构的修改?
添加一个字段,删除一个字段,修改一个字段都是对表结构的修改
对表结构的修改需要使用: alter
属于DDL语句
语法格式
增加字段
alter table 表名 add 字段名 类型
alter table emo add name varchar(10) not Null;
删除字段
alert table 表名 drop 列名
修改字段名
alert table 表名 change 字段名,新字段名;
注意,这里和select语句修改字段名要加以区分。
select是给查询出来的结果另起别名,原表的字段名没有被修改
而alter将原表中的字段名修改了