zoukankan      html  css  js  c++  java
  • SQL 基本语句规范

    文章转载自 微信公众号 数据管道
    摘要

    经常看到一份数据分析岗位的招聘要求:“熟练使用SQL”。那你真的熟练吗?

    最基本的几个问题,SQL是什么?数据库是什么?RDBMS又是什么?什么叫表?

    数据库(Database):按照数据结构来组织、存储和管理数据的仓库。

    RDBMS:(Relational Database Management System)

    关系数据库管理系统,存储和操作关系数据库表中排列的数据的软件。

    SQL:Structured Query Lanuage(结构化查询语言),更详细地说,SQL 是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。

    :按列和行排列的一组数据。列表示存储数据的特征,行表示实际的数据条目。

    目录:

    img

    1、数据库查询语言

    1.1、如何选择多列

    #语法
    SELECT <Column List>
    FROM <Table Name>
    WHERE <Search Condition>
    # 例子
    SELECT FirstName, LastName, OrderDate
    FROM Orders WHERE OrderDate > '10/10/2010'
    

    1.2、如何选择某一列并去重(重点)

    #语法
    SELECT DISTINCT <Column_name>
    FROM <Table Name>
    #例子
    SELECT DISTINCT FirstName 
    FROM Orders
    

    1.3、如何从第一行开始选择一共五行数据?

    #语法
    SELECT <col_name >
    FROM table_name 
    limt 5 offset 1;
    #例子
    SELECT FirstName 
    FROM Orders  
    limt 5 offset 1;
    

    1.4、如何按照指定方向(升、降)排序选择数据?

    #语法
    SELECT co_name1,col_name2 
    FROM table_name 
    ORDER BY col_name1 DESC,col_name2 ASC
    #例子
    SELECT OrderDate,FirstName
    FROM Orders 
    ORDER BY OrderDate DESC
    

    1.5、常见的一些过滤选择有哪些。(重点)

    #范围内检查
    SELECT col_name 
    FROM table_name 
    WHERE col_name BETEWEEN 5 AND 10;
    # >= and <=
    #空值检查
    SELECT col_name 
    FROM table_name 
    WHERE col_name IS null;
    # in操作符
    SELECT col_name 
    FROM table_name 
    WHERE col_name IN (....);
    # NOT操作符
    SELECT col_name 
    FROM table_name 
    WHERE NOT (条件);
    #AND 和 OR 注意优先级 and 优先级高于or
    SELECT col_name 
    FROM table_name 
    WHERE (condi_1 OR condi_2) AND condi_3;
    #第五部分使用通配符进行过滤
    SELECT col_name 
    FROM table_name 
    WHERE col_name like '..%..';
    SELECT col_name 
    FROM table_name 
    WHERE col_name like '.._..';
    SELECT col_name 
    FROM table_name 
    WHERE col_name like '[]%';
    

    1.5、如何分组并按条件选择数据?(重点)

    #语法
    SELECT <Column List>, <Aggregate Function>(<Column Name>)
    FROM <Table Name>
    WHERE <Search Condition>
    GROUP BY <Column List>2
    #例子
    SELECT LastName, SUM(OrderValue)
    FROM Orders
    WHERE OrderDate > '10/10/2010'
    GROUP BY LastName3
    /*注意点: GROUP BY 后面也可以接条件。
    WHERE 语句和HAVING配合的使用。
    WHERE在HAVING之前。
    WHERE 过滤针对的是行,HAVING过滤针对的是组。
    */
    

    1.6、分组和排序的顺序是什么?(重点)

    /*SELECT FROM WHERE GROUP BY HAVING ORDER BY*/
    SELECT  col_name 
    FROM table_name
    WHERE <condition_1>
    GROUP BY <col_name>
    HAVING <condition_2>
    ORDER BY <col_name>
    

    1.7、如何使用子查询?(重点)

    SELECT col_name 
    FROM table_name 
    WHERE  col_name  = (
        SELECT  col_name  
        FROM table_name 
        WHERE .... );
    

    1.8、表的联结查询怎么做(非常重点!!!!一定要会!)

    #语法
    SELECT <Column List>
    FROM <Table1> JOIN <Table2>
    ON <Table1>.<Column1> = <Table2>.<Column1>、
    #例子
    SELECT Orders.LastName, Countries.CountryName
    FROM Orders INNER JOIN Countries ON
    Orders.CountryID = Countries.ID
    #除此之外还有左联结 LEFT JOIN右联结 RIGHT JOIN全联结 FULL JOIN
    

    1.9、如何使用联合查询

    #语法
    SELECT <Column List> 
    FROM <Table1>
    UNION
    SELECT <Column List> 
    FROM <Table2>
    #例子
    SELECT <Column List> 
    FROM <Table1>
    UNION
    SELECT <Column List> 
    FROM <Table2>
    

    **
    **

    2数据库操作语言

    2.1 INSERT(插入)

    #语法
    INSERT INTO <Table Name>(<Column List>) 
    VALUES (<Values>)
    #例子
    INSERT INTO Orders(FirstName, LastName, OrderDate) 
    VALUES('John', 'Smith', '10/10/2010')
    

    2.2 UPDATE(更新)

    #语法
    UPDATE <Table Name>
    SET <Column1> = <Value1>, <Column2> = <Value2>, …WHERE <Search Condition>
    #例子
    UPDATE Orders
    SET FirstName = 'John', LastName = 'Who' 
    WHERE LastName='Wo'
    

    2.3 DELETE(删除)

    #语法
    DELETE FROM <Table Name>
    WHERE <Search Condition>
    #例子
    DELETE FROM Orders
    WHERE OrderDate <'10/10/2010'
    

    3、数据库定义语言

    **
    **

    3.1、CREATE (创建表)

    # 语法
    CREATE TABLE <Table Name>( 
        Column1 DataType, Column2 DataType, Column3 DataType
    )  
    # 例子 
    CREATE TABLE Orders( 
        FirstName CHAR(100), LastName CHAR(100), OrderDate DATE
    )
    

    3.2、ALTER(更改表)

    #语法
    ALTER TABLE <Table Name>
    ADD col_name Datatype;
    ALTER TABLE <Table Name>
    DROP COLUMN <col_name> 
    # 例子
    ALTER TABLE Vendors 
    ADD vend_phone CHAR(20); 
    ALTER TABLE Vendors 
    DROP COLUMN vend_phone; 
    

    3.3 DROP (删除表)

    #语法
    DROP TABLE table_name;
    #例子
    DROP TABLE CustCopy; 
    

    4、数据库控制语言

    4.1 GRANT

    4.2 REVOKE

    本部分展开太细,不做介绍,做为数据分析师需要重点掌握查询语句!

  • 相关阅读:
    解决安装mysql时出现的三种问题
    解决fences2.01在win8.1的状态下无法移动桌面图标问题
    利用Xshell5从本机上向Linux(虚拟机中)上传文件
    PHP加密解密函数(带有效期,过了有效期也解不了)
    js检查身份证号是否正确
    JS中事件绑定函数,事件捕获,事件冒泡
    js获取元素宽高、位置相关知识汇总
    JS中让新手倍感震惊、违反直觉、出乎意料、的一些知识点汇总记录
    Hbuilder工具使用
    HTML、CSS、JS中常用的东西在IE中兼容问题汇总
  • 原文地址:https://www.cnblogs.com/alidata/p/13448952.html
Copyright © 2011-2022 走看看