因为上学的时候学的不认真,导致记忆不扎实,现在要重新梳理了。今天复习了mysql查询,做整理如下。
现在是使用客户端工具,Navicat for mysql。
MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式。
1.SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。2.SQL的模式缺省是忽略大小写
3.使用SQL模式时,你不能使用=或!=;而使用LIKE或NOT LIKE比较操作符。
文字不如演习:
SELECT 字段 FROM 表 WHERE 某字段Like 条件
1.select * from charges where sale_name="张三" ; 说明: 查询charges表中,sale_name=张三的所有信息
2.select * from fee_details a,charges b where a.charge_id=b.id and b.k3_sync='1' and b.k3_sync_time like '2013-10-09%'
说明:查询fee_details (起名a)及 charges(起名b)表中 a.charge_id=b.id 字段相同,并且限制条件为b.k3_sync='1' 和b.k3_sync_time like '2013-10-09%' 的所有信息。
3.其中关于条件,SQL提供了四种匹配模式:
1)SELECT * FROM [user] WHERE u_name LIKE ‘%三%‘; 说明:查询表user,将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。
2)SELECT * FROM [user] WHERE u_name LIKE ‘%三%’ AND u_name LIKE ‘%猫%’ 说明:找出u_name中既有“三”又有“猫”的记录,使用and条件
3)SELECT * FROM [user] WHERE u_name LIKE ‘%三%猫%’ 说明:虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。所以要使用and
4)SELECT * FROM [user] WHERE u_name LIKE ‘_三_’ 说明: 只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;
SELECT * FROM [user] WHERE u_name LIKE ‘三__’; 说明:只找出“三脚猫”这样name为三个字且第一个字是“三”的;
4.select distinct(bu) from fee_details; 查询表中的BU值,并去重。