zoukankan      html  css  js  c++  java
  • MySQL速学篇第三课

    一、UNION ALL

    UNION ALL指令的目的也是将每一笔符合条件的资料都列出来,无论资料有无重复,语法如下:

    [SQL 语句 1]
    UNION ALL
    [SQL 语句 2];

    例句:

    select name, number from s_info 
    union all 
    select name, number from t_info 
    order by number

    二、INTERSECT

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

    INTERSECT则比较像AND(这个值要存在于第一句和第二句才会被选出),前者是并集,后者是交集,INTERSECT语法为

    [SQL语句 1]
    INTERSECT
    [SQL语句 2];

    很遗憾,mysql并不支持INTERSECT和MINUS函数,但是我们可以用 INNER JOIN 来达到目的;

     

    INNER JOIN三张表语法:

    SELECT * FROM (表1 INNER JOIN 表2 on 表1.字段号=表2.字段号 )

    INNER JOIN 表3 on 表1.字段号=表3.字段号

    三、CONCAT

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

    1、MySQL:CONCAT()

    2、Oracle:CONCAT(),||

    3、SQL Server *

    CONCAT()语法如下:

    CONCAT(字串1,字串2,字串3...)

    将字段1,字段2,字段3等串连在一起,请注意,Oracle只允许两个参数,即只能将两个字串串连起来,不过可以用||来串连多个字段;

    来看几个例子。我们要将表t_info中name和number字段结合在一起,用新的字段newname表示

    select concat (name,number) as newname from t_info;

    四、substring

    该函数用语从文本字段中提取字符;

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

    1、MySQL:SUBSTR(),SUBSTRING()

    2、Oracle:SUBSTR()

    3、SQL Server:SUBSTRING()

    最常用到的方式如下 (在这里我们用 SUBSTR( ) 为例):

    SUBSTR (str, pos)

    由 <str> 中,选出所有从第 <pos> 位置开始的字元。请注意,这个语法不适用于 SQL Server 上。

    SUBSTR (str, pos, len)

    由 <str> 中的第 <pos> 位置开始,选出接下去的 <len> 个字元。

    例如:

    查询表t_info中number信息,不显示第一位字符

    select name ,number ,substr(number,2)as num from t_info

    用select name ,number ,substr(number,2,3)as num from t_info也可以达到同样效果

    五、TRIM

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

    • MySQL: TRIM( ), RTRIM( ), LTRIM( )

    • Oracle: RTRIM( ), LTRIM( )

    • SQL Server: RTRIM( ), LTRIM( )

    各种 trim 函数的语法如下:

    TRIM ( [ [位置] [要移除的字串] FROM ] 字串): [位置] 的可能值为 LEADING (起头), TRAILING (结尾), or BOTH (起头及结尾)。 这个函数将把 [要移除的字串] 从字串的起头、结尾,或是起头及结尾移除。如果我们没有列出 [要移除的字串] 是什么的话,那空白就会被移除。

    LTRIM(字串): 将所有字串起头的空白移除。

    RTRIM(字串): 将所有字串结尾的空白移除。

    当录入的number信息存在空格时(如下图红框),有可能是左边,有可能是右边,有可能是中间,我们用trim()可以去掉左右两边的空格(但是不能去除中间的)

    select name,number, trim(number) from t_info

    另注:limit 0,10

    #表示只获取10条数据;

    今天就先讲到这里吧!

  • 相关阅读:
    myeclipse学习总结一(在MyEclipse中设置生成jsp页面时默认编码为utf-8编码)
    使用Android Studio调试UiAutomator过程中遇到的问题
    手游性能之渲染分析2
    手游性能之渲染分析1
    手脱ASProtect v1.23 RC1(有Stolen Code)之以壳解壳
    手脱ASProtect v1.23 RC1(有Stolen Code)
    Java 中extends与implements使用方法
    Java在处理大数据的时候一些小技巧
    Oracle 分页原理
    powerdesigner连接数据库 导出数据
  • 原文地址:https://www.cnblogs.com/cynthia006/p/6925214.html
Copyright © 2011-2022 走看看