首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL从入门入魔之select简单查询

一、SELECT语句 使用select查询表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择。 #1.查询单个列: select id from stu; ?...未排序数据 如果没有明确排序查询结果,可能会发现显示输出的数据顺序与原表不同,返回的数据的顺序没有特殊意义,可能是数据被添加到表中的顺序,也可能不是,只要返回相同数目的行就是正常的。...#2.查询多个列:查询学生表的id,name两列的值 select id,name from stu; ? 在select关键字后给出多个列名,列名之间以逗号分隔,最后一个列名后不加逗号。...#3.查询所有列:查询学生表所有列的值 select * from stu; ? 使用*通配符 一般,除非确实需要表中的每个列,否则最好别使用*通配符。...#4.查询不同的行(distinct去重):查询学生表所有学生的年龄 select distinct age from stu ; ? 使用DISTINCT关键字,它必须直接放在列名的前面。

1.6K70
您找到你想要的搜索结果了吗?
是的
没有找到

进阶数据库系列(十一):PostgreSQL 存储过程

declare a integer not null; a :=32; 动态赋值 具体可查看官方文档http://postgres.cn/docs/12/plpgsql-statements.html...test就是基础sql命令从test表中查询id的值 -- 通过 into a 将查询得到的值赋值给a select id into a from test; 方式二:动态命令 EXECUTE command-string...若是添加strict选项,结果返回的是多条数据就会报错,如下显示。 如果返回的结果刚好是一行数据的,则添加strict选项就可以显示最终结果。 正常显示结果并且返回。...text_expression [ USING expression [, ... ] ] LOOP statements END LOOP [ label ] 在使用EXECUTE时,可以通过USING将参数值插入动态命令中...案例二:for查询结果循环,声明语法拷贝类型(拷贝一个行变量) 拷贝行类型,语法声明:v_value table_name%ROWTYPE 。

2.1K20

Postgresql随手记(10)游标编译过程和编译结果

相关 《Postgresql游标使用介绍(cursor)》 《Postgresql随手记(10)游标编译过程&结果记录》 随手记录游标编译后的状态,供日后查询。...y tf1%ROWTYPE; BEGIN open curs1 FOR SELECT * FROM tf1 WHERE c1 > 3; fetch curs1 into y; RAISE...用于存放多个参数的场景,例如上面dno=4的key变量,有可能会使用多个游标变量,这里需要统一保存到一个row中 需要注意的是row只是一个总集,具体的变量还会单独记录在plpgsql_Datums...中 PLpgSQL_var游标 游标类型变量也是使用PLpgSQL_var来保存,特别的是会启动cursor_xxx的几个变量保存信息 游标类型的cursor_options用于记录游标的行为模式...PLpgSQL_rec和PLpgSQL_recfield组合使用,用于记录形如y tf1%ROWTYPE;的变量类型 PLpgSQL_rec对应一个ROWTYPE变量PLpgSQL_recfield

49710

Postgresql游标编译过程和编译结果

相关 《Postgresql游标使用介绍(cursor)》 《Postgresql游标编译过程&结果记录》 记录游标编译后的状态,供日后查询。...y tf1%ROWTYPE; BEGIN open curs1 FOR SELECT * FROM tf1 WHERE c1 > 3; fetch curs1 into y; RAISE...用于存放多个参数的场景,例如上面dno=4的key变量,有可能会使用多个游标变量,这里需要统一保存到一个row中 需要注意的是row只是一个总集,具体的变量还会单独记录在plpgsql_Datums...中 PLpgSQL_var游标 游标类型变量也是使用PLpgSQL_var来保存,特别的是会启动cursor_xxx的几个变量保存信息 游标类型的cursor_options用于记录游标的行为模式...PLpgSQL_rec和PLpgSQL_recfield组合使用,用于记录形如y tf1%ROWTYPE;的变量类型 PLpgSQL_rec对应一个ROWTYPE变量PLpgSQL_recfield

77510

Postgresql RECORD与%ROWTYPE类型

,PG中给行类型赋值只有两种方式: SELECT into row1 SELECT into rec1 FOR row1 IN SELECT * FROM table1 WHERE c3 = 1; FOR...rec1 IN SELECT * FROM table1 WHERE c3 = 1; record的行结构与结果集保持一致,也就是按照 查询结果中的列名(或列名as 别名)来定义record具体的字段名...ROWTYPE实例 从实例结果来看有两点结论: ROWTYPE变量内部字段名不会受结果集影响,与表字段保持一致 ROWTYPE变量内部字段的赋值,是按结果集顺序赋值的,与结果集中的字段名无关 drop...,字段名与结果集保持一致 RECORD变量内部字段的赋值,也是按结果集顺序赋值的 drop table tf1; create table tf1(c1 int, c2 int); insert into...; 【3】全局变量拿到结果元组 target = (PLpgSQL_variable *) estate->datums[stmt->target

84320

HAWQ技术解析(十) —— 过程语言

二、PL/pgSQL函数         SQL是关系数据库使用的查询语言,其最大的特点是简单易学,但主要问题是每条SQL语句必须由数据库服务器独立执行,而且缺少必要的变量定义、流程控制等编程手段。...当这种函数用于查询中时,必须由查询本身指定返回的行结构。下面的例子使用动态SQL,返回结果集依赖于作为入参的查询语句。...参数个数可变是通过一个动态数组实现的,因此所有参数都应该具有相同的数据类型。这种函数将最后一个参数标识为VARIADIC,并且参数必须声明为数组类型。...';         说明: 变量不能定义成伪类型,但可以通过参数进行引用,如上面函数中的l_i v%type。...动态数组必须是函数的最后一个参数。 第一个参数的作用仅是为变量定义数据类型,所以在调用函数时传空即可。          下列语句调用函数返回情况如图12所示。

4.2K50

Postgresql使用Plpgsql编译SELECT INTO细节

select 列名1,列名2 into 变量1,变量2 这类调用形式的代码执行细节分析记录。 总结速查 lex在解析into后,会进入函数把into后面的字符全部拿出来处理。...yacc在拿到T_DATUM后开始处理PLwdatum,拿到plpgsql_Datums数组中的变量,如果变量类型是row或record则可以直接使用,如果是var则需要拼接into后面所有字符 一个...PLpgSQL_row中记录了变量名字 和 变量plpgsql_Datums数组中的位置。...; select get_userid('a'); 编译细节 lex token解析过程,调试时使用gdb断plpgsql_yylex。...情况二:如果lex返回其他类型,则会用read_into_scalar_list拼接一个PLpgSQL_row,row可以存放多个变量名,并可以指向对应的plpgsql_Datums数组位置,应对select

59310
领券