十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、在创建好的数据库book,选中数据库book新建表,鼠标右键新建表。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、虚拟空间、营销软件、网站建设、灵武网站维护、网站推广。
2、添加数据库表字段id、ano、aname、asex、aage,注意非空项。
3、关闭插入字段窗口,这时会提示是否保存提示,选择“是”保存。
4、点击”是“按钮,输入表名称t_author_info,点击保存,创建数据库表。
5、刷新表,鼠标右键点击”设计“,打开表设计窗口,插入字段。
6、打开查询SQL窗口,编辑插入字段SQL语句,找到SQL 语句语法。就完成了。
在pgAdmin的窗口中,直接打开SQL文件然后执行就可以了。
你所说的Oracle的执行方式,应该是在sql
plus命令窗口中执行sql文件。这个功能在PostgreSQL的命令窗口psql中也有此功能:开启psql命令窗口之后,执行命令:
\i sqlfile_path就可以执行指定的sql文件了,
其中sqlfile_path是要执行的sql文件,
如下图,
要注意的是:
在Windows系统中,路径中用的是斜杠,不是反斜杠。
DELETE语句用于从表中删除现有记录。 “WHERE”子句用于指定删除所选记录的条件,如是不指定条件则将删除所有记录。
语法:
以下是 DELETE语句 的基本语法:
下面来看看一个例子:
考虑一个名为“ EMPLOYEES ”的表,其中包含以下数据。
数据如下所示 -
按照以下步骤删除表中的数据
选择表“ EMPLOYEES ”并右键单击。将看到一个 脚本 选项,将光标移动到 脚本 选项上,将看到“ DELETE脚本 ”选项然后点击它。
就会得到一个这样的页面:
放置要删除的WHERE条件 condition 。
执行一个例子:
从“ EMPLOYEES ”中删除“ID”为 1 的记录。执行以下查询语句:
如下图所示 -
查询 EMPLOYEES 的数据记录,可以看到ID为1的记录已经被删除了 -
看下面这个例子:
查询 EMPLOYEES 的数据记录,可以看到所有记录都已经被删除了 -
PostgreSQL的PL/pgSQL语言是支持动态SQL语句的(说execute immediate的是ECPG所支持的)。但是,要记得重要的一点: 是在PL/pgSQL语言中支持。而PL/pgSQL语言一个块结构的语言,它以begin ... end为块的开始与结束标识。这也就是说,要执行动态SQL语句,就必须放到begin ... end块中,而不要想实现一个单独的动态SQL语句。在SQL Server中,倒是可以轻松的实现,我们可以直接执行一个这样的动态SQL:
execute sp_executesql N'select 1 as val'
而在PostgreSQL中,就不要有此想法了。当然,SQL Server的这种动态SQL语句的执行方法也有其局限与不便的地方。
在PL/pgSQL中,执行动态SQL的格式如下(摘录自说明文档):
EXECUTE command-string [ INTO [STRICT] target ] [ USING expression [, ... ] ];
其中,
command-string就是要执行的动态SQL语句(一定要记住:这里是SQL语句,不是PL/pgSQL语句,像raise notice就不能使用);
INTO子句是把SQL查询到的值赋给INTO指定的变量;
USING子句是前面的command-string中替代变量($1, $2, ...)的赋值;
示例:
do $$
declare
v_c1 integer;
v_c2 integer;
begin
execute 'select count(*) as c1, count(*) as c2 from (select 1 as idx union select 11 as idx union select 21 as idx) s where idx $1'
into v_c1, v_c2
using 10;
raise notice '%, %', v_c1, v_c2;
1、首先在postgresql数据库中复制表的时候,必须先建立表结构,然后通过insert into语句来实现。
2、如果在复制数据之前没有建立相应的表结构,如下图中的错误信息。
3、在查询数据的时候也可以把两个表联合起来进行查询,通过union关键字来进行查询,如下图。
4、如果在使用union进行查询的进修,两条结果一样人被合并成一条。
5、如果想显示联合查询中相同的语句,可以使用union all来进行查询。
我们可以利用psql命令来查询sql语法。
切换到PostgreSql用户下,
[sql] view plain copy
span style="font-size:18px;"[doctor@localhost ~]$ su - postgres
密码:
su: 鉴定故障
[doctor@localhost ~]$ su - postgres
密码:
-bash-4.3$ bash
bash-4.3$ psql
psql (9.4.2)
输入 "help" 来获取帮助信息.
postgres=#
postgres=# help
您正在使用psql, 这是一种用于访问PostgreSQL的命令行界面
键入: \copyright 显示发行条款
\h 显示 SQL 命令的说明
\? 显示 pgsql 命令的说明
\g 或者以分号(;)结尾以执行查询
\q 退出
postgres=#
/span
\h 命令就是我们用来学习sql语法的命令。
[sql] view plain copy
span style="font-size:18px;"postgres=# \h
可用的说明:
ABORT DEALLOCATE
ALTER AGGREGATE DECLARE
ALTER COLLATION DELETE
ALTER CONVERSION DISCARD
ALTER DATABASE DO
ALTER DEFAULT PRIVILEGES DROP AGGREGATE
ALTER DOMAIN DROP CAST
ALTER EVENT TRIGGER DROP COLLATION
ALTER EXTENSION DROP CONVERSION
ALTER FOREIGN DATA WRAPPER DROP DATABASE
ALTER FOREIGN TABLE DROP DOMAIN
ALTER FUNCTION DROP EVENT TRIGGER
ALTER GROUP DROP EXTENSION
ALTER INDEX DROP FOREIGN DATA WRAPPER
ALTER LANGUAGE DROP FOREIGN TABLE
ALTER LARGE OBJECT DROP FUNCTION
ALTER MATERIALIZED VIEW DROP GROUP
ALTER OPERATOR DROP INDEX
ALTER OPERATOR CLASS DROP LANGUAGE
ALTER OPERATOR FAMILY DROP MATERIALIZED VIEW
ALTER ROLE DROP OPERATOR
ALTER RULE DROP OPERATOR CLASS
postgres=# \h select
命令: SELECT
描述: 从资料表或视观表读取资料
语法:
[ WITH [ RECURSIVE ] with查询语句(with_query) [, ...] ]
SELECT [ ALL | DISTINCT [ ON ( 表达式 [, ...] ) ] ]
[ * | 表达式 [ [ AS ] 输出名称 ] [, ...] ]
[ FROM from列表中项 [, ...] ]
[ WHERE 条件 ]
[ GROUP BY 表达式 [, ...] ]
[ HAVING 条件 [, ...] ]
[ WINDOW 窗口名称 AS ( 窗口定义 ) [, ...] ]
[ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] 查询 ]
[ ORDER BY 表达式 [ ASC | DESC | USING 运算子 ] [ NULLS { FIRST | LAST } ] [
, ...] ]
[ LIMIT { 查询所用返回记录的最大数量 | ALL } ]
[ OFFSET 起始值 [ ROW | ROWS ] ]
[ FETCH { FIRST | NEXT } [ 查询所用返回记录的最大数量 ] { ROW | ROWS } ONLY
]
[ FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF 表名 [, ...] ] [ N
OWAIT ] [...] ]
from 列表中的项可以是下列内容之一
[ ONLY ] 表名 [ * ] [ [ AS ] 化名 [ ( 列的化名 [, ...] ) ] ]
[ LATERAL ] ( 查询 ) [ AS ] 化名 [ ( 列的化名 [, ...] ) ]
WITH查询语句名称(with_query_name) [ [ AS ] 化名 [ ( 列的化名 [, ...] ) ] ]
[ LATERAL ] 函数名称 ( [ 参数 [, ...] ] )
[ WITH ORDINALITY ] [ [ AS ] 化名 [ ( 列的化名 [, ...] ) ] ]
[ LATERAL ] 函数名称 ( [ 参数 [, ...] ] ) [ AS ] 化名 ( 列定义 [, ...] )
[ LATERAL ] 函数名称 ( [ 参数 [, ...] ] ) AS ( 列定义 [, ...] )
[ LATERAL ] ROWS FROM( 函数名称 ( [ 参数 [, ...] ] ) [ AS ( 列定义 [, ...] )
] [, ...] )
[ WITH ORDINALITY ] [ [ AS ] 化名 [ ( 列的化名 [, ...] ) ] ]
from列表中项 [ NATURAL ] 连接操作的类型 from列表中项 [ ON 用连接操作的条件 |
USING ( 用于连接操作的列 [, ...] ) ]
with查询语句是:
WITH查询语句名称(with_query_name) [ ( 列名称 [, ...] ) ] AS ( 查询 | 值 | in
sert | update | delete )
TABLE [ ONLY ] 表名 [ * ]
postgres=# /span
看这命令对于学习sql语法很有用。