select函数

PostgreSQL 9.5新特性 width_bucket

一个人想着一个人 提交于 2020-02-26 05:06:57
PostgreSQL 9.5 新增的一个函数width_bucket , 用来计算一个值在一个bucket范围内的位置信息,如果这个值超出了给定的范围,返回0或者总bucket+1。bucket除了用数字来表示,还可以直接用数组来表示。 width_bucket(operand dp,b1 dp, b2 dp, count int) int return the bucket number to which operand would be assigned in a histogram having count equal-width buckets spanning the range b1 to b2; returns 0 or count+1 for an input outside the range width_bucket(5.35, 0.024, 10.06, 5) 3 width_bucket(operandnumeric, b1 numeric, b2numeric, count int) int return the bucket number to which operand would be assigned in a histogram having count equal-width buckets spanning the range b1 to

php中的extract函数

纵饮孤独 提交于 2020-02-24 05:07:26
extract函数用来将一个数字分解成多个变量直接使用,下面是W3C的解释:PHP extract() 函数从数组中把变量导入到当前的符号表中。对于数组中的每个元素,键名用于变量名,键值用于变量值。第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突。本函数返回成功设置的变量数目。 下面表格是参数说明: 语法 extract(array,extract_rules,prefix) 参数 描述 array 必需。规定要使用的输入。 extract_rules 可选。extract() 函数将检查每个键名是否为合法的变量名,同时也检查和符号表中的变量名是否冲突。 对非法、数字和冲突的键名的处理将根据此参数决定。可以是以下值之一: 可能的值: EXTR_OVERWRITE - 默认。如果有冲突,则覆盖已有的变量。 EXTR_SKIP - 如果有冲突,不覆盖已有的变量。(忽略数组中同名的元素) EXTR_PREFIX_SAME - 如果有冲突,在变量名前加上前缀 prefix。自 PHP 4.0.5 起,这也包括了对数字索引的处理。 EXTR_PREFIX_ALL - 给所有变量名加上前缀 prefix(第三个参数)。 EXTR_PREFIX_INVALID - 仅在非法或数字变量名前加上前缀 prefix。本标记是 PHP

php mySql常用的函数

喜你入骨 提交于 2020-02-16 21:21:17
1 1、mysql_connect()-建立数据库连接 2 格式: 3 resource mysql_connect([string hostname [:port] [:/path/to/socket] [, string username] [, string password]]) 4 例: 5 $conn = @mysql_connect("localhost", "username", "password") or die("不能连接到Mysql Server"); 6 说明:使用该连接必须显示的关闭连接 7 8 2、mysql_pconnect()-建立数据库连接 9 格式: 10 resource mysql_pconnect([string hostname [:port] [:/path/to/socket] [, string username] [, string password]]) 11 例: 12 $conn = @mysql_pconnect("localhost", "username", "password") or dir("不能连接到Mysql Server"); 13 说明:使用该连接函数不需要显示的关闭连接,它相当于使用了连接池 14 15 3、mysql_close()-关闭数据库连接 16 例: 17 $conn = @mysql

Go语言的并发机制

蹲街弑〆低调 提交于 2020-02-16 01:53:36
目录 写在前面 并发 Concurrency Channel 关键字:range,close 关键字 select sync.Mutex 写在前面 这一部分,在官方教程中并没有太多详细的说明,建议读者先看以下文章: http://legendtkl.com/2017/07/30/understanding-golang-channel/ https://studygolang.com/articles/12342 https://studygolang.com/articles/12402 并发 Concurrency go的并发是通过goroutine来实现的 它的使用,就是在某个操作前加上go关键字 go f(x, y, z) 什么叫当前的goroutine? 文字苍白,且看代码: package main import "fmt" func main() { fmt.println("hello,world!") } 如果程序开始执行,那么上面的的就是当前的goroutine了 什么是非当前的goroutine 使用go关键词就能添加新的goroutine了 import "fmt" func NewGoroutine() { fmt.Println("new goroutine!") } func main() { go NewGoroutine() /

MySQL 存储过程 详解

不打扰是莪最后的温柔 提交于 2020-02-14 01:48:38
什么是 MySQL 存储例程? 存储例程是存储在数据库服务器中的一组sql语句,通过在查询中调用一个指定的名称来执行这些sql语句命令。 为什么要使用 MySQL 存储过程? 我们都知道应用程序分为两种,一种是基于web,一种是基于桌面,他们都和数据库进行交互来完成数据的存取工作。假设现在有一种应用程序包含了这两 种,现在要修改其中的一个查询sql语句,那么我们可能要同时修改他们中对应的查询sql语句,当我们的应用程序很庞大很复杂的时候问题就出现这,不易维护!另外把sql查询语句放在我们的web程序或桌面中很容易遭到sql注入的破坏。而存储例程正好可以帮我们解决这些问题。 基本语法 声明语句结束符,用于区分; DELIMITER // 声明存储过程CREATE PROCEDURE demo_in_parameter(IN p_in int) 存储过程开始和结束符号 BEGIN .... END 变量赋值 SET @p_in=1 变量定义 DECLARE l_int int unsigned default 4000000; 存储过程简单示例: DELIMITER // CREATE PROCEDURE proc1(OUT s int) BEGIN SELECT COUNT(*) INTO s FROM user; END // DELIMITER ; 注: (1)这里需要注意的是

