精华内容
下载资源
问答
  • 由于在编写php文件时,每次访问数据库都必须创建数据连接和打开数据库,这样每次都需要重复编写...压缩包包括两个php函数(con_tool.php),一个简单php访问数据库调用函数示例(example.php)以及详细的程序讲解(text)
  • 数据库之MySQL自定义函数

    千次阅读 2020-04-27 09:42:52
    以上只是定义了一个简单函数,有时在函数中我们可能需要做一些稍微复杂的事情,就需要用到变量赋值和流程控制等语句。 变量赋值 在自定义函数两种方式可以给变量赋值,分别使用set和select into关键词,其...

    本篇文章介绍MySQL中的自定义函数,文章部分内容由笔者看其他大牛博客总结而来,仅做笔记。

    本篇文章举的所有例子都对应于city关系,city关系部分数据如下:·

    city关系

    MySQL除了数据库内置的函数之外还可以自定义函数,自定义的函数包含一系列SQL语句,除了SQL语句还可以在函数体中使用类似通用程序语言中的某些关键字的关键字来声明变量或流程控制。

    自定义函数语法如下:

    DELIMITER 自定义语句结束符
    CREATE FUNCTION 函数名[(参数列表)]
    RETURNS 数据类型
    BEGIN
        [DECLARE 参数列表;]
        [SQL语句;]
        RETURN 返回值;
    END 自定义语句结束符
    DELIMITER ;

    其中delimiter用来定义结束标识符,在MySQL中默认是以分号作为语句结束符,但在函数内部也会用到分号,因此会冲突,这样定义一个语句结束符,在END后使用就表示整个函数是一体。在函数结束后再使用delimiter重新定义分号为结束标识符。

    自定义函数可以无参,也可以定义多个参数,参数的格式与在定义关系时属性的格式类似,例如:

    CREATE FUNCTION findProvinceIdByCity(cityId INT(10),province_id VARCHAR(20))

    函数体必须放在bigin和end关键字之间。

    declare是定义变量的关键字,定义变量语句必须在函数体的第一行,作用域是整个函数体,其基本格式为:

    DECLARE 变量1[,变量2,...变量n] 变量类型 [DEFAULT 默认值];

    return用来返回一个返回值,这里的一个一般是指某个值或者关系中某一行数据中的某个属性,且类型必须与returns定义的一致。我们可以把函数类比成一个有返回值且类型为基本类型的方法,在这个方法中,return语句必须存在且返回一个与返回值类型相同的值(null除外)。

    例如我们要定义一个城市id作为参数,返回值为此城市所在省份的id的函数,其语句如下:

    DELIMITER **
    CREATE FUNCTION findProvinceIdByCityId(cityId INT(10))
    RETURNS VARCHAR(20)
    BEGIN
    	DECLARE provinceId VARCHAR(20);
    	SELECT province_id
    	INTO provinceId 
    	FROM city
    	WHERE city_id = cityId;
    	RETURN provinceId;
    END **
    DELIMITER;

    定义函数的目的是使用它,使用自定义函数的形式与数据库内置函数类似:

    SELECT 函数名[(参数列表)];

    例如调用上面定义的findProcinceIdByCityId函数查询城市id为130201的城市所在的省份id:

    SELECT findProvinceIdByCityId(130201) AS 省份id;

    以上只是定义了一个简单的函数,有时在函数中我们可能需要做一些稍微复杂的事情,就需要用到变量赋值和流程控制等语句。

    变量赋值

    在自定义函数中有两种方式可以给变量赋值,分别使用set和select into关键词,其使用形式如下:

    DECLARE num INT(10);
    SET num = 10;
    
    SELECT count(*) FROM city INTO num;

    if语句

    函数中也可以使用if语句,作用与通用程序语言相同,格式略有差别。

    IF 条件判断语句 THEN 执行语句;
    [ELSEIF 条件判断语句 THEN 执行语句;]
    [ELSE 执行语句;]
    END IF;
    

    例如根据city_id判断该城市是否为直辖市,是则返回'是',否则返回'否',使用if语句判断的函数体可以这样写:

    DECLARE flag VARCHAR(10);
    DECLARE provinceId VARCHAR(20);
    SELECT province_id
    FROM city
    WHERE city_id = cityId
    INTO provinceId;
    IF(provinceId = 110000) THEN SET flag = '是';
    ELSEIF(provinceId = 120000) THEN SET flag = '是';
    ELSEIF(provinceId = 310000) THEN SET flag = '是';
    ELSEIF(provinceId = 500000) THEN SET flag = '是';
    ELSE SET flag = '否';
    END IF;
    RETURN flag;

    case语句

    函数中的case语句与通用程序语言中的switch case语句类似,但有两种形式,第一种形式如下:

    CASE 变量
    WHEN 值1 THEN 执行语句;
    [WHEN 值2 THEN 执行语句;]
    [ELSE 执行语句;]
    END CASE;

    用case替代上面的If语句如下:

    CASE provinceId 
    WHEN 110000 THEN SET flag = '是';
    WHEN 120000 THEN SET flag = '是';
    WHEN 310000 THEN SET flag = '是';
    WHEN 500000 THEN SET flag = '是';
    ELSE SET flag = '否';
    END CASE;

    case语句的第二种形式如下:

    CASE
    WHEN 条件判断语句 THEN 执行语句;
    [WHEN 条件判断语句 THEN 执行语句;]
    [ELSE 执行语句;]
    END CASE;

    也可以使用这种形式的case语句达到前面判断的效果,语句如下:

    CASE
    WHEN provinceId = 110000 THEN SET flag = '是';
    WHEN provinceId = 120000 THEN SET flag = '是';
    WHEN provinceId = 310000 THEN SET flag = '是';
    WHEN provinceId = 500000 THEN SET flag = '是';
    ELSE SET flag = '否';
    END CASE;

    while语句

    while语句是条件控制循环语句,判断满足条件时继续执行循环语句,其基本形式如下:

    [lable:]WHILE 条件判断语句 DO
    循环语句
    END WHILE [lable];

    其中lable是循环开始和结束的标志,前后必须相同,可以省略。以下使用while语句实现的一个没什么实际意义的函数:

    DELIMITER //
    CREATE FUNCTION whileTest(num INT(10))
    RETURNS INT(10)
    BEGIN
        DECLARE count INT(10) DEFAULT 0;
        WHILE(count < num) DO
            SET count = count + 1;
        END WHILE;
        RETURN count;
    END //

    repeat语句

    repeat语句也是条件控制循环语句,但与while语句不同的是,repeat语句在满足条件时循环结束。其基本形式如下:

    [lable:]REPEAT
    循环语句
    UNTIL 条件判断语句
    END REPEAT [lable];

    以下是使用repeat语句实现的与上面while语句作用相同的函数:

    DELIMITER //
    CREATE FUNCTION repeatTest(num INT(10))
    RETURNS INT(10)
    BEGIN
        DECLARE count INT(10) DEFAULT 0;
        REPEAT
        SET count = count + 1;
        UNTIL count = num
        END REPEAT;
        RETURN count;
    END //

    loop语句

    loop语句是循环语句,与while语句和repeat语句最大的不同是没有条件控制,换句话说就是没有结束循环的功能。其基本形式如下:

    [lable:]LOOP
    循环语句
    END LOOP [lable];

    以下是一个使用loop语句的死循环:

    flag:LOOP
    SET count = count + 1;
    END LOOP flag;

    leave语句

    leave语句用来跳出循环语句,类似于Java中的break关键字。其基本形式如下:

    LEAVE lable;

    leave语句可以和loop语句、while语句与repeat语句一起使用,在介绍loop语句时没有结束循环的作用,我们现在使用leave语句完成与repeat语句例子中的函数同样的功能:

    DELIMITER //
    CREATE FUNCTION loopAndLeaveTest(num INT(10))
    RETURNS INT(10)
    BEGIN
        DECLARE count INT(10) DEFAULT 0;
        flag:LOOP
        SET count = count + 1;
        IF count = num THEN LEAVE flag;
        END IF;
        END LOOP flag;
        RETURN count;
    END //

    需要注意if语句、case语句和这几个循环语句都需要用end来结束,笔者在写上面这个函数的时候忘了写“END IF”导致报错。

    iterate语句

    iterate语句用来跳出本次循环,进入下一次循环,类似于Java语言中的continue关键字。其基本使用形式如下:

    ITERATE lable;

    使用iterate语句实现以下函数,此函数功能是返回入参的一半,如果是奇数就返回其-1之后的一半:

    DELIMITER //
    CREATE FUNCTION iterateTest(num INT(10))
    RETURNS INT(10)
    BEGIN
        DECLARE count INT(10) DEFAULT 0;
        WHILE num > 0 DO
        IF MOD(num,2) = 0 THEN SET count = count + 1;
        END IF;
        SET num = num - 1;
        END WHILE;
        RETURN count;
    END //

    查看函数列表

    查看函数列表的SQL语句如下:

    SHOW FUNCTION STATUS;

    查看函数定义

    查看函数定义的SQL语句如下:

    SHOW CREATE FUNCTION 函数名;

    删除函数

    删除函数的SQL语句如下:

    DROP FUNCTION 函数名;

     

    展开全文
  • 数据库 存储过程和函数

    千次阅读 2018-04-15 12:55:24
    存储过程和函数是在数据库中定义一些 SQL 语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的 SQL 语句。存储过程和函数可以避免开发人员重复的编写相同的 SQL 语句。而且,存储过程和函数是在 MySQL...

    存储过程和函数的引入

    存储过程和函数是在数据库中定义一些 SQL 语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的 SQL 语句。存储过程和函数可以避免开发人员重复的编写相同的 SQL 语句。而且,存储过程和函数是在 MySQL服务器中存储和执行的,可以减少客户端和服务器端的数据传输;

    创建存储过程和函数

    1,创建存储过程

    CREATE PROCEDURE sp_name([proc_parameter[,…]])
    [characteristic…] routine_body
    sp_name 参数是存储过程的名称;
    proc_parameter 表示存储过程的参数列表;
    characteristic 参数指定存储过程的特性;
    routine_body 参数是 SQL 代码的内容,可以用 BEGIN…END 来标志 SQL 代码的开始和结束。
    proc_parameter 中的每个参数由 3 部分组成。这 3 部分分别是输入输出类型、参数名称和参数类型。
    [ IN | OUT | INOUT ] param_name type
    其中,IN 表示输入参数;OUT 表示输出参数;INOUT 表示既可以是输入,也可以是输出;param_name 参数是存储过程的参数名称;type 参数指定存储过程的参数类型,该类型可以是 MySQL 数据库的任意数据类型;
    Characteristic 参数有多个取值。其取值说明如下:
    LANGUAGE SQL:说明 routine_body 部分是由 SQL 语言的语句组成,这也是数据库系统默认的语言。
    [ NOT ] DETERMINISTIC :指明存储过程的执行结果是否是确定的。DETERMINISTIC 表示结果是确定的。每
    次执行存储过程时,相同的输入会得到相同的输出。NOT DETERMINISTIC 表示结果是非确定的,相同的输入可能得到不同的输出。默认情况下,结果是非确定的。
    { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } :指明子程序使用 SQL 语句的限制;
    CONTAINS SQL 表示子程序包含 SQL 语句,但不包含读或写数据的语句;NO SQL 表示子程序中不包含 SQL
    语句;READS SQL DATA 表示子程序中包含读数据的语句;MODIFIES SQL DATA 表示子程序中包含写数据的语句。
    默认情况下,系统会指定为 CONTAINS SQL;
    SQL SECURITY { DEFINER | INVOKER };指明谁有权限来执行。
    DEFINER 表示只有定义者自己才能够执行;
    INVOKER 表示调用者可以执行。默认情况下,系统指定的权限是 DEFINER。
    COMMENT ‘string’ :注释信息;

    2,创建存储函数

    CREATE FUNCTION sp_name ( [func_parameter[,…]] )
    RETURNS type
    [ characteristic… ] routine_body
    sp_name 参数是存储函数的名称;func_parameter 表示存储函数的参数列表;RETURNS type 指定返回值的类型;characteristic 参数指定存储过程的特性,该参数的取值与存储过程中的取值是一样的;routine_body 参数是 SQL 代码的内容,可以用 BEGIN…END 来标志 SQL 代码的开始和结束;func_parameter 可以由多个参数组成,其中每个参数由参数名称和参数类型组成,其形式如下:param_name type 其中,param_name 参数是存储函数的参数名称;type 参数指定存储函数的参数类型,该类型可以是 MySQL 数据库的任意数据类型;

    3,变量的使用

    3.1 定义变量
    DECLARE var_name [,…] type [ DEFAULT value ]
    3.2 为变量赋值
    SET var_name = expr [,var_name=expr] …
    SELECT col_name[,…] INTO var_name[,…]
    FROM table_name WHERE condition

    4,游标的使用

    查询语句可能查询出多条记录,在存储过程和函数中使用游标来逐条读取查询结果集中的记录。游标的使用包括声明游标、打开游标、使用游标和关闭游标。游标必须声明在处理程序之前,并且声明在变量和条件之后。
    4.1 声明游标
    DECLARE cursor_name CURSOR FOR select_statement ;
    4.2 打开游标
    OPEN cursor_name;
    4.3 使用游标
    FETCH cursor_name INTO var_name [,var_name … ];
    4.4 关闭游标
    CLOSE cursor_name;

    5,流程控制的使用

    存储过程和函数中可以使用流程控制来控制语句的执行。MySQL 中可以使用 IF 语句、CASE 语句、LOOP语句、LEAVE 语句、ITERATE 语句、REPEAT 语句和WHILE 语句来进行流程控制。
    5.1 IF语句
    IF search_condition THEN statement_list
    [ ELSEIF search_condition THEN statement_list ]…
    [ ELSE statement_list ]
    END IF

    5.2 CASE语句
    CASE case_value
    WHEN when_value THEN statement_list
    [WHEN when_value THEN statement_list]…
    [ELSE statement_list ]
    END CASE

    5.3 LOOP,LEAVE 语句
    LOOP 语句可以使某些特定的语句重复执行,实现一个简单的循环。但是 LOOP 语句本身没有停止循环的语句,必须是遇到 LEAVE 语句等才能停止循环。LOOP 语句的语法的基本形式如下:
    [begin_label:]LOOP
    Statement_list
    END LOOP [ end_label ]
    LEAVE 语句主要用于跳出循环控制。语法形式如下:
    LEAVE labe

    5.4 ITERATE 语句
    ITERATE 语句也是用来跳出循环的语句。但是,ITERATE 语句是跳出本次循环,然后直接进入下一次循环。基本语法:
    ITERATE label ;

    5.5 REPEAT 语句
    REPEAT 语句是有条件控制的循环语句。当满足特定条件时,就会跳出循环语句。REPEAT 语句的基本语法形式如下:
    [ begin_label : ] REPEAT
    Statement_list
    UNTIL search_condition
    END REPEAT [ end_label ]

    5.6 WHILE语句
    [ begin_label : ] WHILE search_condition DO
    Statement_list
    END WHILE [ end_label ]

    展开全文
  • 常用的数据库函数

    千次阅读 2018-07-10 14:07:01
    很多人知道ISNULL函数,但是很少人知道Coalesce函数,人们会无意中使用到Coalesce函数,并且发现它比ISNULL更加强大,其实到目前为止,这个函数的确非常有用。返回其参数中第一个非空表达式 语法: COALESCE ( ...

    1.COALESCE();

    很多人知道ISNULL函数,但是很少人知道Coalesce函数,人们会无意中使用到Coalesce函数,并且发现它比ISNULL更加强大,其实到目前为止,这个函数的确非常有用。

    返回其参数中第一个非空表达式 

    语法: 

    COALESCE ( expression [ ,...n ] ) 
    
    如果所有参数均为 NULL,则 COALESCE 返回 NULL。至少应有一个 Null 值为 NULL 类型。尽管 ISNULL 等同于 COALESCE,但它们的行为是不同的。包含具有非空参数的 ISNULL 的表达式将视为 NOT NULL,而包含具有非空参数的 COALESCE 的表达式将视为 NULL
    
    
    下面我们来看一个例子:
    
    
    
    

    SELECT COALESCE(NULL,NULL,NOW()) TIME;

    结果如下:

    第一第二个值都为null,则返回第三个不为null的值返回当前时间;

    2.DECODE();

    用法1: 
    decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

    该函数的含义如下:
    IF 条件=值1 THEN
        RETURN(翻译值1)
    ELSIF 条件=值2 THEN
        RETURN(翻译值2)
        ......
    ELSIF 条件=值n THEN
        RETURN(翻译值n)
    ELSE
        RETURN(缺省值)
    END IF


    用法2:

    decode(字段或字段的运算,值1,值2,值3)

           这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
     当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多

    其实它的用法和case when then else end 有点像,但是语法更简洁;


    下面再给大家举个例子:

    person表中有如下数据:


    SQL:

    SELECT NAME,DECODE(sex,1,"男",2,"女","太监") FROM person;
    结果想必就不用我说了吧。
    有一点需要大家注意的是MySQL的docode函数用法和oracle有所不同,这里就不一一赘述了...


    3.SUBSTRING();

    SUBSTRING ( expression, start, length ) 

    参数 
    expression 
    字符串、二进制字符串、文本、图像、列或包含列的表达式。请勿使用包含聚合函数的表达式。 

    start 
    整数或可以隐式转换为 int 的表达式,指定子字符串的开始位置,索引是从1开始。 

    length 
    整数或可以隐式转换为 int 的表达式,指定子字符串的长度。经测试,暂且发现只能是非负数。

    返回值

    1.如果 expression 是一种支持的二进制数据类型,则返回二进制数据,这种情况我们暂且不讨论。
    2.如果 expression 是一种支持的字符数据类型,则返回字符数据。

    (1)如果 start的索引是从1开始,则从表达式的第一个字符开始进行字符串截取,从2开始就从表达式的第二个字符开始截取,以此类推。

    例如:

     select SUBSTRING('abcde',1,2) 返回结果 ab

     select SUBSTRING('abcde',2,3) 返回结果 bcd

     select SUBSTRING('abcde',1,0) 返回结果为空

     select SUBSTRING('abcde',0,8) 返回结果为abcde,注意后面没有空格了。

    (2) 如果start的索引是从小于1(0或负数)开始,则返回长度等于从1开始,截取长度为 length - ((start - 1)的绝对值), 如果这个差为负数就返回空

    画个图理解这种情况(比如SUBSTRING('abcde',0,2)返回a):

    坐标:0       1         2     3     4    5
    内容:空      a                b         c     d      e
    截取:从此截取        截取到这里结束

    4.ROUND();

    ROUND ( numeric_e-xpression , length [ , function ] )

    这个比较简单,举个例子相信大家就能明白:

    SELECT ROUND(12.111,2);

    SELECT ROUND(12.111,1);


    好的,今天的学习到此结束。。





    展开全文
  • 深入理解数据库当中的聚合函数

    千次阅读 2017-03-15 08:27:25
    4、具体实例应用1、聚合函数的相应概念在数据库当中,函数分为两种:单行函数和多行函数,相应概念如下: 单行函数:每一行返回一个数值(如lower) 多行函数:多行返回一个数值(如count) 聚合函数:多行函数,...

    核心内容:
    1、聚合函数的相应概念
    2、聚合函数的分类
    3、聚合函数用法的注意事项
    4、具体实例应用


    1、聚合函数的相应概念

    在数据库当中,函数分为两种:单行函数和多行函数,相应概念如下:
    单行函数:每一行返回一个数值(如lower)
    多行函数:多行返回一个数值(如count)
    聚合函数:多行函数,即表中的多条记录返回至一个数值,通常用于分组的相关信息。

    2、聚合函数的分类

    聚合函数的分类:(常用的5个)
    count:
    count(*):统计表中所有记录的个数
    count(列名):统计一列中值的个数,其中重复的记录也会被当做有效的记录。
    count(distinct 列名):统计一列中值的个数,其中重复的记录只会被记录一次。
    sum(列名):计算一列值的总和。
    avg(列名):计算一列值的平均值。
    max(列名):计算一列值中的最大值。
    min(列名):计算一列值中的最小值。
    我认为只要记住count为统计一列中值的个数就可以了,因为里面毕竟是distinct的用法。

    3、聚合函数用法的注意事项

    1、聚合函数同order by、distinct、top等都是一样的,都是作用于最终的结果集合的,而不是最用于单行元组的,所以在SQL语句的处理过程当中一定要分清该关键字是作用域单行记录的,还是作用于最终的结果集合的。
    2、在聚合函数遇到空值的时候,除count(*)外,所有的聚合函数都会跳过空值而只处理非空值。
    3、单行函数和多行函数不能混合使用。
    4、如果未对查询结果进行分组,聚集函数将作用于整个查询结果,而分组后聚集函数将作用于每一个组,即每一个组都有一个函数值。

    4、聚合函数的具体应用

    1、在scott数据库当中,统计emp表中deptno不重复的记录的个数。
    代码1:

    select deptno 
    from emp
    where 1=1

    运行结果:
    这里写图片描述
    具体执行顺序:
    a.指定输入文件的路径,即查询所用的表emp表。(from emp)
    b.然后拿到表中的第一条记录,通过where条件表达式进行相应的过滤。(where 1=1)
    c.通过echo或者printf(即select)对表中的相应记录进行输出。
    d.最后对表中的所有行记录进行相同的处理。
    代码2:通过distinct关键字去除掉表中的重复的元组

    select distinct deptno 
    from emp
    where 1=1

    运行结果:
    这里写图片描述
    具体执行流程:
    e.通过distinct关键字作用于最终的结果集合,去除掉表中重复的记录个数。
    代码3:通过count关键字统计一列中值的个数。

    select count (distinct deptno) "个数"
    from emp
    where 1=1

    运行结果:
    这里写图片描述
    流程:
    f.通过count关键字作用于最终的结果集合,统计一列中数值的个数。
    在上面当中,通过一个小例子讲述了数据库中聚合函数的处理数据的流程,实际上只要分清楚两点:
    1、一定要明白SQL语句的具体执行流程
    2、一定要明白该关键字到底是作用于单行元组还是作用于最终的结果集合的,凡是作用域最终的结果的,都是在编写SQL语句的过程当中最后才加上的。
    下面通过几个SQL语句进一步理解聚合函数的概念–判断下面的SQL语句是否正确。
    SQL语句1:

    select max(sal) "最高工资",min(sal) "最低工资",count(*) "员工人数"
    from emp
    where 1=1 

    上面的语句到底是否执行成功呢?按照我们上面所说的逻辑分步骤进行处理:
    代码1:(既然聚合函数是作用于最终的集合的,那我们就先将max、min、count这些聚合函数先去掉)

    select sal,sal,*
    from emp
    where 1=1 

    运行结果:
    这里写图片描述
    代码2:通过max、min、count这些聚合函数作用于最终的结果集合。

    select max(sal),min(sal),count(*)
    from emp
    where 1=1 

    运行结果:
    这里写图片描述
    代码3:改一下字段名吧

    select max(sal) "最大值",min(sal) "最小值",count(*) "员工的个数"
    from emp
    where 1=1 

    运行结果:
    这里写图片描述
    因此上面的SQL语句是正确的。
    SQL语句2:

    select max(sal),lower (ename)
    from emp
    where 1=1 

    好的,我们还是先进行拆分处理。
    代码1:先去掉作用于最终结果集合的聚合函数max

    select sal,lower(ename)
    from emp
    where 1=1

    运行结果:
    这里写图片描述
    代码2:加上聚合函数max

    select max(sal),lower(ename)
    from emp
    where 1=1 

    运行结果:(报错)

    消息 8120,级别 16,状态 1,第 1 行
    选择列表中的列 'emp.ename' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。

    上面的这个错误很明显,即单行行数和多行行数不能混合使用,所有上面的SQL语句是不正常的,所以还是那句话,在SQL语句的处理过程当中,只要分清该关键字作用于单行记录还是最终的结果集合就很简单了。
    OK,至于聚合函数与分组的结合使用,后续在具体介绍,如有问题,欢迎留言指正!
    后续:http://www.tuicool.com/articles/fERNv2
    http://www.codeceo.com/article/sql-execute-process.html

    展开全文
  • 目录数据库系统原理-函数依赖和关系模式分解第一范式如何处理非原子值原子性关系数据库设计中易犯的错误模式分解无损连接分解优化关系模式的步骤函数依赖函数依赖定义函数依赖的使用函数依赖集的闭包Armstrong公理...
  • 达梦数据库的查询以及函数的使用

    千次阅读 2020-07-25 19:59:52
    having筛选分组三、order by 子句分页查询top分页limit分页伪列分页达梦数据库函数多表联查子查询如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...
  • 数据库 之 round函数

    2021-08-31 20:09:21
    ROUND() 函数用于把数值字段舍入为指定的小数位数,主要两种形式: ROUND(x,d) ,x 指要处理的数,d 是指保留几位小数,其中 d 可以为负数,当 d 为 -3 时表示保留整数到千位 ROUND(x) ,其实就是ROUND(x,0),也...
  • 笔者找到的功能最强大、操作最简单、使用最可靠的数据库解密工具,用于解密的SQL Server2000、2005等版本的存储过程、函数、触发器和视图。 执行连接到数据库后,左边直接列出数据库清单以及每个数据库内的存储过程...
  • 数据库存储过程及存储函数

    千次阅读 2018-09-14 08:40:32
    原因是一个功能是需要在不同的地方多次使用的,如果在每一个需要调用的地方都写一遍会造成代码量很大,所以我们把他抽取成单独的方法,在需要使用的时候调用这个方法。同样的道理,如果同一个数据库操作需要被多次...
  • 针对一个具体的问题,应该如何构造一个适合于它的数据库模式,即应该构造几个关系模式,每个关系由哪些属性组成。 由此引出了关系数据库理论,一个问题的关系模式会带来: 1.数据冗余 2.更新异常 3.插入异常 ...
  • 1) 将函数依赖用multimap,string> 存储,因为函数依赖可能会一对多,例如:A->X,A->Y;多重映射可以存储,一一映射只能能存储一对一。 2) 熟悉全排列组合的算法,即列出Cnk的所有可能结果(从Cn­­­1,Cn2,….,...
  • 1.系统内置函数只能提供简单的、对数据库表字段的操作。 2.自定函数可以提高数据库中代码的可重用性,可以实现复杂功能,可以根据需要来获取返回值。 为什么使用存储过程? 1.存储过程是SQL语句和控制语句的预...
  • substring操作的字符串,开始截取的位置,返回的字符个数,本文通过简单实例给大家介绍了SqlServer数据库中Substring函数的用法,感兴趣的朋友一起看看吧
  • 一、函数依赖 函数依赖是数据依赖的一种,它反映属性或属性组之间相...简单的说就是在属性U上两个子集属性X,Y,由X属性可以获得一个元组,而X属性对应的Y属性获得相同的元组 比如: (sno-学生ID,tno-教师ID,cno-课
  • Oracle数据库--trunc函数简单用法

    千次阅读 2018-04-25 16:02:12
    trunc 函数可用于截取日期时间用法:trunc(字段名,精度)具体实例:在表table1中,一个字段名为sysdate,该行id=123,日期显示:2018/4/25 15:11:581、截取时间到年时,sql语句如下:select trunc(sysdate,'yyyy...
  • 主要介绍了php封装的数据库函数与用法,基于thinkPHP中数据库操作相关代码整理简化而来,包括针对数据库的设置、连接、查询及日志操作等功能,简单实用,需要的朋友可以参考下
  • 数据库(笔记)——函数依赖

    千次阅读 多人点赞 2020-08-15 10:01:01
    函数依赖函数依赖的定义函数依赖的逻辑蕴涵逻辑蕴涵闭包函数依赖的推导规则完全函数依赖与部分函数依赖完全函数依赖部分函数依赖传递函数依赖候选键在函数依赖中的定义总结 函数依赖的定义 定义 函数依赖是关系模式...
  • 数据库中的开窗函数

    千次阅读 2017-07-31 17:04:04
    在开窗函数出现之前存在着很多用 SQL 语句很难解决的问题,很多都要通过复杂的相关子查询或者存储... 等主流数据库中都提供了对开窗函数的支持,不过非常遗憾的是 MySQL 暂时还未对开窗函数给予支持。  为了更加清
  • 存储过程(Stored Procedure)和存储函数(Stored Function)是在数据库中定义的一些完成特定功能的SQL语句集合,其经编译后存储在数据库中。存储过程和存储函数中可包含流程控制语句及各种SQL语句。它们可以接受参数、...
  • DB2数据库函数大全

    千次阅读 2017-07-24 17:18:43
    DB2 内置的函数真的是很多,要精通每个函数几乎是不可能的,所以本文并不打算介绍每个函数的具体用法,而是提供一个概览,让您了解每个函数的功能,这样,当你感觉你需要某些功能的函数时,再学习它们的具体用法也...
  • 函数依赖是指关系中属性间(或者说是表中字段间)的对应关系。 定义:设 R 为任一给定关系,如果对于 R 中属性 X 的每一个值,R 中的属性 Y 只有唯一值与之对应,则称 X 函数决定 Y 或称 Y 函数依赖于 X ,记作 X—&...
  • 【MySQL】数据库函数使用

    千次阅读 2021-02-14 21:07:20
    这一小节学习的是MySQL的函数,与其他语言的函数操作很相像,也比较简单,学习一些常用的掌握即可! MySQL函数官网:MySQL函数大全 1、常用函数 Java能用的MySQL基本都能用 --数学运算 select abs(-100) --abs绝对值...
  • 通过之前两篇文章对pl/sql程序的简单介绍,现在就可以稳稳的学习重点了,存储过程和存储函数,这个才是我们项目开发中真正要用到的,前面所学的都是为了这个做铺垫的。 1.什么是存储过程和存储函数? oracle允许将...
  • 数据库关系模式的函数依赖习题讲解

    万次阅读 多人点赞 2020-05-15 16:45:10
    关系模式 R(职工名,项目名,工资,部门名,部门经理) 如果规定,每个职工可参加多个项目,各领一份工资;每个项目只属于一个部门管理;...>设关系模式R(A,B,C,D,E),其函数依赖集为F={A→B,C
  • mysql数据库操作函数封装

    千次阅读 2018-03-29 21:37:22
    在电商后台管理,也是非常容易用到的,既然使用的频率那么高,也就只好进行函数库的封装,这里没有用类的方法进行封装,还是简单的用面向结构的方式,统一的归纳了一下:(1)连接数据库:function connect(){ ...
  • 2、sql语句简单 3、减少了和数据库服务器连接的次数,提高了效率 一、视图 定义: 视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据。视图将一个查询的结果作为一个表来使用,因此视图...
  • 在使用数据库进行数据筛选时查询时,经常会用到一些聚合函数,如 count(),sum(),max(),min(),avg()但是我们知道如果对数据表中的某列使用这些聚合函数时,往往会出现一点问题,那就是这一列可能出现...
  • 我在微信小程序里建立了一个文件夹lib,里面放置我的封装的提取数据库数据的函数lib.js: function getDB(myDB,magnitude) { var pyx_stars = new Array(); const db = wx.cloud.database(); //在云函数里调用就是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 639,162
精华内容 255,664
关键字:

数据库有哪些简单函数