1、SQL查询语句执行顺序:

查询中用到的关键词主要包含六个,并且他们的顺序依次为

select--from--where--group by--having--order by 

2、MySQL处理null值:

MySQL提供了三大运算符:

  • IS NULL: 当列的值是 NULL,此运算符返回 true;
  • IS NOT NULL: 当列的值不为 NULL, 运算符返回 true;
  • <=>: 比较操作符(不同于=运算符),当比较的的两个值为 NULL 时返回 true。

可以看到表中有一条数据的price值为null

MySQL知识点(一)

用price=null试图单独查询出这一条数据,结果没有数据

MySQL知识点(一)

因此需要用is null 为条件进行查询,is not null同理

MySQL知识点(一)    MySQL知识点(一)

3、查询结果更新到某一字段值

表数据:SELECT * FROM testone;

MySQL知识点(一)

更新语句:UPDATE testone set name=(SELECT name FROM testone WHERE name='方世玉') WHERE name='';

报错:[Err] 1093 - You can't specify target table 'testone' for update in FROM clause;

分析:同表不支持 update子查询结果,将子查询结果,再select一次.

 

修改更新语句:UPDATE testone set name=(SELECT * FROM (SELECT name FROM testone WHERE name='方世玉')) WHERE name='';

还是报错:[Err] 1248 - Every derived table must have its own alias;

分析:每一个派生出来的表都必须有一个自己的别名.

 

再次修改更新语句:UPDATE testone set name=(SELECT * FROM (SELECT name FROM testone WHERE name='方世玉') AS t) WHERE name='';

执行正确;

查询表数据更新:SELECT * FROM testone;

MySQL知识点(一)

 

相关文章:

  • 2022-12-23
  • 2021-09-06
  • 2021-08-27
  • 2021-07-09
  • 2022-02-19
  • 2021-11-10
  • 2021-07-09
猜你喜欢
  • 2021-10-22
  • 2022-12-23
  • 2021-12-15
  • 2021-12-19
  • 2021-09-08
  • 2021-09-12
相关资源
相似解决方案