1. 查询等于

    1. select 字段 from 表明 where 字段=”xxx”
  2. ==查询空值==

    1. 注意:在数据库中 null 不能使用等号进行衡量,需要使用 is null 来进行判断.因为数据库中的 null 代表什么也没有,它并不是一个值,所以不能使用等号衡量。

      1. 即这种写法是错误的

        1. select ename,empno,comm from emp where comm = null;
      2. ```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)

  3. 一些运算的问题

    1. 在==单行处理函数== 中 ,如果 处理 时 ==有null 参与的运输结果都是null==

    2. 案例:

      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
2
3
4
5
6
 ##设置认证密钥为空 ,该字段是加密的,无法直接修改
1.UPDATE user SET authentication_string="" WHERE user="root";
##2.修改密码
2.ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newPassword';
##刷新权限
3.flush privilege

传统方法(在mysql8及以上已经不适用)

  1. 通过mysqladmin修改密码
1
mysqladmin -u root -p password "newpassword"
  1. 修改mysql数据库的user表

    1
    UPDATE mysql.user set authentication_string = PASSWORD ("newpassword) WHERE User = "root" and Host="localhost";
  2. 通过SET语句修改密码

    1
    2
    SET PASSWORD = PASSWORD ("rootpwd");: