【MySQL】数据库的基本操作

文章目录

  • 前言
  • [1. 常用的数据类型](#1. 常用的数据类型)
    • [1.1 数值类型](#1.1 数值类型)
    • [1.2 字符串类型](#1.2 字符串类型)
    • [1.3 日期类型](#1.3 日期类型)
  • 操作的前情提要
  • [2. 数据库的操作](#2. 数据库的操作)
    • [2.1 创建数据库](#2.1 创建数据库)
    • [2.2 显示当前的数据库](#2.2 显示当前的数据库)
    • [2.3 使用数据库](#2.3 使用数据库)
    • [2.4 删除数据库](#2.4 删除数据库)
  • [3. 数据表的操作](#3. 数据表的操作)
    • [3.1 创建表](#3.1 创建表)
    • [3.2 查看表的结构](#3.2 查看表的结构)
    • [3.3 删除表](#3.3 删除表)
  • 结语

前言

今天这篇博客我们将介绍 MySQL 数据库的数据类型,数据库的简单操作,表的基础操作


1. 常用的数据类型

MySQL 数据库提供了很多数据类型,如数值(整数和浮点数)类型、字符串类型、日期和时间类型、二进制类型等等。我们重点介绍前三类常用类型


1.1 数值类型

数值类型分为整型和浮点型

数据类型 字节数 说明 解释/范围(分为有符号和无符号)
TINYINT 1 非常小的整数 -128~127 0~255
SMALLINT 2 较小的整数 -32768~32767 0~65535
INT 4 标准整数 -2147483648~2147483647 0~4294967295
BIGINT 8 大整数 -9223372036854775808~9223372036854775807 0~18446744073709551615
FLOAT(M,D) 4 单精度浮点数 M 指定小数总长度,D 指定小数点后的位数(会发生精度丢失)
DOUBLE(M,D) 8 双精度浮点数 M 指定小数总长度,D 指定小数点后的位数(会发生精度丢失)
DECIMAL(M,D) M+2 高精度浮点数 同上,精度更高,但运算速度变慢,占用空间变大

补充:

  1. 尽量不要使用无符号类型 。比如对于int类型可能存不下的数据,不要试着用 int unsigned 来存储,可能它也无法存下,所以应该转使用 bigint 类型
  2. 对于浮点数类型,它跟我们之前学的有一点不一样,在 MySQL 中我们可以框定好小数的位数和小数点后的位数 。举个例子:double(3,1),这个类型表示小数的总位数是 3,小数点后的位数是 1,那 "99.5","10.0","20.3" 这些都是符合规则的;但如果存入的是 "6.2345" 这些非法数据,就会被四舍五入到 6.2,数据库里实际存储的值就是 6.2,这样就会造成精度丢失

1.2 字符串类型

数据类型 字节数 说明 范围
CHAR(M) M 固定长度 0~255
VARCHAR(M) 实际长度+1 可变长度 0~65535

补充:

  1. CHAR 类型一般需要预先定义字符串长度。如果不指定(M),则表示长度默认是1个字符

  2. VARCHAR 定义时, 必须指定长度 M ,否则会报错;而且使用 VARCHAR 时需要额外的空间来存储字符串的实际长度(最多需要使用2个字节)

  3. 关于两者如何选择:

    • 如果数据长度几乎不变,或者变化很小,使用 CHAR 类型可以提高性能和存储效率
    • 如果数据长度变化较大,或者需要存储非常长的字符串,使用 VARCHAR 类型更为合适
    • 在索引操作中,CHAR 类型由于其固定长度的特性,可能会提供更好的性能

1.3 日期类型

数据类型 字节数 日期格式 零值 范围
YEAR 1 YYYY 0000 1901~2155
DATE 4 YYYY-MM-DD 0000-00-00 1000-01-01~9999-12-31
TIME 3 HH:MM:SS 00:00:00 -838:59:59~ 838:59:59
DATETIME 8 YYYY-MM-DD HH:MM:SS 0000-00-00 00:00:00 1000-01-01 00:00:00~9999-12-31 23:59:59
TIMESTAMP 4 YYYY-MM-DD HH:MM:SS 0000-00-00 00:00:00 1970-01-01 00:00:01~2038-01-19 03:14:07

对于以上三种数据类型,我们最常使用的就几种:

  1. 整数类型:INT,BIGINT
  2. 浮点数类型:DOUBLE,DECIMAL
  3. 字符串类型:VARCHAR
  4. 时间日期类型:DATETIME

当然,对于使用哪种类型,还是要看实际开发中的业务需求,使用合适的类型往往能起到更好的效果


操作的前情提要

  1. SQL 的所有语句都是要以英文分号结尾,中途可以换行,遇到分号才会算作执行结束

  2. SQL 是大小不写不敏感的,在展示语法格式的时候博主会使用大写,但在展示具体操作的时候博主会使用小写,方便大家阅读

  3. 注释格式:

mysql 复制代码
   --        单行注释
   #         单行注释
   /* ...... */  多行注释
  1. 如果数据库名或者表名或者字段名是关键字,则需要使用 ``
mysql 复制代码
`ORDER` 

2. 数据库的操作

2.1 创建数据库

mysql 复制代码
CREATE DATABASE [IF NOT EXISTS] 数据库名;
  • 这个 [ ] 里的内容是可选项,表示的是 "如果没有存在该数据库就创建,如果重名就不创建"
  • 大写的表示关键词

示例:

当我们要在数据库里使用中文时,得添加 utf8mb4 字符集,否则中文无法显示,语法格式如下:

mysql 复制代码
CREATE DATABASE [IF NOT EXISTS] 数据库名 CHARACTER SET utf8mb4;

示例:


2.2 显示当前的数据库

mysql 复制代码
SHOW DATABASES;

示例:

用红线划出来的四个数据库是系统自带的,剩下的就都是用户自己创建的


2.3 使用数据库

mysql 复制代码
USE 数据库名;

示例:

我们想操作数据库之前必须先使用 USE 数据库名,指定我们想要操作哪个数据库,否则会报错

示例:


2.4 删除数据库

mysql 复制代码
DROP DATABASE [IF EXISTS] 数据库名;
  • 这里的 [ ] 表示如果存在该数据库就删除
  • 删除数据库是一件非常危险的操作,删除之后里面的表和数据也会被一起删除,因此要谨慎再谨慎

示例:


3. 数据表的操作

当我们需要操作数据库中的表时,需要先使用数据库,也就是 USE 数据库名


3.1 创建表

mysql 复制代码
CREATE TABLE 表名 (
	字段名 字段类型;
	字段名 字段类型;
	字段名 字段类型;
	......
);

我们可以在后面加上 comment 增加字段说明

示例:

mysql 复制代码
create table student (
	id int,
	name varchar(20) comment '姓名',
	age int,
	password varchar(20) comment '密码'
);

3.2 查看表的结构

mysql 复制代码
DESC 表名;

示例:

  • 一个表会有很多行,每一行也会有很多列,每一列就是一个字段
  • 关于索引、默认值等等我们在后面的博客中会一一介绍,暂时掌握怎么查看表的结构就 OK

3.3 删除表

mysql 复制代码
DROP TABLE [IF EXISTS] 表名;

这样就把表给删除掉了,同样删除表的操作也是十分危险的,需要慎重


结语

今天我们简单介绍了一下 MySQL 的数据类型、数据库的基本操作、表的基本操作。我们需要重点掌握对表的操作,尤其是如何查询表中的数据,这部分内容我们会在下一篇博客中详细介绍,敬请期待吧~

希望大家能喜欢这篇文章,有总结不到位的地方还请多多谅解。若有纰漏,希望大佬们能够在私信或评论区指正,博主会及时改正,共同进步!

相关推荐
Cengineering1 分钟前
sqlalchemy 加速数据库操作
数据库
Cikiss23 分钟前
微服务实战——平台属性
java·数据库·后端·微服务
小小不董36 分钟前
《Linux从小白到高手》理论篇:深入理解Linux的网络管理
linux·运维·服务器·数据库·php·dba
无敌少年小旋风1 小时前
MySQL 内部优化特性:索引下推
数据库·mysql
柒小毓1 小时前
将excel导入SQL数据库
数据库
bug菌¹1 小时前
滚雪球学Oracle[2.5讲]:数据库初始化配置
数据库·oracle·数据库初始化·初始化配置
一休哥助手1 小时前
Redis 五种数据类型及底层数据结构详解
数据结构·数据库·redis
翔云1234562 小时前
MVCC(多版本并发控制)
数据库·mysql
代码敲上天.2 小时前
数据库语句优化
android·数据库·adb
盒马盒马2 小时前
Redis:zset类型
数据库·redis