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

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

  • 相关阅读:
    HDU 3951 (博弈) Coin Game
    HDU 3863 (博弈) No Gambling
    HDU 3544 (不平等博弈) Alice's Game
    POJ 3225 (线段树 区间更新) Help with Intervals
    POJ 2528 (线段树 离散化) Mayor's posters
    POJ 3468 (线段树 区间增减) A Simple Problem with Integers
    HDU 1698 (线段树 区间更新) Just a Hook
    POJ (线段树) Who Gets the Most Candies?
    POJ 2828 (线段树 单点更新) Buy Tickets
    HDU 2795 (线段树 单点更新) Billboard
  • 原文地址:https://www.cnblogs.com/alidata/p/13448952.html
Copyright © 2011-2022 走看看