【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 的数据类型、数据库的基本操作、表的基本操作。我们需要重点掌握对表的操作,尤其是如何查询表中的数据,这部分内容我们会在下一篇博客中详细介绍,敬请期待吧~

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

相关推荐
DONG91317 分钟前
《三驾马车:MySQL、MongoDB、Redis对比与融合实战》
数据库·redis·sql·mysql·mongodb·database
程序边界42 分钟前
从 Oracle 到 KingbaseES:企业信创改造的“抄作业”模板,直接套用!
数据库·oracle
funfan05171 小时前
奇怪的“bug”--数据库的“隐式转换”行为
数据库·bug
Jasonakeke1 小时前
【重学MySQL】八十八、8.0版本核心新特性全解析
android·数据库·mysql
comeoffbest1 小时前
PostgreSQL 能存万物:从安装到高级功能实战
数据库·postgresql
时序数据说2 小时前
IoTDB如何解决海量数据存储难题?
大数据·数据库·物联网·时序数据库·iotdb
小楓12013 小时前
MySQL數據庫開發教學(二) 核心概念、重要指令
开发语言·数据库·mysql
花果山总钻风3 小时前
MySQL奔溃,InnoDB文件损坏修复记录
数据库·mysql·adb
TDengine (老段)4 小时前
TDengine IDMP 运维指南(管理策略)
大数据·数据库·物联网·ai·时序数据库·tdengine·涛思数据
Full Stack Developme5 小时前
PostgreSQL interval 转换为 int4 (整数)
数据库·postgresql