1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-08-01 16:28:03 +08:00

Merge pull request #2085 from paigeman/patch-1

chore: fix typos
This commit is contained in:
Guide 2023-07-22 23:15:51 +08:00 committed by GitHub
commit 761e804d8e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 8 deletions

View File

@ -185,7 +185,7 @@ InnoDB 是一种索引组织表:数据的存储的逻辑顺序和索引的顺
InnoDB 是按照主键索引的顺序来组织表的
- 不要使用更新频繁的列作为主键,不用多列主键(相当于联合索引)
- 不要使用更新频繁的列作为主键,不使用多列主键(相当于联合索引)
- 不要使用 UUID,MD5,HASH,字符串列作为主键(无法保证数据的顺序增长)
- 主键建议使用自增 ID 值

View File

@ -19,7 +19,7 @@ head:
### 什么是关系型数据库?
顾名思义关系型数据库RDBMSRelational Database Management System)就是一种建立在关系模型的基础上的数据库。关系模型表明了数据库中所存储的数据之间的联系(一对一、一对多、多对多)。
顾名思义关系型数据库RDBRelational Database就是一种建立在关系模型的基础上的数据库。关系模型表明了数据库中所存储的数据之间的联系一对一、一对多、多对多
关系型数据库中,我们的数据都被存放在了各种表中(比如用户表),表中的每一行就存放着一条数据(比如一个用户的信息)。
@ -609,8 +609,10 @@ InnoDB 行锁是通过对索引数据页上的记录加锁实现的MySQL Inno
由于 MVCC 的存在,对于一般的 `SELECT` 语句InnoDB 不会加任何锁。不过, 你可以通过以下语句显式加共享锁或排他锁。
```sql
# 共享锁
# 共享锁 可以在 MySQL 5.7 和 MySQL 8.0 中使用
SELECT ... LOCK IN SHARE MODE;
# 共享锁 可以在 MySQL 8.0 中使用
SELECT ... FOR SHARE;
# 排他锁
SELECT ... FOR UPDATE;
```
@ -650,7 +652,10 @@ SELECT ... FOR UPDATE;
```sql
SELECT ... FOR UPDATE
SELECT ... LOCK IN SHARE MODE
# 共享锁 可以在 MySQL 5.7 和 MySQL 8.0 中使用
SELECT ... LOCK IN SHARE MODE;
# 共享锁 可以在 MySQL 8.0 中使用
SELECT ... FOR SHARE;
```
快照即记录的历史版本,每行记录可能存在多个历史版本(多版本技术)。
@ -673,6 +678,8 @@ SELECT ... LOCK IN SHARE MODE
SELECT...FOR UPDATE
# 对读的记录加一个S锁
SELECT...LOCK IN SHARE MODE
# 对读的记录加一个S锁
SELECT...FOR SHARE
# 对修改的记录加一个X锁
INSERT...
UPDATE...

View File

@ -358,7 +358,7 @@ WHERE prod_id IN ('BR01', 'BR02', 'BR03') AND quantity >= 100
```sql
SELECT prod_name, prod_price
FROM Products
WHERE prod_price BETWEEN 3 AND 6
WHERE prod_price >= 3 and prod_price <= 6
ORDER BY prod_price
```
@ -1337,7 +1337,7 @@ ORDER BY c.cust_name,o.order_num
这是错误的!只对 `cust_name` 进行聚类确实符合题意,但是不符合 `GROUP BY` 的语法。
select 语句中,如果没有 `GROUP BY` 语句,那么 `cust_name``order_num` 会返回若干个值,而 `sum(quantity _ item_price)` 只返回一个值,通过 `group by` `cust_name` 可以让 `cust_name``sum(quantity _ item_price)` 一一对应起来,或者说**聚类**,所以同样的,也要对 `order_num` 进行聚类。
select 语句中,如果没有 `GROUP BY` 语句,那么 `cust_name``order_num` 会返回若干个值,而 `sum(quantity * item_price)` 只返回一个值,通过 `group by` `cust_name` 可以让 `cust_name``sum(quantity * item_price)` 一一对应起来,或者说**聚类**,所以同样的,也要对 `order_num` 进行聚类。
> **一句话select 中的字段要么都聚类,要么都不聚类**

View File

@ -556,7 +556,7 @@ SELECT column_name(s) FROM table2;
| `LEFT()``RIGHT()` | 左边或者右边的字符 |
| `LOWER()``UPPER()` | 转换为小写或者大写 |
| `LTRIM()``RTRIM()` | 去除左边或者右边的空格 |
| `LENGTH()` | 长度 |
| `LENGTH()` | 长度,以字节为单位 |
| `SOUNDEX()` | 转换为语音值 |
其中, **`SOUNDEX()`** 可以将一个字符串转换为描述其语音表示的字母数字模式。