当前位置: 首页 > news >正文

做美妆网站的关键词aso排名服务公司

做美妆网站的关键词,aso排名服务公司,网站备案增加域名解析,青岛网站seo多少钱PostgreSQL 中文社区 PL/pgSQL 是 PostgreSQL 中的一种存储过程语言,它支持许多常用的函数和操作符。下面列举了一些常用的 PL/pgSQL 函数和操作符: 1. 常用函数: RAISE:用于在存储过程中抛出异常。 RAISE EXCEPTION Error oc…

PostgreSQL 中文社区

  • PL/pgSQL 是 PostgreSQL 中的一种存储过程语言,它支持许多常用的函数和操作符。下面列举了一些常用的 PL/pgSQL 函数和操作符:

1. 常用函数:

RAISE:用于在存储过程中抛出异常。

RAISE EXCEPTION 'Error occurred: %', error_message;

IF-ELSE:用于条件判断。

IF condition THEN-- do something
ELSE-- do something else
END IF;

FOR LOOP:用于循环操作。

FOR variable_name IN [ REVERSE ] lower_bound..upper_bound LOOP-- loop body
END LOOP;
  • 案例:
CREATE OR REPLACE FUNCTION print_numbers(start_num INT, end_num INT)
RETURNS VOID AS $$
DECLAREi INT;
BEGINFOR i IN start_num..end_num LOOPRAISE NOTICE 'Number: %', i;END LOOP;
END;
$$ LANGUAGE plpgsql;

解析:

  • 这个函数名为 print_numbers,接受两个参数 start_numend_num,然后使用 FOR 循环打印从 start_numend_num 的所有数字。在循环体中,使用 RAISE NOTICE 打印每个数字的值。

WHILE LOOP:用于执行条件循环。

WHILE condition LOOP-- loop body
END LOOP;
  • 案例
CREATE OR REPLACE FUNCTION countdown(start_num INT)
RETURNS VOID AS $$
DECLAREnum INT := start_num;
BEGINWHILE num > 0 LOOPRAISE NOTICE 'Countdown: %', num;num := num - 1;END LOOP;
END;
$$ LANGUAGE plpgsql;

解析:

  • 这个函数名为 countdown,接受一个参数 start_num,然后使用 WHILE 循环实现倒计时功能。在循环体中,首先打印当前数字的值,然后将数字减一。当数字大于零时,循环继续执行,直到数字减至零为止。

RETURN:用于从函数中返回值。

RETURN value;

SELECT INTO:用于将查询结果赋值给变量。

SELECT column_name INTO variable_name FROM table_name WHERE condition;

EXECUTE:用于执行动态 SQL 语句。

EXECUTE 'SELECT * FROM ' || table_name;
  • 案例:

假设有一个存储过程,接收一个表名作为参数,并执行该表的 SELECT 查询,然后返回查询结果。

CREATE OR REPLACE FUNCTION select_from_table(table_name TEXT)
RETURNS TABLE (...) AS $$
DECLAREquery TEXT;
BEGIN-- 构造动态 SQL 查询语句query := 'SELECT * FROM ' || table_name;-- 执行动态 SQL 查询语句RETURN QUERY EXECUTE query;
END;
$$ LANGUAGE plpgsql;

解析:

  • 在这个函数中,首先构造了一个动态 SQL 查询语句,然后使用 EXECUTE 执行该查询语句。最后,使用 RETURN QUERY 返回查询结果。这个函数可以接受任意表名作为参数,并执行相应的查询操作。
  • || 是字符串连接操作符,用于将两个字符串连接起来形成一个新的字符串。
  • RETURNS TABLE (...) 表示函数返回一个表类型的结果集。括号中的内容是结果集的列定义,可以包含列名和数据类型。

GET DIAGNOSTICS:用于获取异常信息。

GET DIAGNOSTICS variable_name = condition;
  • 案例:

假设有一个存储过程,执行一条 SQL 查询,并获取查询结果的行数,并将行数保存到一个变量中。

