auto commit
This commit is contained in:
parent
d60cecc076
commit
2722ea0f54
@ -35,16 +35,16 @@
|
||||
|
||||
# 基础
|
||||
|
||||
模式:定义了数据如何存储、存储什么样的数据以及数据如何分解等信息,数据库和表都有模式。
|
||||
模式定义了数据如何存储、存储什么样的数据以及数据如何分解等信息,数据库和表都有模式。
|
||||
|
||||
主键的值不允许修改,也不允许复用(不能使用已经删除的主键值赋给新数据行的主键)。
|
||||
|
||||
SQL(Structured Query Language),标准 SQL 由 ANSI 标准委员会管理,从而称为 ANSI SQL,各个 DBMS 都有自己的实现,如 PL/SQL、Transact-SQL 等。
|
||||
|
||||
# 查询
|
||||
SQL(Structured Query Language),标准 SQL 由 ANSI 标准委员会管理,从而称为 ANSI SQL。各个 DBMS 都有自己的实现,如 PL/SQL、Transact-SQL 等。
|
||||
|
||||
SQL 语句不区分大小写,但是数据库表名、列名和值是否区分依赖于具体的 DBMS 以及配置。
|
||||
|
||||
# 查询
|
||||
|
||||
**DISTINCT**
|
||||
|
||||
相同值只会出现一次。它作用于所有列,也就是说所有列的值都相同才算相同。
|
||||
@ -58,7 +58,7 @@ FROM mytable;
|
||||
|
||||
限制返回的行数。可以有两个参数,第一个参数为起始行,从 0 开始;第二个参数为返回的总行数。
|
||||
|
||||
返回前 5 行的 SQL:
|
||||
返回前 5 行:
|
||||
|
||||
```sql
|
||||
SELECT *
|
||||
@ -85,17 +85,17 @@ LIMIT 2, 3;
|
||||
```sql
|
||||
# 注释
|
||||
SELECT *
|
||||
FROM mytable -- 注释
|
||||
FROM mytable; -- 注释
|
||||
/* 注释1
|
||||
注释2 */
|
||||
```
|
||||
|
||||
# 排序
|
||||
|
||||
**ASC**:升序(默认)
|
||||
**DESC**:降序
|
||||
- **ASC**:升序(默认)
|
||||
- **DESC**:降序
|
||||
|
||||
可以按多个列进行排序:
|
||||
可以按多个列进行排序,并且为每个列指定不同的排序方式:
|
||||
|
||||
```sql
|
||||
SELECT *
|
||||
@ -105,7 +105,7 @@ ORDER BY col1 DESC, col2 ASC;
|
||||
|
||||
# 过滤
|
||||
|
||||
在应用层也可以过滤数据,但是不在服务器端进行过滤的数据非常大,导致通过网络传输了很多多余的数据,从而浪费了网络带宽。
|
||||
不进行过滤的数据非常大,导致通过网络传输了很多多余的数据,从而浪费了网络带宽。因此尽量使用 SQL 语句来过滤不必要的数据,而不是传输所有的数据到客户端中然后由客户端进行过滤。
|
||||
|
||||
```sql
|
||||
SELECT *
|
||||
@ -134,22 +134,21 @@ WHERE col IS NULL;
|
||||
|
||||
# 通配符
|
||||
|
||||
通配符也是用在过滤语句中,只能用于文本字段。
|
||||
通配符也是用在过滤语句中,但它只能用于文本字段。
|
||||
|
||||
- **%** 匹配 >=0 个任意字符,类似于 \*;
|
||||
|
||||
- **\_** 匹配 ==1 个任意字符,类似于 \.;
|
||||
|
||||
- **[ ]** 可以匹配集合内的字符,用脱字符 ^ 可以对其进行否定
|
||||
- **[ ]** 可以匹配集合内的字符,例如 [ab] 将匹配字符 a 或者 b。用脱字符 ^ 可以对其进行否定,也就是不匹配集合内的字符。
|
||||
|
||||
使用 Like 来进行通配符匹配。
|
||||
|
||||
```sql
|
||||
SELECT *
|
||||
FROM mytable
|
||||
WHERE col LIKE '[^AB]%' -- 不以AB开头的任意文本
|
||||
WHERE col LIKE '[^AB]%' -- 不以 A 和 B 开头的任意文本
|
||||
```
|
||||
|
||||
不要滥用通配符,通配符位于开头处匹配会非常慢。
|
||||
|
||||
# 计算字段
|
||||
|
Loading…
x
Reference in New Issue
Block a user