• GROUP_CONCAT INSTR函数in和find_in_setNULL与'' ''


    1.GROUP_CONCAT 与wm_concat

    MySQL中函数CONCAT及GROUP_CONCAT 对应oracle中的wm_concat。

    函数语法:

    group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )

    下面举例说明:

    select id,price from goods;  

    这里写图片描述

    以id分组,把price字段的值在同一行打印出来,逗号分隔(默认)

    select id, group_concat(price) from goods group by id;  

    这里写图片描述

    以id分组,把price字段的值在一行打印出来,分号分隔

    select id,group_concat(price separator ';') from goods group by id;  

    这里写图片描述

    以id分组,把去除重复冗余的price字段的值打印在一行,逗号分隔

    select id,group_concat(distinct price) from goods group by id;  

    这里写图片描述

    以id分组,把price字段的值去重打印在一行,逗号分隔,按照price倒序排列

    select id,group_concat(DISTINCT price order by price desc) from goods group by id;  

    这里写图片描述

    2.数据库中,主键和索引的区别

    • 主键一定是唯一性索引,唯一性索引并不一定就是主键。
    • 一个表中可以有多个唯一性索引,但只能有一个主键。
    • 主键列不允许空值,而唯一性索引列允许空值。

    主键、外键和索引的区别?

    主键

    外键

    索引

    定义:

    唯一标识一条记录,不能有重复的,不允许为空

    表的外键是另一表的主键, 外键可以有重复的, 可以是空值

    该字段没有重复值,但可以有一个空值

    作用:

    用来保证数据完整性

    用来和其他表建立联系用的

    是提高查询排序的速度

    个数:

    主键只能有一个

    一个表可以有多个外键

    一个表可以有多个惟一索引

    PRIMARY KEY
    主键约束修饰的列,非空且唯一
    unique 唯一约束是指定表中的列不能重复,保证数据的唯一性。

    3.mysql INSTR函数用法

    mysql 进行模糊查询时,可使用内部函数 instr,替代传统的 like 方式,并且速度更快。

    instr(field, str)  函数,第一个参数 field 是字段,第二个参数 str 是要查询的串,返回串 str 的位置,没找到就是0。

    数据库表如下

    3.1、执行如下sql

    select * from book where   INSTR( book_name , "经" ) > 0

    效果如下

    3.2、执行如下sql

    select instr(book_name, '水')  from book

    效果如下

    返回 ‘水’ 在各个 book_name 中的位置,没有则返回0

    4.Mysql中的in和find_in_set的区别?

    在mysql中in的使用情况如下:

    select * from article where 列名 in(值1,值2,值3.....);
    select * from article where 值1 in(值1,值2,值3.....);

    在mysql中find_in_set的使用情况如下:

    select * from article where find_in_set(值1, '值1,值2,值3.....');
    select * from article where find_in_set(列名, '值1,值2,值3.....');
    select * from article where find_in_set(值1, 列名);

     5.NULL与'' ''

    1.

    NULL:代表声明了制一个空对象,不是一个字符串,可以赋给任何对象。
    空字符:代表声明了一个对象实例,这个对象实例的值是一个长度为0的空字符串。
    2、String s=null; 只是定义了一个句柄,即你有了个引用,但是这个引用未指向任何内存空间。
    String s=”“; 这个引用已经指向了一块是空字符串的内存空间,是一个实际的东东了,所以可以对它操作。
    String s=”a”和String s=new String(“a”);是有本质上的区别的 :
    (1) 前者是在字符串池里写入一个字符’a’,然后用s指向它; 后者是在堆上创建一个内容为”a”的字符串对象。
    (2) String str=”aaa”; //于栈上分配内存 ;String str=new String(“aaa”); //于堆上分配内存

  • 相关阅读:
    函数对象与闭包
    20.03.19作业
    关键字参数,名称空间和作用域
    作业03.18
    函数第二天
    20.03.17作业
    文件
    20.01.16作业
    前端基础
    前端知识(二)
  • 原文地址:https://www.cnblogs.com/aaaazzzz/p/13986212.html
Copyright © 2020-2023  润新知