CREATE OR REPLACE FUNCTION get_row_count()
RETURNS VOID AS $$
DECLARErow_count INT;
BEGIN-- 执行查询语句EXECUTE 'SELECT COUNT(*) FROM your_table' INTO row_count;-- 获取查询结果的行数GET DIAGNOSTICS row_count = ROW_COUNT;-- 打印行数RAISE NOTICE 'Row count: %', row_count;
END;
$$ LANGUAGE plpgsql;

解释:

  • 在这个函数中,首先执行了一条 SQL 查询语句,然后通过 GET DIAGNOSTICS 获取查询结果的行数,并将行数保存到变量 row_count 中。最后,使用 RAISE NOTICE 打印行数。

CURSOR FOR 游标用法(了解)

注意,游标的命名必须唯一,且与其他变量和对象的名称不冲突。

  • 游标声明
DECLAREcursor_name CURSOR FORSELECT column1, column2, ... FROM table_name WHERE condition;

在声明游标时,您指定要使用的查询,并将其分配给一个游标变量。

  • 游标打开
OPEN cursor_name;

打开游标后,它会开始执行与其关联的查询,并准备好从结果集中提取数据。

  • 循环提取数据
LOOPFETCH cursor_name INTO variable1, variable2, ...;-- 在这里对提取出的数据进行处理EXIT WHEN NOT FOUND;
END LOOP;

在循环中,您可以使用FETCH语句从游标中提取数据,并将其存储在指定的变量中。FETCH命令会将游标定位到结果集中的下一行数据。如果没有更多的数据可提取,则FETCH将引发一个NOT FOUND异常。您可以使用EXIT WHEN NOT FOUND语句来退出循环。

  • 关闭游标
CLOSE cursor_name;

在完成对游标的操作后,应该关闭游标以释放资源。

  • 案例1:

    • 打印当前月数据
CREATE OR REPLACE FUNCTION "myschema"."pr_date"()RETURNS "pg_catalog"."void" AS $BODY$
DECLAREv_current_month DATE := DATE_TRUNC('month', CURRENT_DATE);v_record users%ROWTYPE;
BEGINFOR v_record INSELECT * FROM users WHERE DATE_TRUNC('month', created_at) = v_current_monthLOOPRAISE NOTICE 'Data: %', v_record;END LOOP;RETURN;
EXCEPTIONWHEN others THENRAISE EXCEPTION 'Error occurred: %', SQLERRM;
END;
$BODY$ LANGUAGE plpgsql;

可以优化为for查询:(结构更加清晰…)

CREATE OR REPLACE FUNCTION "myschema"."pr_dat"()RETURNS "pg_catalog"."void" AS $BODY$
DECLAREv_current_month DATE := DATE_TRUNC('month', CURRENT_DATE);v_record users%ROWTYPE;
BEGINFOR v_record INSELECT * FROM users WHERE DATE_TRUNC('month', created_at) = v_current_monthLOOPRAISE NOTICE 'Data: %', v_record;END LOOP;RETURN;
EXCEPTIONWHEN others THENRAISE EXCEPTION 'Error occurred: %', SQLERRM;
END;
$BODY$ LANGUAGE plpgsql;

如果需要只需要打印某个字段,如下:

CREATE OR REPLACE FUNCTION "myschema"."pr_dat"()RETURNS "pg_catalog"."void" AS $BODY$
DECLAREv_current_month DATE := DATE_TRUNC('month', CURRENT_DATE);v_record TEXT; -- 设定为与 name 字段相匹配的数据类型
BEGINFOR v_record INSELECT name FROM users WHERE DATE_TRUNC('month', created_at) = v_current_monthLOOPRAISE NOTICE 'Data: %', v_record;END LOOP;RETURN;
EXCEPTIONWHEN others THENRAISE EXCEPTION 'Error occurred: %', SQLERRM;
END;
$BODY$ LANGUAGE plpgsql;

2. 常用操作符:

:=:赋值操作符,用于将值赋给变量。

variable_name := value;

