PostgreSQL_常用SQL

sql语句操作规范:

  • 表名:select * from 表名
  1. 表名为小写字母时:表名为小写、大写、大小写混合都行。
  2. 表名为大写字母时:表名只能为大写。
  3. 表名为大小写混合时:表名只能为大写。
  • 字段名
  1. 字段名为小写字母时:查询时字段名为小写、大写、大小写混合都行。
  2. 字段名为大写字母时:查询时字段名只能为大写。

获取所有表名:

select tablename   FROM   pg_tables  WHERE   tablename   NOT   LIKE   'pg%'   
AND tablename NOT LIKE 'sql_%'     ORDER   BY   tablename;
select table_name from INFORMATION_SCHEMA.TABLES WHERE  table_catalog = '数据库名'  and 
table_type = 'BASE TABLE' AND table_name NOT LIKE  'pg%'  
AND table_name NOT LIKE 'sql_%'

获取视图名:

SELECT  SCHEMA_NAME from information_schema.schemata WHERE SCHEMA_NAME NOT LIKE 'pg%' 
AND SCHEMA_NAME NOT LIKE 'information%'

同时获取表名和模式名: 

select table_schema,table_name from INFORMATION_SCHEMA.TABLES WHERE  table_type = 'BASE TABLE' 
AND table_name NOT LIKE  'pg%'  AND table_name NOT LIKE 'sql_%'
SELECT schemaname,tablename FROM pg_tables WHERE   tablename   NOT   LIKE   'pg%'  
AND tablename NOT LIKE 'sql_%'

获取某一模式下的表名:

select table_name from INFORMATION_SCHEMA.TABLES Where table_schema = 'ldgx_36_jiangxi' 
and table_catalog = 'postgres' and table_type = 'BASE TABLE'

创建表

CREATE TABLE ht_versions_data (i_id int PRIMARY KEY NOT NULL,version varchar(10))

插入记录

insert into ht_versions_data (i_id,version) VALUES ('1','1.0')

更改表名的语法:

ALTER TABLE  ldgx_34_anhui.ldgx2016_p  RENAME TO  "2016_p"  //特殊表名需要"",且新名字不能    加模式名
ALTER TABLE  "ldgx_34_anhui"."2016_p"  RENAME TO  "ldgx2016_p" //=
ALTER TABLE  "ldgx_34_anhui"."2016_p"  RENAME TO  ldgx2016_p

查找重复行:

select i_id, count(*) from table group by i_id having count(*) > 1;

左连接查询(三张表)

select A.col1, B.col2, C.col3 from (A left join B on a.col3 = b.col1) left join c on A.col3 = C.col1  Where ......

limit

 数据是从第0条开始的,所以这句代码表示从 第六条数据开始的10行数据。

select * from my_table limit 10 offset 5  

不带 offset 时,表示查询10条数据

select * from my_table limit 10 

添加约束

ALTER TABLE 表名 ADD CONSTRAINT 约束名称 UNIQUE (列名);
如:
ALTER TABLE users ADD CONSTRAINT unique_username UNIQUE (username);

删除约束

ALTER TABLE 表名 DROP CONSTRAINT 约束名称;
如:
ALTER TABLE users DROP CONSTRAINT unique_username;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值