MySQL——表的操作、数据类型

一、表的操作
1.创建一个表:
create table table_name(
                        field1 datatype,
                        field2 datatype,
                        field3 datatype
)character set 字符集 collate 检验规则 engine 存储引擎;
注意:字符集和校验规则如果没有说明那就是默认的字符集和校验规则。
2.查看表
desc 表名;
表中对应内容表示的意思:
Field:字段名字—>Type:字段类型—>Null:是否允许为空—>Key:索引类型—>Default:默认值—>Extra:扩充
3.修改表:在实际开发中,我们有时候可能需要修改表的结构,字段大小,字段类型,表的字符类型,表的存储引擎等等
alter table table_name add(column datatype [default expr] [,clumn datatype]…); —>增加
alter table table_name modify(column datatype [default expr] [,clumn datatype]…); —>修改
alter table table_name drop (column); —>删除
二、表的数据类型
1.数据类型
(1)数值类型:
bit(m):位类型。m指定位数,默认值1,范围1——64
tinyint(unsigned):带符号的范围-128——127,无符号范围0——255,默认有符号
bool:使用0和1表示真和假
smallint(unsigned):带符号是-215到215-1,无符号是2^16-1
int(unsigned):带符号是-231——231-1,无符号是2^16-1
bigint(unsigned):带符号是-263——263-1,无符号是2^64-1
float[(m,d)] [unsigned]:m指定显示长度,d指定小数位数,占用4字节
double[(m,d)] [unsigned]:表示比float精度更大的小数,占用8个字节
decimal[(m,d)] [unsigned]:定点数m指定长度,d表示小数点位数
(2)文本、二进制类型:
char(size):固定长度字符串,最大长度为255个字节
varchar(size):可变长度字符串,最大长度为65535个字节
对于varchar的最大长度字节数可以放下多少个字符:
在实际中,对于varchar的前一到三个字节是用来存放后面放了多少个字符,所以varchar实际最多能放的字符数为:(65535-3)/ 3=21844.
blob:二进制数据
text:大文本,不支持全文引索,不支持默认值
(3)时间日期:
date/datetime/timestamp:日期类型,timestamp表示时间戳
(4)String类型 :
enum类型:是一个字符串对象,其值来自表创建时在列规定中显示枚举的一个列值
set类型:字符串对象
注意:(1)在使用类型 的时候尽量不要使用无符号类型。
            (2)在MySQL中,一个字符与英文和中文没有关系,‘a’/‘一’都表示一个字符。并且在MySQL中没有’\0’。
2.数据类型中的重点:——char和varchar类型的比较

实际存储 char(4) varchar(4) char占用字节 varchar占用字节
abcd abcd abcd 4*3 4*3+1
A A A 4*3 4*1+1
Abcde 错误 错误 超过数据长度 超过数据长度

对于char:不管你存储什么只要你规定的最大长度,就会被占满,浪费空间
那么我们应该如何选择定长或变长字符?
(1)对于一些定长的数据,比如:学号、身份证号等就选用char
(2)对于一些长度变化的数据我们就选用 varchar
(3)char类型,空间利用效率低,但是访问效率要高些
(4)varchar类型,空间利用效率高,但是访问效率要低一些
在这有一个考点:数据库的优化
(1)怎么节省空间:选择合适的数据类型就可以节省空间;
(2)怎么提高检索效率,查找更方便;
3.对于时间戳
timestamp:一定要注意是从00:00:01开始的,在创建表的时候对于时间的三个数据变量,时间戳即使你没有赋值,它会自动的补上当前时间戳,并且在你更新的时候也会自动更新为下一个时间戳。
三、表的约束
在每个语言里都有NULL(空)和0,但是它们表示的意思确实完全不一样的,NULL是没有办法进行数值运算的。
1.空属性:null(默认的)和not null(不为空):在数据库的字段默认都是为NULL的,但是在实际开发中我们尽可能的不要让其为空,因为为空不能参加运算。在表中,如果已经有NULL了那么就不要将其默认值改为NULL,因为它不知道到底是默认值还是原本的值为NULL。
2. 列描述(注释)
用comment进行列描述。
eg:name varchar(20) not null comment ‘名字’
3.zerofill:加上它以后对于数据类型后面的长度就不会迷惑了,它让数据格式化输出,所有的都是设置的长度,不够的位数高位补0。
4.主键:primary key---->要求用主键修饰了的数据类型不能为空,不能重复,一个表中只能有一个主键。
在这有一个考点:主键的特点
不能重复,不能为空,一个表只能有一个主键,可以有合成主键。
5.自增长:用自增长修饰以后的变量,如果插入内容,那么对应的从1开始增长,但是当我们删除其中的一个,下次就会从当前接着增长,不会将删除的从新纳入。比如:1–>2–>3,当删除3以后重新插入直接变成4而不是3。

猜你喜欢

转载自blog.csdn.net/ZhuiZhuDream5/article/details/83447897
今日推荐