zoukankan      html  css  js  c++  java
  • Sql语句的一些事(一)

    (1)LIMIT子句(MySql)

    ----LIMIT 子句用于规定要返回的记录的数目,一般和Order By一起使用

         经常用于数据的分页查询,但是一旦数据量一大,limit的性能就会急速下降

    格式:select * from table  limit  m,n     其中m代表表的某一行数据,n表示的是要查找的多少行数据,从m+1行数据开始查找

    SELECT * FROM persons LIMIT 5; 查看person表中前5行的数据
    
    SELECT * FROM persons LIMIT 510;查看person表的第6-15条数据
    
    SELECT * FROM persons LIMIT 95-1;查看person表第96-last的所有数据

    (2)between

    ----between语句一般和and或者是not一起使用,会选取介于两个值之间的数据范围,可以是文本,数值或日期

    格式: SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2

    原表:

    IdLastNameFirstNameAddressCity
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York
    3 Carter Thomas Changan Street Beijing
    4 Gates Bill Xuanwumen 10 Beijing
    SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter

     结果集:

    IdLastNameFirstNameAddressCity
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York

     重要事项:不同的数据库对 BETWEEN...AND 操作符的处理方式是有差异的。某些数据库会列出介于 "Adams" 和 "Carter" 之间的人,但不包括 "Adams" 和 "Carter" ;某些数据库会列出介于 "Adams" 和 "Carter" 之间并包括 "Adams" 和 "Carter" 的人;而另一些数据库会列出介于 "Adams" 和 "Carter" 之间的人,包括 "Adams" ,但不包括 "Carter" 。

    (3)Inner join、Left join、Right join和Full join

    ----Inner join和join是一样的,也称为内连接,表示在表中存在至少一个匹配时,返回行数据,和where的使用效果是相同的

    原表:

    "Persons" 表:

    Id_PLastNameFirstNameAddressCity
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York
    3 Carter Thomas Changan Street Beijing

    "Orders" 表:

    Id_OOrderNoId_P
    1 77895 3
    2 44678 3
    3 22456 1
    4 24562 1
    5 34764 65

    当我们想要查找出所有有订单信息的客户时:

    SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
    FROM Persons
    where Person.Id_P = Order.Id_P
    ORDER BY Persons.LastName

    使用内连接时:

    SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
    FROM Persons
    INNER JOIN Orders
    ON Persons.Id_P=Orders.Id_P
    ORDER BY Persons.LastNam

    结果:

    LastNameFirstNameOrderNo
    Adams John 22456
    Adams John 24562
    Carter Thomas 77895
    Carter Thomas 44678

    ----Left Join:左连接的结果是除了匹配条件的数据还包含左边表中的所有数据

         Right Join:右连接的结果是除了匹配条件的数据还包含右边表中的所有数据

         Full Join:只要其中某个表存在匹配,FULL JOIN 关键字就会返回行,就是不管左右两边的表的行内是否存在数据

         这三者统称为外链接

    当我们想要查找所有人的订单情况时:

    SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
    FROM Persons
    LEFT JOIN Orders
    ON Persons.Id_P=Orders.Id_P
    ORDER BY Persons.LastName

    结果:

    LastNameFirstNameOrderNo
    Adams John 22456
    Adams John 24562
    Carter Thomas 77895
    Carter Thomas 44678
    Bush George  

    当我们想要查找所有的订单情况以及订单的客户信息时:

    SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
    FROM Persons
    RIGHT JOIN Orders
    ON Persons.Id_P=Orders.Id_P
    ORDER BY Persons.LastName

    结果:

    LastNameFirstNameOrderNo
    Adams John 22456
    Adams John 24562
    Carter Thomas 77895
    Carter Thomas 44678
        34764

    当我们想要查找所有人包括所有的订单信息情况时;

    SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
    FROM Persons
    FULL JOIN Orders
    ON Persons.Id_P=Orders.Id_P
    ORDER BY Persons.LastName

    结果:

    LastNameFirstNameOrderNo
    Adams John 22456
    Adams John 24562
    Carter Thomas 77895
    Carter Thomas 44678
    Bush George  
        34764
  • 相关阅读:
    一,初次接触html+css需要注意的小问题
    Pycharm如何在控制台输出窗口中使用Python解释器
    Silver Cow Party POJ
    Constructing Roads POJ
    小希的迷宫 HDU
    Wireless Network POJ
    Scanner读取记事本文件内容为空的解决办法
    mysql limit的使用方法
    Can you find it? HDU-2141 (二分查找模版题)
    【2028-07-18】精力是有限的,但智慧是无限的
  • 原文地址:https://www.cnblogs.com/liangyueyuan/p/9683403.html
Copyright © 2011-2022 走看看