查询语句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的基本用法。如有错误,希望和大家交流。