# 基本查询语句

## 1.取别名

`AS`后面如果有特殊符号，需要使用双引号括起来

```sql
USE test;
SELECT username AS "姓名" FROM pmw_admin;
```

结果

```bash
#姓名  
---------
admin
```

## 2.去重

* 在要字段前加上`distinct`关键字

```sql
SELECT DISTINCT checkinfo FROM pmw_goodstype;
```

## 3.`+`号的作用

* `+`在数值型数据进行加法时，正常加减
* 在非字符型进行加法时，将字符进行转换为数值型
* 转换失败时，将字符转换为0
* 如果一个字段为`NULL`时，则结果为NULL

```bash
SELECT 
  `id` + `classname` AS "哈哈哈" 
FROM
  pmw_goodstype ;
```

## 4.`concat`函数字符串拼接

* 字段有`NULL`时，结果为`NULL`

```bash
SELECT 
  CONCAT('dsad', '2','21321') AS 'dsad' ;
```

## 5.条件查询

执行顺序

1. 先执行`from`找到对应的表
2. 在执行`where`进行调节筛选
3. select \`进行字段的查询

```sql
SELECT 
  * 
FROM
  `pmw_goodstype` 
WHERE id > 10 ;
```

条件运算符

1. `>` 、`<`、`=`、`<>|!=`

逻辑运算符

1. `and`、`or`、`not`

```sql
## 条件查询
SELECT 
  * 
FROM
  `pmw_goodstype` 
WHERE id BETWEEN 5 AND    8 ;
```

## 6.模糊运算符

1. `like`、`between and`、`in`、`is null`
2. `like`一般和通配符配合使用
   * `%`任意多个字符，包括0个字符
   * `_`任意单个字符,只有一个字符
   * 加上转义符时，能够把通配符当成普通字符处理`\_|\%`;也可以通过`ESCAPE`自定义转义字符

```sql
SELECT 
  * 
FROM
  `pmw_goodstype` 
WHERE `classname` LIKE '%手%' ;
```

* `between and` 包含临界值
* 临界值顺序必须从小到大

```sql
SELECT 
  * 
FROM
  `pmw_goodstype` 
WHERE id BETWEEN 5 AND    8 ;
## 类似于
WHERE id >=5 AND    id <=8 ;
```

* `IN`进行查询是必须满足3个条件
* 查询关键字必须属于同一类型数据
* 不支持通配符

```sql
SELECT 
  * 
FROM
  `pmw_goodstype` 
WHERE classname IN ('手机','笔记本') ;
# 等价于
SELECT 
  * 
FROM
  `pmw_goodstype` 
WHERE classname='手机' OR  classname='笔记本';
```

`IS NULL`

`=`号不能够用于判断`NULL`值；所以得用`IS NULL`

安全等于`<=>` 可以对NULL进行判断，也可以对普通字符进项判断

![isnull比较](https://s2.ax1x.com/2020/02/27/3wbr7t.png)

`IFNULL(filed,0)`对`NULL`值进行判断，如果为空，则置换为对应的值

`ISNULL`判断字段是否为null，为null返回1，否则返回0
