MySQL知识点(一)

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

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

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

    

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

表数据:SELECT * FROM testone;

更新语句: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;

 

posted @ 2020-04-10 14:38  jasmine0627  阅读(137)  评论(0编辑  收藏  举报