MySQL技巧(一)

NOT IN 与 IN

  假设我们又一张score表如下

  

  我们需要查询所有不是性别代号为"0"的学生数据

SELECT * FROM score WHERE id NOT IN(SELECT id FROM score WHERE gender = 0 );

很明显,not in 就是排除的意思。

 

exists 与 not exists

  exists:有结果集返回则返回true,相反返回false。

  not exists:与exists相反。

使用INSERT INTO.... SELECT 插入数据(将查询出的结果集插入到表中)

 我们有一张student表如下:

select * from score where id > 3;

我们想把上面查询的结果中的name值插入到student表中,可以用多条insert values语句,当然也可以通过insert select的形式

 

INSERT INTO student(name) select name from score where id > 3;
SELECT *FROM student;

 

很明显,确实已经将查询的结果集插入到了student表中

多表更新

   假设我们有这样的一张表:

  

  不管今后从性能上还是别的考虑,当想把性别中的男用0来代替,女用1来代替的话,可以用update set 的方式进行多表更新,具体如下:

  

  现在要做的是把score表中的性别男,女用上表中的对应id来表示:

  更新score表,score表中的gender字段与gender表中的g_name 绑定,然后修改,gender的值等于 gender表中的g_id,这样就完成了多表更新

UPDATE score INNER JOIN gender ON gender = g_name SET gender = g_id;
SELECT * FROM score;

 

  

 

 

 

  

 

posted @   瓶子coder  阅读(162)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示