`
还有也许
  • 浏览: 169197 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

SQL学习笔记

阅读更多

学习来源:http://sql.1keydata.com/cn/sql-distinct.php

1、我们需要知道这个表格/栏位内有哪些不同的值,而每个值出现的次数并不重要。

例子:

Store_Information表格

store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999

SELECT DISTINCT store_name FROM Store_Information

结果:

store_name
Los Angeles
San Diego

Boston

2、like的一个用法: like 'A_Z'  它可以用来匹配 ‘ABZ’,‘A2Z’,而‘AKKZ’并不符合,因为她之间有两个字源。

3、order by 也可以这样写 

SELECT store_name, Sales, Date
FROM Store_Information
ORDER BY 2 DESC

其中 2代表 Sales.

4、COUNTDISTINCT 经常被合起来使用,目的是找出表格中有多少笔不同的资料 (至于这些资料实际上是什么并不重要)。

5、SQL的连接总结

假定我们有两张表:

Store_Information 表格

store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
Geography 表格
region_name store_name
East Boston
East New York
West Los Angeles
West San Diego

 

外部连接的语法是依数据库的不同而有所不同的。举例来说,在 Oracle 上,我们会在 WHERE 子句中要选出所有资料的那个表格之后加上一个 "(+)" 来代表说这个表格中的所有资料我们都要。

我们需要知道每一间店的营业额。如果我们用一个普通的连接,我们将会漏失掉 'New York'这个店,因为它并不存在于 Store_Information 这个表格。所以,在这个情况下,我们需要用外部连接来串联这两个表格:

SELECT A1.store_name, SUM(A2.Sales) SALES
FROM Georgraphy A1, Store_Information A2
WHERE A1.store_name = A2.store_name (+)
GROUP BY A1.store_name

 

 结果:

store_name SALES
Boston $700
New York
Los Angeles $1800
San Diego $250

 

6、Union,Union All

Store_Information 表格

store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
Internet Sales 表格
Date Sales
Jan-07-1999 $250
Jan-10-1999 $535
Jan-11-1999 $320
Jan-12-1999 $750

UNION 指令的目的是将两个 SQL 语句的结果合并起来。从这个角度来看, UNIONJOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料。 UNION 的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION这个指令时,我们只会看到不同的资料值 (类似 SELECT DISTINCT)。

例子:

而我们要找出来所有有营业额 (sales) 的日子。要达到这个目的,我们用以下的 SQL 语句:

SELECT Date FROM Store_Information
UNION
SELECT Date FROM Internet_Sales

结果:

Date
Jan-05-1999
Jan-07-1999
Jan-08-1999
Jan-10-1999
Jan-11-1999
Jan-12-1999

UNION ALL 这个指令的目的也是要将两个 SQL 语句的结果合并在一起。 UNION ALLUNION 不同之处在于 UNION ALL 会将每一笔符合条件的资料都列出来,无论资料值有无重复。

而我们要找出有店面营业额以及网络营业额的日子。要达到这个目的,我们用以下的 SQL 语句:

SELECT Date FROM Store_Information
UNION ALL
SELECT Date FROM Internet_Sales

结果:

Date
Jan-05-1999
Jan-07-1999
Jan-08-1999
Jan-08-1999
Jan-07-1999
Jan-10-1999
Jan-11-1999
Jan-12-1999

UNION 指令类似, INTERSECT 也是对两个 SQL 语句所产生的结果做处理的。不同的地方是, UNION 基本上是一个 OR (如果这个值存在于第一句或是第二句,它就会被选出),而 INTERSECT 则比较像 AND ( 这个值要存在于第一句和第二句才会被选出)。 UNION 是联集,而 INTERSECT 是交集。

而我们要找出哪几天有店面交易和网络交易。要达到这个目的,我们用以下的 SQL 语句:

SELECT Date FROM Store_Information
INTERSECT
SELECT Date FROM Internet_Sales

结果:

Date

Jan-07-1999

 

MINUS 指令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果中。如果有的话,那这一笔资料就被去除,而不会在最后的结果中出现。如果第二个 SQL 语句所产生的结果并没有存在于第一个 SQL 语句所产生的结果内,那这笔资料就被抛弃。

例子:

而我们要知道有哪几天是有店面营业额而没有网络营业额的。要达到这个目的,我们用以下的 SQL 语句:

SELECT Date FROM Store_Information
MINUS
SELECT Date FROM Internet_Sales

结果:

Date
Jan-05-1999
Jan-08-1999

 

7、有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:

Geography 表格

region_name store_name
East Boston
East New York
West Los Angeles
West San Diego

 

例子1:

MySQL/Oracle:
SELECT CONCAT(region_name,store_name) FROM Geography
WHERE store_name = 'Boston';

结果

'EastBoston'

例子2:

Oracle:
SELECT region_name || ' ' || store_name FROM Geography
WHERE store_name = 'Boston';

结果

'East Boston'

例子3:

SQL Server:
SELECT region_name + ' ' + store_name FROM Geography
WHERE store_name = 'Boston';

结果

'East Boston' 

8、SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的资料库中不完全一样:

  • MySQL: SUBSTR(), SUBSTRING()
  • Oracle: SUBSTR()
  • SQL Server: SUBSTRING() 
  • 例1:

    SELECT SUBSTR(store_name, 3)
    FROM Geography
    WHERE store_name = 'Los Angeles';

    结果:

    's Angeles'

    例2:

    SELECT SUBSTR(store_name,2,4)
    FROM Geography
    WHERE store_name = 'San Diego';

    结果:

    'an D'

  • 9、SQL 中的 TRIM 函数是用来移除掉一个字串中的字头或字尾。最常见的用途是移除字首或字尾的空白。这个函数在不同的资料库中有不同的名称:

    • MySQL: TRIM(), RTRIM(), LTRIM()
    • Oracle: RTRIM(), LTRIM()
    • SQL Server: RTRIM(), LTRIM() 
    分享到:
    评论
    1 楼 还有也许 2011-08-10  
    取到下表位置:  instr('要截取的值','要匹配的字段')

    相关推荐

      SQL学习笔记(pdf)

      这份"SQL学习笔记"涵盖了SQL的基础概念、语法以及高级特性,是学习数据库管理和数据分析的宝贵资料。 1. **SQL基础** - 数据库概念:了解什么是数据库,它的作用以及数据库管理系统(DBMS)如何工作。 - SQL简介...

      VC++ SQL 学习笔记

      SQL学习笔记可能会包含以下内容: 1. **基本SQL语法**:包括数据插入(INSERT INTO)、查询(SELECT)、更新(UPDATE)、删除(DELETE)等操作,以及如何使用WHERE子句进行条件筛选。 2. **SQL聚合函数**:如COUNT...

      sql学习笔记

      sql练习中易错笔记,order by ,group by,distinct,内连接,外连接等,一些mysql和oracle使用的区别:sql4种连接 两个表中有相同的列,根据共有的列值匹配行 left join左外连接,不管左表是否在右表中有匹配行,都...

      sql学习笔记 常见问题总结

      SQL(Structured Query ...以上只是SQL学习笔记中的部分要点,实际应用中还需要结合具体数据库系统(如MySQL、Oracle、SQL Server等)的特点和最佳实践。通过持续学习和实践,才能真正精通SQL,成为数据管理的高手。

      SQL学习笔记.docx

      "SQL学习笔记" 本文档是关于 SQL 学习笔记的总结,涵盖了 SQL 的基本概念、函数、语法、应用场景等方面。下面是对标题、描述、标签和部分内容的详细解释: SQL 基本概念 SQL(Structured Query Language)是一种...

      高效SQL学习笔记

      《高效SQL学习笔记》 SQL,全称Structured Query Language,即结构化查询语言,是用于管理关系数据库的标准语言。高效地掌握SQL对于任何IT从业者,尤其是数据分析师、数据库管理员和开发人员来说,都是至关重要的...

      JAVA 与 Sql学习笔记

      【JAVA与Sql学习笔记】 在Java编程中,与SQL数据库的交互是不可或缺的一部分。这篇学习笔记主要关注如何在Oracle数据库中使用PL/SQL的FORALL语句进行批量操作,以及如何利用批绑定(Bulk Binding)来提升性能。此外...

      Oracle 10g sql 学习笔记

      Oracle 10g SQL 学习笔记涵盖了Oracle数据库的基础知识,包括版本信息、数据库系统特点、关系型数据库结构、SQL语言、操作环境以及常见的数据库操作。以下是对这些知识点的详细说明: 1. **Oracle 9i基础知识**: ...

      SQL学习笔记+记录sql各种应用

      这份“SQL学习笔记+记录sql各种应用”涵盖了SQL的基础概念、语法以及在实际工作中的多种应用。 一、SQL基础 1. 数据库与表:SQL中的数据库是由一个或多个表组成的集合,表由行和列构成,每一行代表一条记录,每一列...

      Mastering_Oracle_SQL学习笔记

      在深入探讨《Mastering Oracle SQL学习笔记》的内容之前,我们先理解一下这门课程的核心目标:帮助初学者更好地掌握SQL语言中的关键概念和操作,尤其是针对Oracle数据库的特性。这包括了SQL语句的构建、数据筛选、...

      linq to sql 学习笔记

      《LINQ to SQL 学习笔记》 LINQ (Language Integrated Query) 是.NET框架中引入的一项强大技术,它允许开发者使用熟悉的C#或VB.NET语言语法进行数据查询,而无需学习新的查询语言。LINQ to SQL是LINQ的一个特定实现...

      Oracle_SQL学习笔记

      ### Oracle SQL 学习笔记关键知识点详解 #### 一、SQL 并行查询 并行查询是 Oracle 提供的一种提高查询性能的技术,特别是在处理大型数据集时尤其有效。通过利用多处理器或多核 CPU 的能力,并行查询能够显著加快...

      oracle 数据库 SQL学习笔记

      Oracle数据库是全球广泛使用的...总的来说,Oracle数据库SQL学习笔记应该涵盖这些核心领域,并深入探讨每个主题,包括实例、最佳实践和问题解决策略。通过持续学习和实践,你可以成为一名熟练的Oracle数据库专业人员。

      t-sql学习笔记

      t-sql学习笔记,总结的挺好

      SQL学习笔记一

      本篇“SQL学习笔记一”将围绕SQL的基础概念、基本操作以及其在实际工作中的应用展开讨论。 首先,我们要理解SQL的核心功能,包括数据查询、数据插入、数据更新和数据删除,这四大操作构成了SQL的基本语法结构。例如...

      sql学习笔记-轻松掌握sql

      这份“sql学习笔记”涵盖了SQL的基础概念、语法和实用技巧,帮助初学者轻松掌握SQL的核心知识。 一、SQL基础 1. 数据库与表:SQL中的数据库是一个组织数据的集合,由一个或多个表组成。表是由行和列构成的数据结构...

      Spark SQL学习笔记

      ### Spark SQL 学习笔记知识点总结 #### 一、Spark SQL 概述 - **定义**:Spark SQL 是 Apache Spark 的一个模块,用于处理结构化数据。它提供了 DataFrame 和 Dataset API,以及支持 SQL 查询的能力。这些特性...

      PL/SQL学习笔记4

      ### PL/SQL学习笔记4 —— 集合与成员函数 #### 一、PL/SQL 表(索引表) 在PL/SQL中,**索引表**(也称为**PL/SQL表**)是一种非常有用的结构,它类似于数组但具有更多的灵活性。这种表是非持久化的,即它们不会...

    Global site tag (gtag.js) - Google Analytics