查询语句select语法:
SELECT selection_list 选择哪些列
FROM table_list 从何处选择行
WHERE primary_constraint 行必须满足什么条件
GROUP BY grouping_columns 怎样对结果分组
HAVING secondary_constraint 行必须满足的第二条件
ORDER BY sorting_columns 怎样对结果排序
LIMIT count 结果限定

注:命令要大写!where后可匹配如下3种运算符。

表1   算术运算符
运算符
说明
运算符
说明
+
-
*
/

表2   比较运算符
运算符
说明
运算符
说明
<
<=
=
小于
小于或等于
等于
!= 或 <>
>=
>
不等于
大于或等于
大于
表3  逻辑运算符
运算符
说明
NOT或 !
OR 或 ||
AND或 &&
逻辑非
逻辑或
逻辑与

ORDER BY column_name [ASC|DESC] [,…]
其中ASC表示升序,为默认值,DESC为降序。ORDER BY不能按text和p_w_picpath数据类型进行排序。另外,可以根据表达式进行排序。
注意DESC关键词仅适用于紧跟在它之前的列名字

GROUP BY
col_name,…
分组查询,适合与count(*)函数配合使用。简单的说,被分组的列如果有重复的值,只返回靠前的记录,并且返回的记录集是排序的。count(*)记录非null的行数。2者结合使用,结果是被分组的列的值是唯一的,后面有数值显示此值在表中出现过几行。

查询多个表,或者1个表用2次

SELECT pet.name, (TO_DAYS(date) - TO_DAYS(birth))/365 AS age, remark
-> FROM pet, event
-> WHERE pet.name = event.name AND type = "litter";
pet 和 event 2张表。  使用 pet.name和event.name ,表名.列名表示列名。
AS 把已有函数或者列名更换一种表达名称而已。

mysql> SELECT p1.name, p1.sex, p2.name, p2.sex, p1.species
-> FROM pet AS p1, pet AS p2
-> WHERE p1.species = p2.species AND p1.sex = "f" AND p2.sex = "m";
pet一张表。查询匹配的species 和sex。
p1.name ,p1.sex,p2.name等等,都是虚拟一个p1的表和p2的表。
查询用pet AS p1 或者(p2)。

以上就是select的基本用法。如有错误,希望和大家交流。