MySql学习之查询

单表查询 :

查询所有字段
SELECT * FROM <表> ;

查询指定字段:
SELECT 字段1,字段2... FROM <表> ;

查询指定记录:
SELECT 字段1,字段2...
FROM 表名
WHERE 查询条件

查询判断符有:

= 等于
<> 或 != 不等于
< 小于
> 大于
>=大于等于
<=小于等于
BETWEEN 位于两值之间


  • 带IN关键字查询:
    IN操作符用来满足指定范围的条件记录.

SELECT s_ id ,s_name FROM s WHERE s_ id IN (10,11);

查询表s中s_id值为10 或 11 的记录.
IN 前面加 NOT,表示范围之外的值,范围之外的值被返回.


  • 带BETWEEN AND的范围查询:

SELECT s_ id ,s_name FROM s WHERE s_ id BETWEEN 10 AND 20;
包括首尾
查询表s中 s_id 值在10到20之间并且包括10和20的记录;


  • 带LIKE的字符匹配查询
    能和LIKE一起使用的通配符有: “%” 和 “_”

“%” 匹配任意长度的字符,包括零字符
SELECT * FROM s WHERE s_ name LIKE ‘b%’; //查询表s中s_ name为以b开头的记录.
SELECT * FROM s WHERE s_ name LIKE ‘%b’; //查询表s中s_ name为以b结尾的记录.
SELECT * FROM s WHERE s_ name LIKE ‘%b%’; //查询表s中s_ name内存在b的记录.

“_” 一次只能匹配一个字符
SELECT * FROM s WHERE s_ name LIKE ‘b_’; //例如可以匹配到 s_ name 值为 bs、bq、bo…这样的记录
同”%”用法一样,不再一一举例.
BETWEEN END操作符前加NOT,表示范围之外的值,范围之外的值被返回


  • 带AND或 OR的多条件查询
    SELECT查询时,增加限制条件使得查询结果更为精确
    在WHERE子句中使用AND或者OR操作符将多个条件表达式分开.
    AND操作符,只有满足所有查询条件的记录才会被返回
    OR 操作符,只要满足其中一个条件的记录就会被返回

SELECT * FROM s WHERE s_ id = 10 AND s_ name=’huajji’; //返回s_ name 为huaji 并且s_ id为 10记录;

  • 查询结果不重复:
    在查询的字段前加DISTINCT关键字修饰可以去除重复的记录

    SELECT DISTINCT s_ id FROM s;

  • 对查询结果进行排序:

    • 单列排序:

    SELECT * FROM s ORDER BY s_ id; //查询表s全部记录,并按照s_ id升序排序.(默认按升序)

  • 多列排序:
    SELECT * FROM s ORDER BY s_ id,s_ num; //先按s_ id排序,再按s_ num排序
    注 : 多列排序时,首先排序的第一列有相同值,才会对第二列进行排序.如果第一列都是唯一的,将不会对第二列进行排序.
  • 按指定排序方向排序:
    默认情况下按字母升序排序(从A~Z),即以ASC(升序)作为默认排序方式
    通过关键字 DESC 可以实现按字母降序(从Z~A).DESC排序方式只应用到直接位于其前面的字段上.

    SELECT * FROM s ORDER BY s_ id DESC; //按降序排序

  • 多列用不同的顺序排序

    SELECT * FROM s ORDER BY s_ id DESC,s_ num //先按s_ id字段降序排序,再按 s_ num字段升序排序

  • 你可能感兴趣的:(数据库,mysql,select)