特殊字符 * 表示 所有列
使用* 和指定某个列 ,性能相同。
使用WHERE 指定 要保留哪些行
判断某个字段 是非为空 用 is null 或者 is not null 如:
mysql> select * from menpiao where logdate is null;
在使用 and 和or 的时候,可以使用圆括号作为一个 整体的判断。
在select查询中使用指定列,可以不返回多余的数据,在跨越网络的检索中,能避免不需要的时间浪费。
可以使用AS 改变列名。
select sal as salary from menpiao;
这将 sal 改新名 salary。 有些数据库 接收 不用as 的方式 ,但是 所有数据库都接受 使用as 的方式。
如何在where语句中使用别名的方法。
select * from (select sal as salary from menpiao) x where salary = 3000;
WHERE子句 是在 SELECT 之前处理的,所有在WHERE 子句之前 salary 并不存在。要在where语句处理完之后,别名才能生效。
连接列值
MySQL使用 concat 函数
select concat(name, ' phone number is ',phone) as content from menpiao_2015 where num='12'
使用CASE表达式直接在SELECT语句中执行条件逻辑
select *,case when logdate < '2015-01-22 14:30' then 'zao' else 'chi' end as jieguo from menpiao_2015 where num = '12'
结果集
如果没有ELSE,对于不满足判断条件的行,CASE表达式返回NULL。
限制返回行数
在Oracle中,不能用
随机返回n条记录
mysql> select * from menpiao_2015 order by rand()limit 5;
ORDER BY 子句可以接受函数的返回值,并使用它来改变结果集的次序。
查找空值
必须使用 IS NULL
NULL不能用 != 或者 = 来比较。必须使用IS NULL 或者 IS NOT NULL
select coalesce(comm,0) from emp;
当comm字段为NULL时候,则返回0.
按模式搜索
使用LIKE 运算 和 % 通配符。
select name where name like '%ER%';
% 匹配任意字符序列
_ 匹配单一单个字符, 所以当需要匹配的字符中有_时,需要用转移字符\