前言
本文精选了一系列常用的 MySQL 指令,旨在快速上手并深入了解 MySQL 的操作,将从基础的数据库创建、表设计、数据插入,等方面,逐一介绍 MySQL 的常用指令,每个指令都将配以详细的解释和示例,以便能够更好地理解和应用。
正文
在 MySQL 和平时认知不同的概念:
MySQL | 认知 |
---|---|
数据库 | 文件夹 |
数据表 | 文件(Excel文件) |
1、数据库管理
1.1 查看已有的数据库
drop table 表名称;
1.2 创建数据库
create database 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
1.3 删除数据库
drop database 数据库名称;
1.4 进入数据库
use 数据库名称;
1.5 查看数据库下的所有数据表
show tables;
2、数据表管理
2.1 创建数据表
create table 表名称(
列名称 类型,
列名称 类型,
列名称 类型
) default charset=utf8;
例如:
create table tb1(
id int ,
name varchar(16) ,
age int
) default charset=utf8;
show tables;
2.1.1 设置非空
create table 表名称(
id int,
name varchar(16) not null, -- 不允许为空
age int null, -- 允许为空(默认)
) default charset=utf8;
2.1.2 设置默认值
create table 表名称(
id int,
name varchar(16) ,
age int default 3 -- 插入数据时,age列的值默认为3
) default charset=utf8;
2.1.3 设置主键
create table 表名称(
id int primary key, -- 主键(不允许为空,也不允许重复)
name varchar(16) ,
age int
) default charset=utf8;
主键一般用于表示当前行的数据的编号
2.1.4 设置自增
create table 表名称(
id int auto_increment primary key, -- 内部维护,自增
name varchar(16) ,
age int
) default charset=utf8;
一般情况下,在创建表时都会这样来写【标准】
create table tb1(
id int not null auto_increment primary key,
name varchar(16),
age int
) default charset=utf8;
2.2 删除数据表
drop table 表名称;
2.3 查看数据表结构
desc 表名称;
3、常用数据类型
3.1 tinyint
- 有符号, 取值范围: -128 ~ 127 (有正有负) 【默认】
- 无符号, 取值范围: 0 ~ 255 (只有正)
create table tb1(
id int not null auto_increment primary key,
age tinyint --有符号, 取值范围: -128 ~ 127
) default charset=utf8;
create table tb1(
id int not null auto_increment primary key,
age tinyint unsigned --无符号, 取值范围: 0 ~ 255
) default charset=utf8;
3.2 int
- 有符号, 取值范围: -2147483648 ~ 2147483647 (有正有负)
- 无符号, 取值范围: 0 ~ 4294967295 (只有正)
3.3 bigint
- 有符号, 取值范围: -9223372036854775808 ~ 9223372036854775807 (有正有负)
- 无符号,取值范围: 0 ~ 18446744073709551615 (只有正)
3.4 int 数据类型练习
# 创建数据表
create table tb2(
id int not null auto_increment primary key,
salary int,
age tinyint --有符号, 取值范围: -128 ~ 127
) default charset=utf8;
show tables;
# 插入数据
insert into tb2(salary,age) values(10000,18);
# 批量插入数据
insert into tb2(salary,age) values(20000,28),(30000,38);
# 查看表中的数据
select * from tb2;
3.5 float
3.6 double
3.7 decimal
decimal(m,d)
decimal 可以表达准确的小数值,m 是数字总个数(符号不算);d 是小数点后个数;
m 最大值为65,d 最大值为30
# 创建表
create table tb3(
id int auto_increment primary key, --内部维护,自增
name varchar(16),
salary decimal(8,2) --一共8位(整数位数+小数点位数), 保留小数点后2位
) default charset=utf8;
# 插入数据
insert into tb3(salary) values(1.28);
insert into tb3(salary) values(5.289);
# 查询数据
select * from tb3;
3.8 char(m)
- 定长字符串,默认固定用 11 个字符串进行存储,哪怕字符串个数不足,也按照11个字符存储;
- m 代表字符串的长度;最多能存储255个字节的数据;
- 查询效率高(手机号、密码等).
# 创建表
create table tb4(
id int auto_increment primary key, --内部维护,自增
mobile char(11)
) default charset=utf8;
# 插入数据
insert into tb4(mobile ) values("151");
insert into tb4(mobile ) values("15123561566");
# 查询数据
select * from tb4;
3.9 varchar(m)
- 变长字符串,默认最长 11 个字符,真实数据多长就按多长存储;
- m 代表字符的长度;最多能存储 65535 个字节的数据,中文可存储 65535/3 个汉字;
- 相对 char 类型,查询效率(用户名、邮箱等).
3.10 text
- text 类型用于保存变长的大字符串,可以最多到 65535 个字符;
- 一般情况下,长文本会用 text 类型,例如:文章、新闻等.
3.11 mediumtext(几乎不用)
3.12 longtext(几乎不用)
3.13 datetime
YYYY-MM-DD HH:MM:SS (1000-01-01 00:00:00/9999-12-31 23:59:59)
3.14 date
YYYY-MM-DD (1000-01-01/9999-12-31)
3.15 数据类型练习
# 创建表
create table tb7(
id int auto_increment primary key, --内部维护,自增
name varchar(64) not null,
password char(64) not null,
email varchar(64) not null,
age tinyint,
salary decimal(10,2),
ctime datetime
) default charset=utf8;
# 查询表
show tables;
# 插入数据
insert into tb7(name,password,email,age,salary,ctime) values("Jack","123","Jack@qq.com",19,1000.20,"2024-04-24 17:44:44");
# 查询数据
select * from tb7;
MySQL 还有很多其他的数据类型,例如:set、enum、TinyBlob、Blob、MediumBlob、LongBlob等,详细的话参考官方文档。