查询等于
- select 字段 from 表明 where 字段=”xxx”
==查询空值==
注意:在数据库中 null 不能使用等号进行衡量,需要使用 is null 来进行判断.因为数据库中的 null 代表什么也没有,它并不是一个值,所以不能使用等号衡量。
即这种写法是错误的
- select ename,empno,comm from emp where comm = null;
```sql
mysql> select ename,empno,comm from emp where comm is null;
+——–+——-+——+
| ename | empno | comm |
+——–+——-+——+
| SMITH | 7369 | NULL |
| JONES | 7566 | NULL |
| BLAKE | 7698 | NULL |
| CLARK | 7782 | NULL |
| SCOTT | 7788 | NULL |
| KING | 7839 | NULL |
| ADAMS | 7876 | NULL |
| JAMES | 7900 | NULL |
| FORD | 7902 | NULL |
| MILLER | 7934 | NULL |
+——–+——-+——+
10 rows in set (0.00 sec)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
3. ==查询非空值==
1. **xxx is not null**
2. ```sql
mysql> select ename,empno,comm from emp where comm is not null;
+--------+-------+---------+
| ename | empno | comm |
+--------+-------+---------+
| ALLEN | 7499 | 300.00 |
| WARD | 7521 | 500.00 |
| MARTIN | 7654 | 1400.00 |
| TURNER | 7844 | 0.00 |
+--------+-------+---------+
4 rows in set (0.00 sec)
一些运算的问题
在==单行处理函数== 中 ,如果 处理 时 ==
有null 参与的运输结果都是null
==案例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43```sql
# 结构
mysql> select sal,comm from emp;
+---------+---------+
| sal | comm |
+---------+---------+
| 800.00 | NULL |
| 1600.00 | 300.00 |
| 1250.00 | 500.00 |
| 2975.00 | NULL |
| 1250.00 | 1400.00 |
| 2850.00 | NULL |
| 2450.00 | NULL |
| 3000.00 | NULL |
| 5000.00 | NULL |
| 1500.00 | 0.00 |
| 1100.00 | NULL |
| 950.00 | NULL |
| 3000.00 | NULL |
| 1300.00 | NULL |
+---------+---------+
14 rows in set (0.00 sec)
# 测试
mysql> select sal+comm from emp;
+----------+
| sal+comm |
+----------+
| NULL |
| 1900.00 |
| 1750.00 |
| NULL |
| 2650.00 |
| NULL |
| NULL |
| NULL |
| NULL |
| 1500.00 |
| NULL |
| NULL |
| NULL |
| NULL |
+----------+
14 rows in set (0.00 sec)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
3. 解决办法-----> 使用 ifnull 进行处理,将null转换为一个具体的数值 ifnull(字段,转换的值)
```sql
mysql> select sal+ ifnull(comm,0) from emp;
+---------------------+
| sal+ ifnull(comm,0) |
+---------------------+
| 800.00 |
| 1900.00 |
| 1750.00 |
| 2975.00 |
| 2650.00 |
| 2850.00 |
| 2450.00 |
| 3000.00 |
| 5000.00 |
| 1500.00 |
| 1100.00 |
| 950.00 |
| 3000.00 |
| 1300.00 |
+---------------------+
14 rows in set (0.00 sec)
二、MYSQL8 中修改密码
这里需要注意,mysql8 后取消了PASSWORD()函数。即不能用传统的含有password函数的方法进行修改。
MySQL8 可行的方案
1 | ##设置认证密钥为空 ,该字段是加密的,无法直接修改 |
传统方法(在mysql8及以上已经不适用)
- 通过mysqladmin修改密码
1 | mysqladmin -u root -p password "newpassword" |
修改mysql数据库的user表
1
UPDATE mysql.user set authentication_string = PASSWORD ("newpassword) WHERE User = "root" and Host="localhost";
通过SET语句修改密码
1
2SET PASSWORD = PASSWORD ("rootpwd");: