目录
一、数据库
数据库即管理数据的软件,数据库可以分为关系型数据库和非关系型数据库。
1、关系型数据库 (RDBMS)
采用了关系模型来组织数据的数据库。关系模型即二维表格模型,关系型数据库就是由二维表格及其之间的联系所组成的数据组织。
基于标准的 SQL,只是内部一些实现有区别。常用的关系型数据库有:Oracle、MySQL、SQL Server。
2、非关系型数据库
不规定基于 SQL 实现,现在更多是指 NoSQL 数据库,如:
1、基于键值对 (Key-Value):如 Redis、memcached
2、基于文档型:如 MongoDB
3、基于列族:如 HBase
4、基于图型:如 neo4j
【MySQL】
MySQL 是一个客户端-服务器结构的程序,客户端和服务器之间使用网络进行通信。可以在同一个主机上,也可以在不同主机上。
客户端:主动发起请求的一方。
服务器:被动接收响应的一方。
MySQL 使用服务器部分来存储/管理数据,其中使用硬盘来存储数据。
二、数据库操作
2.1 显示当前数据库
SHOW DATABASES;
2.2 创建数据库
1、创建名为 moonsystem 的数据库。
CREATE DATABASE moonsystem;
2、若系统没有名为 moonsystem 的数据库,则创建;若有,则不创建。
CREATE DATABASE IF NOT EXISTS moonsystem;
3、创建名为 moonsystem,字符集为 utf8mb4 的数据库。
CREATE DATABASE moonsystem CHARSET utf8mb4;
注:MySQL 的 utf8 编码不是真正的 utf8,没有包含某些复杂的中文字符。MySQL 真正的 utf8 是 使用 utf8mb4。
2.3 删除数据库
DROP DATABASE 数据库名;
2.4 使用数据库
USE 数据库名;
三、数据类型
3.1 数值类型
分为整型和浮点型:
数据类型 | 大小 | 说明 | 对应 Java 类型 |
tinyint | 1字节 | 通常对应 Java 中的 boolean 类型 | 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 |
3.2 字符串类型
数据类型 | 大小 | 说明 | 对应 Java 类型 |
varchar (size) | 0-65535字节 | 可变长度字符串 | String |
text | 0-65535字节 | 长文本数据 | String |
mediumtext | 0-1677 7215字节 | 中等长度文本数据 | String |
blob | 0-65535字节 | 二进制形式的长文本数据 | byte[] |
3.3 日期类型
数据类型 | 大小 | 说明 | 对应 Java 类型 |
datetime | 8字节 | 范围从1000到9999年,不会进行时区的检索及转换。 | java.util.Date、java.sql.Timestamp |
timestamp | 4字节 | 范围从1970到2038年,自动检索当前时区并进行转换。 | java.util.Date、java.sql.Timestamp |
四、表的操作
需要操作数据库的表之前,需要先使用该数据库。
4.1 创建表
CREATE TABLE 表名 (
字段1 类型1,
字段2 类型2,
字段3 类型3
);
注:可以使用 comment 增加字段说明。
4.2 显示当前库中的表
SHOW TABLES;
4.3 查看表结构
desc 表名;
4.4 删除表
DROP TABLE 表名;
总结
1、MySQL 是一个客户端-服务器结构的程序。
2、int : 整型;decimal (M,D) : 浮点型类型;varchar(size) : 字符串类型;datetime : 日期类型。
3、需要操作数据库的表之前,需要先使用该数据库。
4、使用数据库:use 数据库名;查看表结构:desc 表名。
5、若创建表名或字段名与关键词冲突,可以使用反引号`name`。