美文网首页我爱编程
SQL系统学习SELECT语法

SQL系统学习SELECT语法

作者: 沧州宁少 | 来源:发表于2018-04-07 18:44 被阅读0次

    SQL系统学习

    • SELECT数据查询操作(检索一列SELECT name from table)

      • 在一个表中查询某个字段 SELECT name from table。这个查询语句可以输出表中为name字段的所有值
      • 多条SQL语句使用;分割开。可以同时查询多条
      • 对关键字使用大写,对列和表使用小写
      • 处于SQL时候不区分空格。所有的空格都可以被忽略,SQL可以写成一行,当然也可以写成多行。作用是一样的
    • SELECT检索多列(SELECT name,age from table)

      • 检索多列,要使用,分割,最后一列不需要使用,分割。
      • SQL语句返回的是原始的数据,无格式的数据。数据的格式是表示问题,而不是检索问题。
    • SELECT 检索出所有列(SELECT * FROM table)

      • 检索出所有列,但是如果明确字段名的情况下,尽量不要这么使用。直接使用列名,因为这样会降低检索和应用程序的性能。
      • 直接使用通配符的情况,可以检索出未知列。
    • SELECT DISTINCT age FROM table 检索不同的值

      • 但是需要注意,关键字作用于所有的列。不仅仅是跟在关键字后面的那一列。
    • 对SELECT 返回的数据的数量进行限制,不同的DBMS不同,我们记下使用最多的MySQL,

      • SELECT name FROM table LIMIT 5 限制查询不超过5条数据
      • SELECT name FROM table LIMIT 5 OFFSET 5 OFFSET限制从第六条开始查询(OFFSET 就是前面的都pass),查询不超过5条数据
      • MySQL 支持简化的写法 LIMIT 3,4 ,后面是限制的数量。逗号前面是偏移量
    • SELECT name FROM table ORDER_BY age 需要注意ORDER_BY必须是最后一条子句。

    • SELECT name,age FROM table ORDER_BY age,name 需求是不只是按照一个列进行排序。此时排序是顺序的,如果前面能拍排出结果,则后面的字段不会加入排序。

    • SELECT name,age FROM table ORDER_BY 2,3 按照相对列的位置进行排序。

    • DESC指定排序方式,默认是升序排序。但是如果需要降序排序的话,需要手动指明。

      • SELECT name,age FROM table ORDER_BY age DESC,name
      • 默认都是升序,如果想让其他列也降序需要显示指明。SELECT name,age FROM table ORDER_BY age DESC,name DESC
    • 过滤数据使用WHERE。

      • SELECT name,age FROM table WHERE name = 'david'
      • SELECT name,age FROM table WHERE name = 'david' ORDER_BY age DESC 过滤语法,ORDER_BY也需要位于最后
      • 子句操作符,> <=,!=等 SELECT name,age FROM table WHERE age>=18
      • 范围检查。 SELECT name,age FROM table WHERE age BETWEEN 10 AND 15。无论什么子句,只有是约束条件限制,肯定要加上WHERE.
      • 是否为空值检查。SELECT name,age FROM table WHERE age IS NULL。
    • 高级过滤。同时满足多个条件的过滤。

      • SELECT name,age FROM table WHERE age>10 AND name=='david',AND关键字必须条件都满足才可以返回数据
      • OR关键字,当第一个条件满足时,不管第二个满不满足都会返回。SELECT name,age FROM table WhERE age>10 OR name == 'david'
      • 在And 和 OR都存在的SQL尽量使用括号来消除歧义。And的优先级高于OR. SELECT prod_name,prod_price FROM Products WHERE (vend_id= 'DLL01' OR vend_id = 'BRSO1') AND prod_price>10
      • IN关键字,作用等同于OR,如果第一个条件满足,不会去匹配第二个条件。SELECT name,price FROM products WHERE id in ('DLL01','BRS01') ORDER BY name。等价于SELECT name,price FROM products WHERE id = 'DLL01' OR id = 'BRS01' ORDER BY name;
        • IN有以下好处
        • 查询速度更快
        • 可以包含其他的SELECT语句。
        • 更清楚直观,容易管理。
      • NOT关键字。否定后面的行为,简单的SQL语句等价于!= 或者<>。但是在一些复杂的语句,它的优势可以得以体现。在与IN联合使用的时候,NOT可以非常简单的找出与条件列表不匹配的行。

    相关文章

      网友评论

        本文标题:SQL系统学习SELECT语法

        本文链接:https://www.haomeiwen.com/subject/ovnyhftx.html