Skip to content

Commit

Permalink
submit 数据库
Browse files Browse the repository at this point in the history
  • Loading branch information
“PHZ” committed Oct 3, 2024
1 parent 5d38b97 commit f2602da
Showing 1 changed file with 101 additions and 6 deletions.
107 changes: 101 additions & 6 deletions source/_posts/数据库-1.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,105 @@ tags:
- 学习笔记
---
### 数据库的相关概念
名称 | 全称 | 简介
------ |---------------------------|------------------------
数据库 | 存储数据的仓库,数据是有组织的进行存储|DataBase(DB)
数据库管理系统|操纵和管理数据库的大兴软件|DataBase Management System(DBMS)
SQL | 操作关系数据库的变成语言,定义了一套操作关系数据库统一**标准**|Structured Query Language
| 名称 | 全称 | 简介 |
| -------------- | -------------------------------------------------------------- | -------------------------------- |
| 数据库 | 存储数据的仓库,数据是有组织的进行存储 | DataBase(DB) |
| 数据库管理系统 | 操纵和管理数据库的大兴软件 | DataBase Management System(DBMS) |
| SQL | 操作关系数据库的变成语言,定义了一套操作关系数据库统一**标准** | Structured Query Language |

### 数据库
MySQL的启用与停止
```bash
net start mysql80
net stop mysql80
```

### 数据模型
- 关系型数据库(RDBMS)
- 概念:建立在关系模型的基础上,由多张相互连接的二维表组成的数据库。
- 特点:
1. 使用表格存储数据,格式统一,便于维护。
2. 使用SQL语言操作,标准统一,使用方便。
- 数据模型
- MySQL客户端通过给服务器发送操作信息,来对数据库进行操作
- 在SQL服务器内部,DBMS对数据库进行创建、删除、操作等步骤。
- 一个数据库中可以包含多个表结构,表结构才是真正存储数据的部分

### MySQL操作简介
#### SQL通用语法
1. SQL语句可以单行或多行书写,以分号结尾。
2. SQL语句可以使用空格/缩进来增强语句的可读性
3. MySQL数据库的SQL语句不区分大小写,但是一般将关键字大写。
4. 注释:
- 单行注释:--   *注释内容*  或 #   注释内容
- 多行注释:/*   注释内容   */

#### SQL语句分类
| 分类 | 全称 | 说明 |
| ---- | -------------------------- | ------------------------------------------------------ |
| DDL | Data Definition Language | 数据定义语言,用来定义数据库对象(数据库,表,字段) |
| DML | Data Manipulation Language | 数据操作语言,用来对数据库中表的数据进行增删改 |
| DQL | Data Query Language | 数据查询语言,用来查询数据库中表的记录 |
| DCL | Data Control Language | 数据控制语言,用来创建数据库用户、控制数据库的访问权限 |

#### DDL语句
##### 数据库操作
- 查询
- 查询所有数据库
``` SHOW DATABASES; ```
- 查询当前数据库
``` SELECT DATABASE(); ```
- 创建
``` CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则] ```
- 删除
``` DROP DATABASE [IF EXISTS] 数据库名; ```
- 使用
``` USE 数据库名; ```

##### 表操作
- 查询当前数据库所有表
``` SHOW TABLES ```
- 查询表结构
- ``` DESC 表名 ```
- 查询指定表的建表语句
``` SHOW CREATE TABLE 表名 ```
##### 表结构的数据类型
| 分类 | 类型 | 大小 | 有符号(SIGNED)范围 | 无符号(UNSIGNED)范围 | 描述 |
| -------- | --------- | ------- | ------------------------------------------- | ------------------------- | ------------ |
| 数值类型 | TINYINT | 1 byte | (-128, 127) | (0, 255) | 小整数值 |
| 数值类型 | SMALLINT | 2 bytes | (-32768, 32767) | (0, 65535) | 较小整数值 |
| 数值类型 | MEDIUMINT | 3 bytes | (-8388608, 8388607) | (0, 16777215) | 中等整数值 |
| 数值类型 | INT | 4 bytes | (-2147483648, 2147483647) | (0, 4294967295) | 标准整数值 |
| 数值类型 | BIGINT | 8 bytes | (-9223372036854775808, 9223372036854775807) | (0, 18446744073709551615) | 大整数值 |
| 数值类型 | FLOAT | 4 bytes | 单精度浮点数范围 | 单精度浮点数范围 | 单精度浮点数 |
| 数值类型 | DOUBLE | 8 bytes | 双精度浮点数范围 | 双精度浮点数范围 | 双精度浮点数 |
| 数值类型 | DECIMAL | 可变 | 依定义的精度和标度确定 | 依定义的精度和标度确定 | 定点数 |

除此之外,MySQL还有相应的时间数据类型
| 分类 | 类型 | 大小 | 范围 | 格式 | 描述 |
| ------------ | --------- | ------- | ------------------------------------------------------ | ------------------- | -------------------------- |
| 日期时间类型 | DATE | 3 bytes | '1000-01-01' 至 '9999-12-31' | YYYY-MM-DD | 只包含日期 |
| 日期时间类型 | TIME | 3 bytes | '-838:59:59' 至 '838:59:59' | HH:MM:SS | 只包含时间 |
| 日期时间类型 | DATETIME | 8 bytes | '1000-01-01 00:00:00' 至 '9999-12-31 23:59:59' | YYYY-MM-DD HH:MM:SS | 包含日期和时间 |
| 日期时间类型 | TIMESTAMP | 4 bytes | '1970-01-01 00:00:01' UTC 至 '2038-01-19 03:14:07' UTC | YYYY-MM-DD HH:MM:SS | 包含日期和时间,用于时间戳 |
| 日期时间类型 | YEAR | 1 byte | '1901' 至 '2155' | YYYY | 只包含年份 |

##### 表操作
- 添加字段
``` ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];```
例如,为tb_user表中增加一个新的字段“昵称”为nickname,类型为varchar(20)
``` alter table tb_user add nickname varchar(20) commenr "昵称"; ```

- 修改字段数据
- 修改数据类型
``` ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度) ```
- 修改字段名和字段类型
``` ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束]; ```

- 修改表名
``` ALTER TABLE 表名 RENAME TO 新表名 ```

- 删除表
``` DROP TABLE [IF EXISTS] 表名 ```

- 删除指定表,并重新创建该表
``` TRUNCATE TABLE 表名 ```

0 comments on commit f2602da

Please sign in to comment.