除非最终检索它们并利用它们来做点事情,否则将记录放入数据库没什么好处。这就是数据记录查询的用途,即帮助取出数据,也是 Python API 与 MySQL 交互的重要部分。SELECT 大概是 SQL 语言中最常用的语句,而且怎样使用它也最为讲究;用它来选择记录可能相当复杂,可能会涉及许多表中列之间的比较。本节介绍 Select 语句关于查询的最基本功能,并联系 Python 对查询数据的读取。
SELECT 查询
语法:
- SELECT selection_list // 选择哪些列
- FROM table_list // 从何处选择行
- WHERE primary_constraint // 行必须满足什么条件
- GROUP BY grouping_columns // 怎样对结果分组
- HAVING secondary_constraint // 行必须满足的第二条件
- ORDER BY sorting_columns // 怎样对结果排序
- LIMIT count // 结果限定
Tips: 所有使用的关键词必须精确地以上面的顺序给出。例如,一个 HAVING 子句必须跟在 GROUP BY 子句之后和 ORDER BY 子句之前。除了词“SELECT”和说明希望检索什么的 column_list 部分外,语法中的每样东西都 是可选的。有的数据库还需要 FROM 子句。
SQL 语言实例
mysql> SELECT * FROM pet; // 普通查询
mysql> SELECT * FROM pet WHERE name = "Bowser"; // 查询特定行
mysql> SELECT name, birth FROM pet where owner="Gwen"; // 查询特定列
mysql> SELECT death-birth FROM pet WHERE name="Bowser"; // 表达式计算
mysql> SELECT * FROM pet WHERE species = "dog" AND sex = "f"; // 条件查询
mysql> SELECT * FROM pet WHERE (species = "cat" AND sex = "m") // 多重条件
-> OR (species = "dog" AND sex = "f");
mysql> SELECT name, birth FROM pet ORDER BY birth DESC; // 排序输出
mysql>SELECT * FROM pet GROUP BY species; // 分组输出
mysql> SELECT owner, COUNT(*) FROM pet GROUP BY owner; // 分组统计
Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。
- fetchone(): 该方法获取下一个查询结果集。结果