Sybase数据库常用sql语言

ε祈祈猫儿з 提交于 2020-02-13 22:39:42
Sybase数据库常用sql语言 1,表备份: --table_name1:需要备份的表; table_name2:备份后的表 SELECT * into table_name2 from table_name1 2,删除列: ALTER TABLE table_name DELETE column_name; 3,增加列: ALTER TABLE table_name ADD (column_name DATA_TYPE [NOT] NULL); 4,修改列的空与非空: ALTER TABLE table_name MODIFY column_name [NOT] NULL; 5,修改列名: ALTER TABLE table_name RENAME old_column_name TO new_column_name; 6,快速建立临时表: SELECT * INTO table_name_new FROM table_name_old; 7,修改表名: ALTER TABLE old_table_name RENAME new_table_name 8,增加主键约束: ALTER TABLE tb_name ADD CONSTRAINT pk_name PRIMARY KEY(col_name,..) 9,删除主键约束: ALTER TABLE tb_name DROP

学习SQL语句之SQL语句大全

随声附和 提交于 2020-02-13 22:17:38
学习SQL语句之SQL语句大全 -------------------------------------------------------------------------------- 作者:winroot --语 句 功 能   --数据操作   SELECT --从数据库表中检索数据行和列   INSERT --向数据库表添加新数据行   DELETE --从数据库表中删除数据行   UPDATE --更新数据库表中的数据   --数据定义   CREATE TABLE --创建一个数据库表   DROP TABLE --从数据库中删除表   ALTER TABLE --修改数据库表结构   CREATE VIEW --创建一个视图   DROP VIEW --从数据库中删除视图   CREATE INDEX --为数据库表创建一个索引   DROP INDEX --从数据库中删除索引   CREATE PROCEDURE --创建一个存储过程   DROP PROCEDURE --从数据库中删除存储过程   CREATE TRIGGER --创建一个触发器   DROP TRIGGER --从数据库中删除触发器   CREATE SCHEMA --向数据库添加一个新模式   DROP SCHEMA --从数据库中删除一个模式   CREATE DOMAIN -

简单实用SQL脚本

一曲冷凌霜 提交于 2020-02-13 19:23:47
行列互转 create table test(id int ,name varchar ( 20 ),quarter int ,profile int ) insert into test values ( 1 , ' a ' , 1 , 1000 ) insert into test values ( 1 , ' a ' , 2 , 2000 ) insert into test values ( 1 , ' a ' , 3 , 4000 ) insert into test values ( 1 , ' a ' , 4 , 5000 ) insert into test values ( 2 , ' b ' , 1 , 3000 ) insert into test values ( 2 , ' b ' , 2 , 3500 ) insert into test values ( 2 , ' b ' , 3 , 4200 ) insert into test values ( 2 , ' b ' , 4 , 5500 ) select * from test -- 行转列 select id,name, [ 1 ] as "一季度", [ 2 ] as "二季度", [ 3 ] as "三季度", [ 4 ] as "四季度", [ 5 ] as " 5 " from test

mysql对时间函数的处理 [转帖]

断了今生、忘了曾经 提交于 2020-02-12 15:40:53
昨天计费系统故障.电话挂断后TG给软件换发的消息bye丢失,造成homeserver一直等待直到超时;结果造成大量超长话单的产生。定位了一下午,后来才得知是TG的licence到期了,间断的停止服务。这时候需要处理对用户已经造成的损失。制订了以下方案: step1:退回已经扣除的巨额话费; step2:修正用户话单的结束时间和时长,重新计费 step3:对由此影响到的冻结用户解冻。 step4:向用户致谦 在step2的时候我使用了如下方式: update account_tbl set acct_timestamp=begin_timestamp+62,acct_timeduration=62 where acct_timeduration=10800; 想当然得认为是正确的,结果发现所有大话单的结束时间并没有修正到我预期的开始时间后延62s,而是变成'0000-00-00 00:00:00',这样奇怪的日期型在前台 表现层转换的时候引发异常所以读不出话单来。后来查找了mysql对时间的运算方式,发现我的方法acct_timestamp=begin_timestamp+62不 符合 mysql的语法 习惯。于是把关于时间处理的函数统计了一下。以下是收集到的资料: 这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql>

[收藏]Mysql日期和时间函数

自作多情 提交于 2020-02-12 15:40:02
对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型。 这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30; DAYOFWEEK(date) 返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。 mysql> select DAYOFWEEK('1998-02-03'); -> 3 WEEKDAY(date) 返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。 mysql> select WEEKDAY('1997-10-04 22:23:00'); -> 5 mysql> select WEEKDAY('1997-11-05'); -> 2 DAYOFMONTH(date) 返回date的月份中日期,在1到31范围内。 mysql> select DAYOFMONTH('1998-02-03'); -> 3 DAYOFYEAR(date) 返回date在一年中的日数, 在1到366范围内。 mysql> select DAYOFYEAR('1998-02-03')