noob之MySQL基本查询

查询所有列:

SELECT * FROM 表名;

SELECT * FROM emp;

指定查询:

SELECT 列1 [,列2,........列N] FROM 表名;

distinct 消除相同的重复行:

SELECT DISTINCT JOB FROM EMP;

列运算:

SELECT *,sal*1.5 from emp;

会发现列名称sal变为sal*1.5,列中的值也乘了1.5,但其实数据没有变,因为这只是查询看乘1.5的样子

当你给的值无法转换为整数(如name定义为varchar)时转换为0。


 ifnull:

假如有一列定义为int的值为null,若要与另一列相加时会变为null,这时我们想将null转换为0时就要用到 ifnull

 select *,列名+ifnull(要相加的列名,0)from 表名;

给列起别名:

select 列名 as 别名1,列名 as 别名2 from 表名;

as可以省略。

模糊查找:

假如在学生表里查询姓张的人:select * from tb_stu where name like '张';若查询名字是两个字的,就写成'张_',若是三个字的,就写成'张_ _';

若找名字里有刚字的人(假如如有李刚 王刚 郭小刚),就用"%"符:select * from tb_stu where name like '%刚';

其中%是指前0到n的数据,所以只要有“刚“ 这个字就能查询出来。

若查询名字中含有某个字的人:就写成  '%要查询的字%';


内连接:

方言: SELECT * FROM 表1 别名1,表2 WHERE 别名1.xx=别名2.xx

标准:SELECT * FROM 表1 别名1 INNER JOIN 表2 别名2 ON 别名1.xx=别名2.xx

自然: SEKECT * FROM 表1 别名1 NATURE JOIN 表2 别名2

内连接查询出的所有记录都满足条件。



猜你喜欢

转载自blog.csdn.net/rhhboring/article/details/80528201
今日推荐