主要包含常用运算符和排序操作:
1、常用条件运算符(条件)
条件查询需要用到 where 语句,where 必须放到 from 语句表的后面 ,运算符(条件)放在 where 后。
注:Like 中的表达式必须放到单引号或双引号中
2、例子:
-- 1、= 等于 SELECT * FROM `user` WHERE age =23 -- 2、<>或!= 不等于 SELECT * FROM `user` WHERE age <> 23 -- 3、< 小于 SELECT *FROM `user` WHERE age<30 -- 4、<= 小于等于 SELECT *FROM `user` WHERE age<=30 -- 5、> 大于 SELECT *FROM `user` WHERE age>30 -- 6、>= 大于等于 SELECT *FROM `user` WHERE age>=30 -- 7、between …and …. 两个值之间,等同于 >= and <= SELECT *FROM `user` WHERE age between 30 and 40 -- 8、is null 为 null(is not null 不为空) SELECT *FROM `user` WHERE age is null SELECT *FROM `user` WHERE age is not null -- 9、and 并且 SELECT *FROM `user` WHERE classid =2 and age <40 -- 10、or 或者 SELECT *FROM `user` WHERE age =30 or age =40 -- 11、in 包含,相当于多个 or(not in 不在这个范围中) SELECT *FROM `user` WHERE age in (30,40,43,45) -- 12、not not 可以取非,主要用在 is 或 in 中 SELECT *FROM `user` WHERE age not in (30,40,43,45) -- 13、like like 称为模糊查询,支持%或下划线匹配,%匹配任意个字符,下划线,一个下划线只匹配一个字符 -- 模糊查询意指定字符开始 SELECT *FROM `user` WHERE `name` like '小%' -- 模糊查询意指定字符结束 SELECT *FROM `user` WHERE `name` like '%小' -- 模糊查询包含指定字符 SELECT *FROM `user` WHERE
3、user 表里面的数据
4、排序数据
排序采用 order by 子句,order by 后面跟上排序字段,排序字段可以放多个,多个采用逗号间隔,order by 默认采用升序,如果存在 where 子句那么 order by 必须放到 where 语句的后面
如果包含 where 语句 order by 必须放到 where 后面,如果没有 where 语句 order by 放到表的后面
例子:
-- 排序 (单字段排序) 年龄倒叙排序(排序默认是正序的) SELECT *FROM `user` ORDER BY age desc -- 排序 (多字段排序) 年龄倒叙排序,分数正排序 SELECT *FROM `user` ORDER BY age desc,grade
5、表达式的优先级
有()先运行括号里面的
-- 表达式的优先级 -- 查询分数大于30,并且classid 是 2 或者 3 -- --查询结果错误(查询的结果:筛选出classid 是对的,但是分数小于30的也会查询出来) SELECT * FROM `user` WHERE grade >30 AND classid =2 OR classid =3 -- --查询结果正确 SELECT * FROM `user` WHERE grade >30 AND (classid =2 OR classid =3) SELECT * FROM `user` WHERE grade >30 AND classid IN(2,3)
6、注
1、因为 null 类型比较特殊,必须使用 is 来比较
7、mysql 在window和linux 大小写问题
MySQL 在 windows 下是不区分大小写的,将 script 文件导入 MySQL 后表名也会自动转化为小写,结果再 想要将数据库导出放到 linux 服
务器中使用时就出错了。因为在 linux 下表名区分大小写而找不到表,查了很多都是说在 linux 下更改 MySQL 的设置使其也不区分大小写,但是
有没有办法反过来让 windows 下大小写敏感呢。其实方法是一样的,相应的更改 windows 中 MySQL 的设置。
具体操作:
在 MySQL 的配置文件 my.ini 中增加一行:
lower_case_table_names = 0
其中 0:区分大小写,1:不区分大小写
MySQL 在 Linux 下数据库名、表名、列名、别名大小写规则是这样的: 1、数据库名与表名是严格区分大小写的; 2、表的别名是严格区分大小写的; 3、列名与列的别名在所有的情况下均是忽略大小写的; 4、变量名也是严格区分大小写的; MySQL 在 Windows 下都不区分大小写