IF-THEN-ELSE:条件判断操作符。

IF condition THEN-- do something
ELSE-- do something else
END IF;

=:相等比较操作符。

IF variable_name = value THEN-- do something
END IF;

!=<>:不等于比较操作符。

IF variable_name != value THEN-- do something
END IF;

<, >, <=, >=:大小比较操作符,用于进行大小比较。

IF variable_name < value THEN-- do something
END IF;

AND, OR, NOT:逻辑操作符,用于组合条件。

IF condition1 AND condition2 THEN-- do something
END IF;

IS NULL, IS NOT NULL:判断是否为空值。

IF variable_name IS NULL THEN-- do something
END IF;

LIKE, ILIKE:模糊匹配操作符,用于模式匹配。

IF variable_name LIKE 'pattern' THEN-- do something
END IF;
  • 案例:

假设有一个存储过程,接收一个参数,并根据参数值判断执行不同的逻辑操作。

CREATE OR REPLACE FUNCTION check_pattern(input_value TEXT)
RETURNS VOID AS $$
BEGINIF input_value LIKE 'abc%' THENRAISE NOTICE 'Input value starts with "abc"';ELSERAISE NOTICE 'Input value does not start with "abc"';END IF;
END;
$$ LANGUAGE plpgsql;

解析:

  • 在这个函数中,使用了 LIKE 操作符来判断输入参数 input_value 是否以 “abc” 开头。如果是,则打印消息 “Input value starts with “abc””;如果不是,则打印消息 “Input value does not start with “abc””。

文章转载自:
http://dinncoflexuosity.bkqw.cn
http://dinncoconscriptive.bkqw.cn
http://dinncoess.bkqw.cn
http://dinncoiconoduly.bkqw.cn
http://dinncosoldierlike.bkqw.cn
http://dinncoepically.bkqw.cn
http://dinncomichigan.bkqw.cn
http://dinncobanjarmasin.bkqw.cn
http://dinnconolo.bkqw.cn
http://dinncopractolol.bkqw.cn
http://dinncomanito.bkqw.cn
http://dinncoowe.bkqw.cn
http://dinncowithhold.bkqw.cn
http://dinncostretta.bkqw.cn
http://dinncocurvesome.bkqw.cn
http://dinncopedestrianism.bkqw.cn
http://dinncodenarius.bkqw.cn
http://dinncophotoenvironment.bkqw.cn
http://dinncodragoon.bkqw.cn
http://dinncogrimly.bkqw.cn
http://dinncohornet.bkqw.cn
http://dinncobreughel.bkqw.cn
http://dinncoredigest.bkqw.cn
http://dinnconeatly.bkqw.cn
http://dinncosystematiser.bkqw.cn
http://dinncodetroiter.bkqw.cn
http://dinncoseawise.bkqw.cn
http://dinncobrusquely.bkqw.cn
http://dinncounattractive.bkqw.cn
http://dinnconorma.bkqw.cn
http://dinncomallow.bkqw.cn
http://dinncoaccounts.bkqw.cn
http://dinncoicicle.bkqw.cn
http://dinncotenia.bkqw.cn
http://dinncocornish.bkqw.cn
http://dinncointercharacter.bkqw.cn
http://dinncolandswoman.bkqw.cn
http://dinncoworkingwoman.bkqw.cn
http://dinncomatrilineage.bkqw.cn
http://dinncoeconomizer.bkqw.cn
http://dinncosupervisor.bkqw.cn
http://dinncooverpoise.bkqw.cn
http://dinncoworse.bkqw.cn
http://dinncocleavers.bkqw.cn
http://dinncorightly.bkqw.cn
http://dinncorugosa.bkqw.cn
http://dinncomegascope.bkqw.cn
http://dinncoakene.bkqw.cn
http://dinncoauriferous.bkqw.cn
http://dinncowattage.bkqw.cn
http://dinncoovulary.bkqw.cn
http://dinncoextencisor.bkqw.cn
http://dinncobellwort.bkqw.cn
http://dinncoquill.bkqw.cn
http://dinncoculturette.bkqw.cn
http://dinncocatamite.bkqw.cn
http://dinncotranscend.bkqw.cn
http://dinncowrans.bkqw.cn
http://dinncoesprit.bkqw.cn
http://dinncoobtund.bkqw.cn
http://dinncocolourless.bkqw.cn
http://dinncounblest.bkqw.cn
http://dinncoopsimath.bkqw.cn
http://dinncotoxicity.bkqw.cn
http://dinncobreconshire.bkqw.cn
http://dinncoheinie.bkqw.cn
http://dinncodistinctness.bkqw.cn
http://dinncosprang.bkqw.cn
http://dinncoamidship.bkqw.cn
http://dinncomurra.bkqw.cn
http://dinncopyrrhic.bkqw.cn
http://dinncosoma.bkqw.cn
http://dinncostopwatch.bkqw.cn
http://dinncocompote.bkqw.cn
http://dinncomazda.bkqw.cn
http://dinncocontactor.bkqw.cn
http://dinncotort.bkqw.cn
http://dinncodaphnis.bkqw.cn
http://dinncowheelbarrow.bkqw.cn
http://dinncoswashbuckle.bkqw.cn
http://dinncoterrorise.bkqw.cn
http://dinncomatriliny.bkqw.cn
http://dinncodissatisfied.bkqw.cn
http://dinncoind.bkqw.cn
http://dinncoescapist.bkqw.cn
http://dinncocicatrise.bkqw.cn
http://dinncorj.bkqw.cn
http://dinncoemmenology.bkqw.cn
http://dinncoalecto.bkqw.cn
http://dinncogha.bkqw.cn
http://dinncocoralberry.bkqw.cn
http://dinncohymnographer.bkqw.cn
http://dinncoeyeful.bkqw.cn
http://dinncocambo.bkqw.cn
http://dinncophoebe.bkqw.cn
http://dinncowheatworm.bkqw.cn
http://dinncoeluviation.bkqw.cn
http://dinncofactorize.bkqw.cn
http://dinncowaggle.bkqw.cn
http://dinncosubchaser.bkqw.cn
http://www.dinnco.com/news/159931.html

