SQL SELECT

例表:

tbl
idusernamepasswordage
1wanghao12345618
2xiaoming12345620

SELECT

执行 SELECT 查询语句可以从数据库中选取数据。选取的结果被存储在一个结果表中,称为结果集。

					
/*
 * 选取 table_name 表中所有记录。
 */
SELECT * FROM table_name;

/*
 * 从 table_name 表中选取 column_name 列。
 */
SELECT column_name,column_name
FROM table_name;
					
				

SELECT DISTINCT

在表中,一列可能会包含多个重复值,有时需要选取列中不同的值,也就是重复项只选取一次。DISTINCT 关键字用于返回唯一不同的值。(distinct [dɪˈstɪŋkt] 不同的)

					
SELECT DISTINCT column_name,column_name
FROM table_name;
					
				

WHERE 条件选取

WHERE 子句用于选取那些满足指定条件的记录。

					
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
					
				
					
/*
 * 文本字段(字符串)使用单引号或者双引号。
 */
$conn = ...
$username = $_POST['username'];
$sql = "SELECT * FROM tbl WHERE `username`='wanghao'";
$result = mysqli_query($conn, $sql) or die("选取数据失败" . mysqli_error($conn);
var_dump($result->num_rows);

//查无此人
$sql = "SELECT * FROM tbl WHERE `username`='lili'";
$result = mysqli_query($conn, $sql) or die("选取数据失败" . mysqli_error($conn);
var_dump($result->num_rows);

var_dump($result->num_rows);

if($result->num_rows) {
  echo "查无此人";
}

/*
 * 数值字段(数字)不使用任何引号。
 */
$age = $_POST['age'];
$sql = "SELECT * FROM tbl WHERE age=20";
					
				

输出:

					
object(mysqli_result)#2 (5) {
  ["current_field"]=>         //当前字段
  int(0)                  
  ["field_count"]=>           //总字段数
  int(4)
  ["lengths"]=>               //长度
  NULL
  ["num_rows"]=>              //查询获得行数
  int(1)
  ["type"]=>                  //类型
  int(0)
}

object(mysqli_result)#2 (5) {
  ["current_field"]=>         //当前字段
  int(0)                      
  ["field_count"]=>           //总字段数
  int(4)
  ["lengths"]=>               //长度
  NULL
  ["num_rows"]=>              //查询获得行数(0 表示 查无此人)
  int(0)
  ["type"]=>                  //类型
  int(0)
}
					
				

WHERE 子句运算符

WHERE 子句运算符
运算符说明
=等于。
<>不等于。!=
<小于。
>大于。
<=小于等于。
>=大于等于。
BETWEEN在某个范围内。
LIKE搜索某种模式。
IN指定针对某个列的多个可能值。

AND & OR

AND & OR 运算符用于筛选出满足多个条件的记录:

可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式)。

					
<?php
  $username = $_POST['username'];
  $password = $_POST['password'];
  $sql = "SELECT * FROM kehu WHERE username='$username' AND password='$password'";
  $result = mysqli_query($conn, $sql);
 ?>
					
				

SELECT TOP, LIMIT, ROWNUM 子句

SELECT TOP 子句用于规定要返回的记录的数目。对于拥有数千条记录的大型表来说,是非常有用的。

注意:并非所有的数据库系统都支持 SELECT TOP 语句。 MySQL 支持 LIMIT 语句来选取指定的条数数据,Oracle 可以使用 ROWNUM 来指定。

					
/*
 * SQL Server / MS Access 语法
 */
SELECT TOP number|percent column_name(s)
FROM table_name;

//前5行:
SELECT TOP 5 * FROM table_name;
//后5行:
SELECT TOP 5 * FROM table_name ORDER BY id desc;

/*
 * MySQL 语法
 */
SELECT column_name(s)
FROM table_name
LIMIT number;

/*
 * 选出 客户表 中的头2个 客户记录:
 */
SELECT *
FROM 客户
LIMIT 2;