mysql 第三天 高级查询

    1. 高级查询语法概述

一个查询语句的完整形式如下所示:

select 子句

[from 子句]

[where 子句]

[group by子句]

[having子句]

[order by子句]

[limit 子句]

可见,select语句还是比较复杂的——其实是mysql中最复杂的语句。

总体说明:

  1. 以上中括号中的任一项都可以省略,但如果不省略,就应该按该顺序出现。
  2. 通常,from后的子句都需要有from子句, having子句需要有group by子句。
  3. 这些子句的“执行顺序”,也是按此顺序进行的。

mysql 第三天 高级查询_第1张图片

9.2.查询结果数据及select选项
9.2.1.查询“固定数据”
例:
select  1;
select  2,  ‘abc’;
select  3,  now();
9.2.2.select中可以进行计算
例:
select  1 + 2;
select  3+4*5,  6 + round(6.7) ;		#其中round( )为系统函数
9.2.3.查询出的数据字段可以使用别名
例:
select  1  as  d1,  2+3  as  d2;
select  user_name  as un,  user_pass  as pwd  from  users;
9.2.4.使用distinct消除查询结果重复行
重复行的含义:
两行(或两行以上)的数据完全一样。
语法形式:
select  disctinct  字段1, 字段2, ...  from  表名;

9.3.where子句
语法形式:
select  ....  from  表名   where  查询条件;
说明:
1,查询条件,类似php语言中的判断条件,也就是说,where相当于if。
2,查询条件的作用是:针对from子句的表“进行一行一行筛选”,以筛选出符合条件的行。
3,查询条件中,可以使用很多的运算符,包括:算术运算符,比较运算符,逻辑运算符,等等。
示例:
where  id > 10;	//比较运算符
where  age - 18 >= 0;	//算术运算符,比较运算符
where  id < 20  and  age >= 18;	//比较运算符,逻辑运算符
where  year  %  4 = 0  and  year  %  100  !=  0   ||  year  % 400  =  0;
//算术运算符,比较运算符,逻辑运算符

9.4.mysql运算符
9.4.1.算术运算符
+	-	*	/	%
9.4.2.比较运算符:
相等:		=
不相等:	<>  或  !=
大于:		>
大于等于:	>=
小于:		<
小于等于:	<=

9.4.3.逻辑运算符:
逻辑与:	&&  或  and
逻辑或:	||	 或  or
逻辑非:	!	 或  not
9.4.4.其他特殊运算符
like模糊查找运算符:
用于判断某个字符型字段的值是否包含给定的字符。
语法形式: 
xxx字段  like  ‘%关键字%’
其中:%表示“任意个数的任意字符”。
 还可以使用“_”(下杠),表示“任意一个字符”。
where  name  like ‘罗%’		//找出name的第一个字为“罗”的所有
//可以找出:”罗成”,“罗永浩”,“罗纳尔多”,“罗”
//但找不出“c罗纳尔多”这个
where  name  like ‘罗_’	//可以找出:”罗成”,  “罗兰”, 
//但找不出“c罗”,“罗永浩”
极端情况:
where  name  like  “罗”		//其实它只是相当于: name = ‘罗’

如果不使用“%”或“_”,则  like 相当于等于(=)。比如:
xxx字段  like  ‘关键字’   
相当于:
xxx字段  =  ‘关键字’

between范围限定运算符:
用于判断某个字段的值是否在给定的两个数据范围之间。
语法形式:
xxx字段  between  值1  and  值2
其含义相当于: xxx字段  >= 值1  and  xxx字段 <= 值2

in运算符:
用于判断某个字段的值是否在给出的若干个“可选值”范围。
语法形式:
xxx字段  in (值1, 值2, ...... )
其含义是:该字段的值等于所列出的任意一个值,就算满足条件,比如:
籍贯  in (‘北京’,‘山东’,‘河北’, ‘江西’); //则某人籍贯为上述4个之一就ok。

is运算符:
用于判断一个字段中的是“是否存在”(即有没有),只有两个写法,如下所示:
where  content  is  null;			//不能写成: content = null;
where  content  is  not  null;		//不能写成: content != null;

 

你可能感兴趣的:(mysql)