数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,可以高效地存储、检索和管理大量数据
主要特点:
关系型数据库是一种基于关系模型的数据管理系统,用于存储和管理结构化数据。关系模型可以理解为简单的二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织

SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的标准编程语言。它允许用户执行数据查询、更新、插入、删除等操作,广泛应用于数据库管理系统中SQL语句通常分为以下几类:
show databases;create database (if not exists) 数据库名 (其他选项);
其他选项包括:
show charset:查看数据库支持的字符集编码show collation:查看数据库支持的校对规则 示例:

show create database 数据库名;
alter database 数据库名 修改选项;
修改选项包括:
示例:

drop database 数据库名;
类型 | 大小 | 说明 |
|---|---|---|
tinyint | 1字节 | 有符号:-127 ~ 128;无符号:0 ~ 255 |
smallint | 2字节 | 有符号:-32768 ~ 32767;无符号:0 ~ 65535 |
mediumint | 3字节 | 有符号:-2^23 ~ 2^23 - 1;无符号:0 ~ 2^24 - 1 |
int | 4字节 | 有符号:-2^31 ~ 2^31 - 1;无符号:0 ~ 2^32 - 1 |
bigint | 8字节 | 有符号:-2^63 ~ 2^63 - 1;无符号:0 ~ 2^64 - 1 |
decimal(M,D):精确数值,M为总位数,D为小数位数。例如decimal(5,2)可以存储最大值为 999.99
类型 | 大小 | 说明 |
|---|---|---|
float(M,D) | 4字节 | 单精度浮点数,M为总位数,D为小数位数 |
double(M,D) | 8字节 | 双精度浮点数,M 为总位数,D 为小数位数 |

char(M):定长字符串,范围 0 到 255字符,M 表示该字段最多能存储的字符数量,如果存储的字符串长度小于M,剩余部分会用空格填充格,M省略则长度为1varchar(M):变长字符串,范围 0 到 65535字符,M为最大字符数,所占空间为实际长度+1
char(4) | 所需空间(字符) | varchar(4) | 所需空间(字符) |
|---|---|---|---|
‘’ | 4 | ‘’ | 1 |
‘a’ | 4 | ‘a’ | 2 |
‘ab’ | 4 | ‘ab’ | 3 |
‘abc’ | 4 | ‘abc’ | 4 |
‘abcd’ | 5 | ‘abcd’ | 5 |
tinytext:最大长度255字节,有效字符个数取决于使用的字符集text:最大长度65535字节,有效字符个数取决于使用的字符集mediumtext:最大长度16777215字节,有效字符个数取决于使用的字符集longtext:最大长度4294967295字节,有效字符个数取决于使用的字符集
binary(M):定长二进制字符串,M 为字节数,范围 0 到 255字节,与char类似,但存储的是二进制字节而不是字符varbinary(M):变长二进制字符串,M 为最大字节数,范围 0 到65535字节,与varchar类似,但存储的是二进制字节而不是字符tinyblob:最大长度 255 字节blob:最大长度65535 字节mediumblob:最大长度 16777215 字节longblob:最大长度 4294967295 字节
类型 | 大小(字节) | 范围 | 格式 | 0值 |
|---|---|---|---|---|
year | 1 | 1901 ~ 2155 | yyyy | 0000 |
类型 | 大小(字节) | 范围 | 格式 | 0值 |
|---|---|---|---|---|
date | 4 | 1000-01-01 ~ 9999-12-31 | yyyy-mm-dd | 0000-00-00 |
类型 | 大小(字节) | 范围 | 格式 | 0值 |
|---|---|---|---|---|
time | 3 | -838:59:59 ~ 838:59:59 | hh:mm:ss | 00:00:00 |
’d hh:mm:ss’格式:d表示日可取(0 ~ 34)之间的值,小时的值等于(d * 24 + hh)。例如,输入’1 11:30:50’插入数据库中的日期为35:30:50。’hhmmss’字符串格式/hhmmss数字格式current_time或now()函数输入当前系统时间类型 | 大小(字节) | 范围 | 格式 | 0值 |
|---|---|---|---|---|
datetime | 8 | 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.499999 | yyyy-mm-dd hh:mm:ss | 0000-00-00 00:00:00 |
类型 | 大小(字节) | 范围 | 格式 | 0值 |
|---|---|---|---|---|
timestamp | 4 | 1970-01-01 00:00:01.000000 ~ 2038-01-19 03:14:07.499999 | yyyy-mm-dd hh:mm:ss | 0000-00-00 00:00:00 |
current_timestamp:表示当前日期和时间use 数据库名字;
show tables;
create table (if not exists) 表名(field datatype 约束 commit '注释'); 示例:

describe/desc(简写) 表名;
alter table 表名 add 列名 数据类型 位置关系;
alter table 表名 modify 列名 数据类型;
alter table 表名 rename column 列名 to 新列名;
alter table 表名 drop 列名;
alter table 表名 rename to 新表名;
drop table 表名;