数据库基础2

mysql是一种语言,这个语言的数据类型

mysql的数据类型

MySQL 字段数据类型分为 数值类型、日期时间类型、字符串类型、特殊类型、JSON / 空间类型,日常开发只用前 3 类就足够。

1.整型

类型 占用字节 常用场景
TINYINT 1 字节 状态(0/1)、年龄、分数,无符号最大 255
SMALLINT 2 字节 少量数字,如商品分类 ID
INT / INTEGER 4 字节 最常用,用户 ID、订单号、普通数字
BIGINT 8 字节 超大 ID、雪花 ID、长数字主键
  1. 小数(带小数点)

  2. FLOAT / DOUBLE 浮点型存在精度丢失,不用于金额,适合温度、百分比粗略小数

  3. DECIMAL (M,D) 定点数(推荐金额) M 总位数,D 小数位数,精确无误差 例:price DECIMAL(10,2) 最多 8 位整数、2 位小数,存商品价格

  4. BIT 位类型

BIT (n),存二进制 0/1,极少用

二、日期时间类型(存时间、生日、创建时间)

  1. DATE:只存日期 YYYY-MM-DD,生日、到期日

  2. TIME:只存时分秒 HH:MM:SS,时长、营业时间

  3. DATETIME:日期 + 时间 YYYY-MM-DD HH:MM:SS,最通用,创建 / 修改时间

  4. TIMESTAMP:时间戳,范围 1970~2038,自动随时区转换,自动更新

  5. YEAR:只存年份,1901~2155

三、字符串类型(文字、手机号、姓名、简介)

  1. 短字符串(定长 / 可变短文本)
  • CHAR(M):固定长度,不足自动补空格,适合固定长度(手机号、身份证)

  • VARCHAR(M):最常用可变长度,姓名、用户名、地址,M 最大 65535

例:name VARCHAR(20) 存用户名

  1. 长文本(大段文字)

TEXT 系列,不设固定长度上限,适合文章、商品详情:

  • TINYTEXT:短备注

  • TEXT:普通文章

  • MEDIUMTEXT / LONGTEXT:超大篇幅内容

  1. 二进制字符串(存文件、图片二进制流,几乎不用)

BINARY、VARBINARY、BLOB,项目中图片 / 文件一般存 URL 地址,不存数据库

四、特殊枚举集合类型(固定可选值)

  1. ENUM:单选,只能选预设值 例:sex ENUM('男','女','未知'),只能存这三个值

  2. SET:多选,可存多个预设值组合 例:label SET('热销','新品','折扣')

在库中创建表

create table 表名(

字段1 字段类型comment 注释

字段2 字段类型comment注释

字段3 字段类型comment 注释

......

字段n 字段类型comment 注释

comment 表注释;

一张表就像Excel 表格

  1. = 整个 Excel 工作表(比如商品表、用户表)
  2. 字段 = Excel 里每一列的表头
  3. 记录(行) = Excel 里每一行完整的数据

举个 Excel 例子:

表格

id (字段 1) name (字段 2) price (字段 3)
1(一行记录) 手机 2999
2(一行记录) 耳机 199

这里的 idnameprice 三个名字,就叫字段

查看库中有哪些表

show tables

列出来数据库中的所有表

看表的结构(表长什么样子)

DESC 表名;

desc是英文description 的缩写

description /dɪˈskrɪpʃn/n. 描述、说明desc goods; = describe goods,查看这张表的结构描述

在后面的查询语句中desc是decend的缩写

DESC = descend 下降、降序(从大到小)

数据库类型

数据库有关系型数据库和非关系型数据库

mysql是关系型数据库

数据的存储是用二维表(行 + 字段)存储数据,只要是数据就是用这种格式存储

还有一些别的类型数据库

  • Redis:键值对存储,数据格式 key-value,没有表;
  • MongoDB:文档数据库,存储 JSON 格式文档,集合 (collection) ≈ 表,但结构完全自由,不是严格二维表;
  • Elasticsearch:搜索引擎,存储文档索引;
  • HBase:列簇数据库,按列分组存储,和 MySQL 表结构差别极大。

表修改操作

创建了表之后,如何添加,删除,修改表中的字段

alter英文含义;修改更改

给表中添加一个字段

alter table 表名 add 字段名 类型 comment 注释约束

修改字段

修改字段类型和修改字段名和字段类型

alter table class modify 字段名 新字段类型;

字段名和字段类型

alter table 表名 change 旧字段名字 新字段名字 类型comment 注释约束