美文网首页
SQL基础学习

SQL基础学习

作者: 兰梦_bhy | 来源:发表于2018-09-14 15:55 被阅读0次

SQL基本规范

  • 多条SQL语句必须以分号(;)分割

      SELECT * FROM table1;
      SELECT * FROM table2;
    
  • SQL语句不区分大小写,但是开发人员对SQL关键词使用大些,表、列名使用小写;

    • 关键词:SELECT、FROM、WHERE、AND 等这些词语
  • SQL语句可以是多行,也可以是一行,建议使用多行,方便阅读

  • SQL注释

    • 单行注释:# 这是一个注释

    • 在某行后面增加注释: -- 这是一个注释

    • 多行注释:

          /*
            这是一个多行注释
          */
      

SQL特殊语法

排序 ORDER BY
  • 按列名称排序

      # 建议使用列名称排序
      SELECT column1, column2 FROM table
      ORDER BY column1,  column2
    
  • 按列序号排序

      SELECT column1, column2 FROM table
      ORDER BY 1,  2 
    
  • 如何按照字母大小写排序??

    • 数据库默认情况下不区分 a/A的顺序,故如果需要按照字母大小写排序需要使用 collate(校对集)
    • 具体排序方法可以参考博客园文章MySQL的order by时区分大小写
         SELECT * FROM table ORDER BY column1 COLLATE utf8_bin;
过滤
  • 介于 a 和 b之间使用 BETWEEN,BETWEEN包含a和b的值

  • 判断是否为空

      SELECT column1, column2 FROM table
      WHERE column3 IS NULL
    
like
  • 普通like语句:

    • ‘x%’: 以x开头

    • ‘%x’: 以x结尾

    • ‘x%y’:以x开头,y结尾

        SELECT column1, column2 FROM table
        WHERE column3 LIKE ‘x%’
      
  • 通配符

    • '[xy]%':以x或者y开头

    • '[^xy]%':不以x或者y开头

         SELECT column1, column2 FROM table
         WHERE column3 LIKE ‘[^xy]%’
      
函数
  • 函数:RTRIM、LTRIM、TRIM、SOUNDEX(发音相似)
  • 聚合函数是否忽略null?
    • AVG、MIN、MAX、SUM 直接忽略
    • COUNT(column1) 忽略
    • COUNT(*) 不忽略
联结

具体 可参考csdn博客

  • INNER JOIN: 数据包含第一个(左边)表和二个(右边)表的集合,不能匹配的数据则丢失;
  • LEFT OUTER JOIN: 数据包含第一个(左边)表,如果第二个(右边)表没有对应记录,则为null;
  • RIHGHT OUTER JOIN: 数据包含第二个(右边)表,如果第一个(左边)表没有对应记录,则为null;
  • UNION: 两表数据合并,去掉重复数据
  • ALL UNION: 两表数据合并,保留重复数据
求值顺序
  • WHERE语句可以包含AND和OR,其中AND的优先级高于OR,如果不合理使用,则会出现顺序错误情况

      SELECT column1, column2 FROM table
      WHERE column1 = ‘a’ or column1 = 'b' and column2 > 'c'
    
  • 以上执行顺序为

    • column1 = 'b' and column2 > 'c'
    • column1 = ‘a’
    • 优先执行and,再执行or

注意

  • HAVING和WHERE的区别
    • WHERE可以使用表中本来就有的字段

    • HAVING只能使用从SELECT筛选过滤的字段

    • HAVING可以使用聚合函数计算过的字段

      # 引用博客园的博客例子:https://www.cnblogs.com/ljf-Sky/p/9024683.html
      SELECT goods_category_id, AVG(good_price) AS ag 
      FROM sw_goods 
      GROUP BY goods_category 
      HAVING ag > 1000
      
      SELECT goods_category_id, AVG(goods_price) AS ag 
      FROM sw_goods 
      WHERE ag > 1000  -- ag 为聚合函数计算字段,WHERE不可以使用
      GROUP BY goods_category(X)报错 
      

相关文章

  • MySQL学习笔记---基础概念和一些基础SQL语句(一)

    MySQL学习笔记---基础概念和一些基础SQL语句(一) 作者:zhangjunqiang MySQL学习笔记,...

  • SQL 学习笔记

    《SQL 基础教程》学习笔记 01 - 数据库和 SQL 02 - 表的创建、删除和更新 03 - 查询基础 04...

  • SQL基础学习

    w3c:http://www.w3school.com.cn/sql/index.asp 书籍:SQL必知必会 S...

  • 数据库(5) | MySQL SQL 语言查询

    SQL语言基础 本章,我们将会重点探讨SQL语言基础,学习用SQL进行数据库的基本数据查询操作。另外请注意本章的S...

  • sql

    sql-基础sql-基础查询-1sql-基础查询-2sql-更新 概览 数据库(Database,DB):将大量数...

  • 知识向量补充WK2

    12月的学习目标:(1)SQL基础(《SQL必知必会》学习与上级实践)和(2)《商务与经济统计》前13章 (1)已...

  • SQL必知必会快速浏览+区间估计F检验

    12月的学习目标:(1)SQL基础(《SQL必知必会》学习与上级实践)和(2)《商务与经济统计》前13章 12/2...

  • SQL实战(一)

    学习完SQL的 基础理论知识,下面开始依照具体的实例来落实SQL的操作。 要求一、分别使用SQL Server M...

  • SQL基础学习笔记

    1 简介 1.1 定义 SQL(结构化查询语言Structured Query Language)是用于访问和操作...

  • MySQL SQL基础学习

    DQL语言学习 一、基础查询 语法: 特点: 查询列表可以是:表中的字段、常量值、表达式(SELECT 100*9...

网友评论

      本文标题:SQL基础学习

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