本文主要讨论MySQL的内容。

什么是MySQL?

MySQL 是一款开源、跨平台、基于关系模型的关系型数据库管理系统(RDBMS),使用结构化查询语言(SQL) 进行数据管理。它具有高性能、高可靠性、易用性、可扩展性等特点,广泛应用于 Web 应用、企业系统、云计算等领域,是目前全球主流的开源关系型数据库。

主流的数据库可以分为两大类:关系型数据库和非关系型数据库。

1、关系型数据库

  • MySQL:是一款开源的关系型数据库,是目前主流的选择。
  • Oracle Database:商用关系型数据库,面向高并发、高安全、高可用的企业级核心业务。需要付费,一般在大公司中才使用。
  • SQL server:微软推出的商用关系型数据库,适用于 Windows 生态企业应用。

2、非关系型数据库

  • Redis:开源内存数据结构存储,用作数据库、缓存、消息中间件。
  • MongoDB:开源文档型 NoSQL 数据库,面向高可扩展性、灵活结构的应用场景。

SQL语言

SQL本身是针对数据库操作的语言,和数据库其实是两个概念。SQL语言分为三种类型:DDL、DML和DCL。

1、DDL

DDL(data definition language):数据定义语言,用来维护存储数据的结构。

代表指令有:create 、drop、alter等

2、DML

DML(data manipulation language):数据操作语言,用来对数据进行操作。

代表指令有:insert、delete、update等

3、DCL

DCL(data control language):数据控制语言,主要负责权限管理和事务。

代表指令有:grant、revoke、commit等


数据库的基本操作

1、查询数据库

在实际工作中,在创建数据库之前,由于不能重复命名,在团队协作中可能会出现已经创建该名字的数据库,所以在创建之前需要检查一下已有的数据库。

show databases;

使用上面的命令可以查看当前已经创建好的数据库。运行后可以看到如下:
 

如图,目前已经有了6个数据库并显示出了它们的名字。其中,information_schema、mysql、performance_schema和sys四个数据库是MySQL自带的数据库,记录的是一些关于它本身的配置、性能、系统变量信息等。

2、创建数据库

创建数据库的语句具体如下:

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] DB_NAME [create_option]

create_option:[DEFAULT]{
    CHARACTER SET [=] charset_name
  | COLLATE [=] collation_name
  | ENCRYPTION [=] {'Y' | 'N'}
}

先来看第一行代码:

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] DB_NAME [create_option]

CRAETE关键字表示创建,而 { } 中的DATABASE和SCHEMA都表示数据库,两个选一个来进行书写;
[ ] 中表示的为可选项。此处的 IF NOT EXISTS表示如果不存在则创建数据库。

create_option:[DEFAULT]{
    --字符集
    CHARACTER SET [=] charset_name
    --排序规则
  | COLLATE [=] collation_name
    --是否加密
  | ENCRYPTION [=] {'Y' | 'N'}
}

下面我们创建一个test_one的数据库:

CREATE DATABASE test_one;

如果配置文件中设置了大小写不敏感,则关键字使用小写也能实现同样的功能。

create databese test_one;

创建好之后可以看到打印出了 Query OK;说明创建成功。我们也可以查询一下是否创建成功:

此外,我们也可以使用上面[ ]中的指令,例如:

create databasxe if not exists test_db;

此外,在创建时还可以手动指定字符集和排序规则:

create database if not exists test_two character set utf8mb4 collate utf8mb4_0900_ai_ci;

如果不清楚默认的字符集,我们可以使用如下的指令进行查询:

show variables like '%character%';

3、删除数据库

有创建也会有删除。删除数据库的语法如下:

DROP DATABASE [IF EXISTS] db_name;

下面我们试着把上面创建的test_one数据库删除:

drop database if exists test_one;

【注意】删除数据库是一个非常危险的操作,一定要慎用!


 常用数据类型

数据类型 大小 说明 对应
BIT(M) M指定位数,默认为1 二进制数,M范围从1到64,存储数值范围从0到2……M-1 常用Boolean对应BIT,此时默认是1位,即只能存0和1
TINYINT 1字节 - Byte
SMALLINT 2字节 - short(短整形)
INT 4字节 - Integer
BIGINT 8字节 - Long
FLOAT(M,D) 4字节 单精度,M指定长度,D指定小数位数,会发生精度丢失 Float
DOUBLE(M,D) 8字节 -

Double

DECIMAL(M,D) M/D最大值*2 双精度,M指定长度,D表示小数点位数,精确数值;一般用于表示金额

BigDecimal

NUMERIC(M,D) M/D最大值*2 和DECIMAL相同 BigDecimal

字符串类型

数据类型 大小 说明 对应
VARCHAR(SIZE) 0-65535字节 可变长度字符串;可以说是最常用的一种字符串类型,可以指定长度是多少 String
TEXT 0-65535字节 长文本数据

String

MEDIUMTEXT 0-16777215字节 中等长度文本数据 String
BLOB 0-65535字节 二进制形式的长文本数据 byte[]

日期类型

数据类型 大小 说明
DATETIME 8字节 范围从1000到9999年,不会进行时区的检索以及转换
TIMESTAMP 4字节 范围从1970到2038年,自动检索当前时区并进行转换

表的操作

什么是表?

在数据库里,表(Table)就是用来存放数据的 “结构化表格”,类似于 Excel 里的一张工作表。一个表的数据结构包含三个部分:

  • 表名
  • 列(字段):每一列是一种属性
  • 行(记录):每一行是一条完整数

1、选择数据库

在创建表之前,我们需要选择在哪个数据库中创建表;在test_db中创建该表,要先选择该数据库:

--切换当前操作的数据库为 test_db
use test_db;
--查询当前正在使用的数据库名称
select database();

2、创建表

创建一个表的语法规则如下:

CREATE TABLE table_name (
    field1 datatype,
    field2 datatype,
    --...
    fieldn datatype
);
--注意使用的是()!

根据这个规则,下面我们试着创建一个名为student的学生表,表中包含两个字段,其中id表示编号,name表示姓名,长度为50:

create table studengt (
id bigint,
name varchar(50),
);

之后使用如下命令查看所有的表:

show tables;

3、查看表结构

查看表结构使用下面的命令:

desc 表名;

  • Field:表中的字段
  • Type:字段的数据类型
  • Null:当前字段是否允许null
  • key:键值的类型
  • Default:当前列的默认值
  • Extra::其他扩展内容

4、删除表

删除表的语法如下:

DROP [TEMPORARY] TABLE [IF EXISTS] tb_name [,tb_name];

我们可以试着使用一下:

drop table if exists test;

由于我们没有这个表,有if exists就会报出一条警告。查看警告使用如下的命令:

SHOW WARNINGS;

【注意】删除表的操作同样要慎用!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