Mysql 排序语句,过滤数据,数 据 过 滤,用通配符过滤

select order by子句(clause)

net start 名
net stop 名
mysql [-h 主机名 -P端口号 -u root -p 密码 ]
退出 exit CTRL+c

select pro_name from products order by pro_name;按照字母顺序排序
select price,pro_name from products order by price DESC,pro_name; 降序
如果想在多个列上进行降序排序,必须 对每个列指定DESC关键字,DESC关键字只应用到直接位于其前面的列名。ASC为升序,既没有DESC和ASC 默认ASC

下面的例子演示如何找出最昂贵物品的值:
selecct pro_price from products order by pro_price DESC limit 1;
在给出ORDER BY子句时,应该保证它 位于FROM子句之后。如果使用LIMIT,它必须位于ORDER BY 之后。使用子句的次序不对将产生错误消息

过 滤 数 据 where
在同时使用ORDER BY和WHERE子句时,应 该让ORDER BY位于WHERE之后,否则将会产生错误
select pro_name from products where between pro_price 5 and 10;

空值检查

在创建表时,表设计人员可以指定其中的列是否可以不包含值。在 一个列不包含值时,称其为包含空值NULL。 NULL 无值(no value),它与字段包含0、空字符串或仅仅包含 空格不同。
SELECT语句有一个特殊的WHERE子句,可用来检查具有NULL值的列。
select pro_name from products where pro_price IS NULL:

数 据 过 滤

and or not
AND在计算次序中优先级更高, 任何时候使用具有AND和OR操作 符的WHERE子句,都应该使用圆括号明确地分组操作符。不要 过分依赖默认计算次序,即使它确实是你想要的东西也是如 此。使用圆括号没有什么坏处,它能消除歧义
为什么要使用IN操作符?其优点具体如下。  在使用长的合法选项清单时,IN操作符的语法更清楚且更直观。  在使用IN时,计算的次序更容易管理(因为使用的操作符更少)。
圆括号在WHERE子句中还有另外一种用法。IN操作符用来指定条件范 围,范围中的每个条件都可以进行匹配。IN取合法值的由逗号分隔的清 单,全都括在圆括号中。 IN操作符一般比OR操作符清单执行更快。  IN的最大优点是可以包含其他SELECT语句,使得能够更动态地建 立WHERE子句。第14章将对此进行详细介绍。 IN WHERE子句中用来指定要匹配值的清单的关键字,功能与OR 相当

下面的例子说明NOT的使用。为了列出除1002和1003之外的所有供应 商制造的产品,可编写如下的代码:
select pro_name,pro_price from products where NOT IN (1002,1003) ORDER BY pro_name;
为什么使用NOT?对于简单的WHERE子句,使用NOT确实没有什么优 势。但在更复杂的子句中,NOT是非常有用的。例如,在与IN操作符联合 使用时,NOT使找出与条件列表不匹配的行非常简单。
MySQL中的NOT MySQL支持使用NOT对IN、BETWEEN和 EXISTS子句取反,这与多数其他DBMS允许使用NOT对各种条件 取反有很大的差别。

用通配符进行过滤
通配符(wildcard) 用来匹配值的一部分的特殊字符。
搜索模式(search pattern) ① 由字面值、通配符或两者组合构 成的搜索条件。
百分号(%)通配符
最常使用的通配符是百分号(%)。在搜索串中,%表示任何字符出现 任意次数。例如,为了找出所有以词jet起头的产品,可使用以下SELECT 语句:
select pro_name,pro_price from products where pro_name like ‘jet%’;
区分大小写 根据MySQL的配置方式,搜索可以是区分大小 写的。如果区分大小写,'jet%'与JetPack 1000将不匹配。

通配符也可以出现在搜索模式的中间,虽然这样做不太有用。下面 的例子找出以s起头以e结尾的所有产品:
select pro-name from products where pro_name like ‘s%e’;
重要的是要注意到,除了一个或多个字符外,%还能匹配0个字符。% 代表搜索模式中给定位置的0个、1个或多个字符。

下划线(_)通配符

like 才可以通配符
另一个有用的通配符是下划线(_)。下划线的用途与%一样,但下划 线只匹配单个字符而不是多个字符。
不要过度使用通配符。如果其他操作符能达到相同的目的,应该 使用其他操作符。  在确实需要使用通配符时,除非绝对有必要,否则不要把它们用 在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起 来是最慢的。 
IN();判断是否属于括号中的内容
= 《》 不能用与null 需要用 is null is not null

字符函数

select length(str);
select length(‘john’);

concat 拼接字符串
select concat(last_name,’_’,first_name) from employees;

upper lower 大小写
select concat(upper(last_name),lower(first_name)) 姓名 from employees;
索引从1开始
substr 截取字串
substr(第一个数开始位置,第二个数截取字符长度);

INSTR 返回字串第一次出现的索引 ,没有0
select instr(‘杨晓爱上因留下’,‘因留下’) as out_put from employees;

trim 去空格

lpad 用指定的字符左填充指定长度的字符
select lpad(‘殷素素’,10,’*’);

replace 全部替换

你可能感兴趣的:(Mysql 排序语句,过滤数据,数 据 过 滤,用通配符过滤)