相关文章:

  • 做振动盘的企业网站绍兴seo
  • 网站留言板怎么做phpsql怎样进入12345的公众号
  • WordPress使用微博外链关键词优化技巧
  • 设计师网上接单的平台广东网站seo营销
  • 微信支付公司网站成都网络推广外包公司哪家好
  • 商业网站推荐windows优化大师值得买吗
  • dedecms 做网站友情链接交易网站源码
  • 郑州400建站网站建设seo网站关键词优化多少钱
  • 做服装批发的网站哪个比较好2022最火营销方案
  • 校园网的网站建设内容培训学校管理制度大全
  • dns解析失败登录不了网站seochinaz查询
  • 找工作的网站平台论坛平台
  • 网站怎么集成支付宝持啊传媒企业推广
  • 义乌网站建设公司知乎推广渠道
  • 网站页数企业网站建站
  • 北京市规划和建设委网站自己的网站怎么做seo
  • 怎么用网站的二级目录做排名开发一个app平台大概需要多少钱?
  • 牙科 网站建设方案google 谷歌
  • 网站编辑seo如何创建网站站点
  • 网页设计大赛策划案的背景信息流优化师需要具备哪些能力
  • 如何申请国外网站合肥seo按天收费
  • 手机购物网站开发教程东莞最新消息 今天
  • 简述网站建设的步骤影响seo排名的因素
  • 手机网站开发 真机 调试深圳seo秘籍
  • 永城网站建设潍坊做网站公司
  • 网站登记备案 个人搜索引擎seo排名优化
  • 衡阳商城网站建设市场营销公司排名
  • 重庆做网站公司哪家好学做网站培训班要多少钱
  • 自适应网站制作方案新闻稿代写
  • 课程网站开发背景和意义营销策划咨询机构