MySQL优点、数据类型与基本命令
- MySQL的优点
- MySQL的数据类型
- MySQL的约束
- MySQL的基本操作命令
MySQL的优点
- 免费
1.小、中型企业难以负担SQLserver和Oracle的高昂费用s
2.部分公司为了未来上市时不出现版权意外- 开源
大公司愿意支付Oracle的高昂费用,但是不放心服务器在别人手上- 跨平台
MySQL同时支持Windows、Unix、Linux和Mac OS等操作系统- 功能强大且使用方便
1.运行速度快
2.可维护性强
3.易用性强
MySQL的数据类型
整形
整数类型 | 字节 | 最小值 | 最大值 |
---|---|---|---|
tinyint | 1 | 有符号-2^7 / 无符号0 | 有符号-1+2^7 / 无符号2^8 |
smallint | 2 | 有符号-2^15 / 无符号0 | 有符号-1+2^15 / 无符号2^16 |
mediumint | 3 | 有符号2^23 / 无符号0 | 有符号-1+2^23 / 无符号2^24 |
int/integer | 4 | 有符号-2^31 / 无符号0 | 有符号-1+2^31 / 无符号2^32 |
bigint | 8 | 有符号-2^63 / 无符号0 | 有符号-1+2^63 / 无符号2^64 |
浮点型
浮点数类型 | 字节 | 最小值 | 最大值 |
---|---|---|---|
float | 4 | ±1.175e-38 | ±1.175e+38 |
double | 8 | ±2.22e-308 | ±2.22e+308 |
定点数(最开始是为了解决32位操作系统位数不够而被开发出来,现在已被遗弃)
定点数类型 | 字节 | 描述 |
---|---|---|
DEC(M,D),DECIMAL(M,D) | M+2 | 最大取值范围与DOUBLE相同,给定DECIMAL的有效取值范围由M和D决定 |
位类型
位类型 | 字节 | 最小值 | 最大值 |
---|---|---|---|
BIT | 1~8 | 1bit | 64bit |
日期类型
日期类型 | 字节 | 最小值 | 最大值 |
---|---|---|---|
DATA | 4 | 1000-01-01 | 9999-12-31 |
DATATIME | 8 | 1000-01-01 00:00:00 | 9999-12-31 00:00:00 |
TIMESTAMP | 4 | 19700101080001 | 2038年的某个时刻 |
TIME | 3 | -838:59:59 | 838:59:59 |
YEAR | 1 | 1901 | 2155 |
常用字符串类型
字符串类型 | 字节 | 描述及存储需求 |
---|---|---|
char | M | M为0~255之间的数 |
varchar | M为0~65535之间的整数,值的长度+1个字节 | |
text | 允许0~65535字节,值的长度+2个字节 | |
tinytext | 允许0~255字节,值的长度+2个字节 | |
mediumtext | 允许0~167772150个字节,值的长度+3个字节 | |
longtext | 允许0~4294967295个字节,值的长度+4个字节 |
MySQL的约束
关键字 | 解释 |
---|---|
not null | 约束字段的值不能为空 |
default | 设置字段的默认值 |
unquie key(uk) | 约束字段的值是唯一 |
primary key(pk) | 约束字段的值为表的主键 |
foreign key(fk) | 约束字段的值为表的外键 |
auto_increment | 设置字段的值自动增长 |
注意
- 主键默认非空且唯一
- 外键一定是在从表中创建,指向主表的主键(数据类型必须相同)
- 外键可以有很多,也可以没有
- 外键的作用是约束子表中的数据:子表新建或修改记录时,必须与主表的关联字段保持一致
- auto_incement要求字段必须为主键且类型必须为int型
- auto_incement在运行过程中不会复用之前出现过的序号,即使已经被删除
MySQL的基本操作命令
关键字 | 作用 | 语法 |
---|---|---|
create | 创建数据库或表 | create database database_name |
drop | 删除数据库或表 | drop database database_name |
show | 显示数据库或表 | show databases |
desc | 显示数据库结构 | desc database_name |
default charset | 设置默认字符集格式 | default charset=utf-8 |
注意
- create、drop都是对单个目标进行操作,show是显示所有目标
- 使用show显示所有表之前,需要先进入到相应的数据库中
- 数据库中,默认的字符集格式为Latin
- 数据库中,utf-8写作utf8,两者本质相同