postgreSQL 操作 教程
psql -h IP地址 -p 端口 -U 数据库名
psql -h IP -U user_name -p 1035 user_db
\?help
1、列举数据库:
\l
2、选择数据库:\c数据库名
3、查看该某个库中的所有表:\dt
4、切换数据库:\c interface
5、查看某个库中的某个表结构:\d表名
6、查看某个库中某个表的记录:select * from apps limit 1;
7、显示字符集:\encoding
8、退出psgl:\q
\dt
列出所有表名
SELECT tablename FROM pg_tables;
WHERE tablename NOT LIKE 'pg%'
AND tablename NOT LIKE 'sql_%'
ORDER BY tablename;
\l
或
SELECT datname FROM pg_database;
\c 数据库名
1、通过命令行查询
\d 数据库 —— 得到所有表的名字
\d 表名 —— 得到表结构
2、通过SQL语句查询
select * from pg_tables"—— 得到当前db中所有表的信息(这里pg_tables是系统视图)
select tablename from pg_tables where schemaname='public' —— 得到所有用户自定义表的名字(这里"tablename"字段是表的名字,"schemaname"是schema的名字。用户自定义的表,如果未经特殊处理,默认都是放在名为public的schema下)
postgresql数据管理系统使用命令方式有两种:
数据库的关键操作:
启动服务
登录
建立数据库
建立表
插入记录到表中
更新/删除/查询/修改操作
退出
停止服务
设置字符集为 utf-8
在windows7中安装的postgresql默认使用GBK字符集,经常不能使用显示中文的数据表,解决办法:
注意:在windows 7下的postgresql中写操作时要使用GBK,读操作时要用UTF8;
postgres=# \encoding utf-8 // 设置客户端的字元集
postgres=# \encoding // 显示客户端的字元集
postgres=# show client_encoding; // 显示客户端的字元集
postgres=# show server_encoding; // 显示服务器的字元集
启动服务:
net start postgresql-9.5
停止服务:
net stop postgresql-9.5
获取命令帮助:
psql --help
您正在使用psql, 这是一种用于访问PostgreSQL的命令行界面
\h显示 SQL 命令的说明
\?显示 pgsql 命令的说明 (pgsql内部命令)
\g或者以分号(;)结尾以执行查询
\q退出注: 数据库名称区分大小写的。
postgres=#
\help// 获取SQL命令的帮助,同\h
postgres=#\quit// 退出,同\q
postgres=#\password dlf// 重新设置用户dlf的密码,然后需要 \q退出后才生效
c:>psql exampledb < user.sql // 将user.sql文件导入到exampled数据库中
postgres=#\h select// 精细显示SQL命令中的select命令的使用方法
postgres=#\l// 显示所有数据库
postgres=#\dt// 显示当前数据库中的所有表
postgres=#\d [table_name]// 显示当前数据库的指定表的表结构
postgres=#\c [database_name]// 切换到指定数据库,相当于use
postgres=#\du// 显示所有用户
postgres=#\conninfo// 显示当前数据库和连接信息
postgres=#\e// 进入记事本sql脚本编辑状态(输入批命令后关闭将自动在命令行中执行)
postgres=#\di// 查看索引(要建立关联)
postgres=#\prompt [文本] 名称// 提示用户设定内部变数
postgres=#\encoding [字元编码名称]// 显示或设定用户端字元编码*可以将存储过程写在文本文件中aaa.sql,然后在psql状态下:
postgres=#\i aaa.sql// 将aaa.sql导入(到当前数据库)
postgres=#\df// 查看所有存储过程(函数)
postgres=#\df+ name// 查看某一存储过程
postgres=#select version();// 获取版本信息
postgres=#select usename from pg_user;// 获取系统用户信息
postgres=#drop User 用户名// 删除用户
--*创建数据库:
create database [数据库名];
--*删除数据库:
drop database [数据库名];
-- 选择 schema
set search_path to test_schema;
-- 删除 schema
DROP schema test_2;
--查看所有schema
SELECT * FROM information_schema.schemata;
--获取当前db中所有的表信息
select * from pg_tables;
--用户自定义的表,如果未经特殊处理,默认都是放在名为public的schema下
select tablename from pg_tables where schemaname='public';
--列出某个数据库下的某个schema下面所有的表
select * from pg_tables where schemaname = 'test_schema';
--*显示表内容:
select * from student;
--计算数值
SELECT city, (temp_lo+temp_hi)/2 AS temp_avg, date FROM weather;
--选择查看
SELECT * FROM weather WHERE city = 'San Francisco' AND prcp > 0.0;
--排序
SELECT * FROM weather ORDER BY city;
SELECT * FROM weather ORDER BY city, temp_lo;
--返回唯一值
SELECT DISTINCT city FROM weather ORDER BY city;
--*创建表:
-- create table ([字段名1] [类型1] ;,[字段名2] [类型2],......<,primary key (字段名m,字段名n,...)>;);
CREATE TABLE cities (
name varchar(80),
location point
);
--添加列;*在已有的表里添加字段:
-- alter table [表名] add column [字段名] [类型];
ALTER TABLE weather ADD country varchar(80);
--删除列
ALTER TABLE weather DROP country;
--*删除表中的字段:
alter table [表名] drop column [字段名];
--*在表中插入数据:
-- insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......);
INSERT INTO weather VALUES ('San Francisco', 46, 50, 0.25, '1994-11-27');
INSERT INTO weather (date, city, temp_hi, temp_lo) VALUES ('1994-11-29', 'Hayward', 54, 37);
--更新行
UPDATE weather
SET temp_hi = temp_hi - 2, temp_lo = temp_lo - 2
WHERE date > '1994-11-28';
--删除行
DELETE FROM weather WHERE city = 'Hayward';
--*重命名一个表:
alter table [表名A] rename to [表名B];
*重命名一个字段:
alter table [表名] rename column [字段名A] to [字段名B];
*给一个字段设置缺省值:
alter table [表名] alter column [字段名] set default [新的默认值];
*去除缺省值:
alter table [表名] alter column [字段名] drop default;
*修改表中的某行某列的数据:
update [表名] set [目标字段名]=[目标值] where [该行特征];
--清空表
DELETE FROM tablename;
--*删除一个表:
drop table [表名];
--*删除表中某行数据:
delete from [表名] where [该行特征];
delete from [表名]; // 删空整个表
--表连接
SELECT * FROM weather, cities WHERE city = name;
SELECT city, temp_lo, temp_hi, prcp, date, location FROM weather, cities WHERE city = name;
SELECT weather.city, weather.temp_lo, weather.temp_hi, weather.prcp, weather.date, cities.location FROM weather, cities WHERE cities.name = weather.city;
--内连接
SELECT * FROM weather INNER JOIN cities ON (weather.city = cities.name);
--左外连接
SELECT * FROM weather LEFT OUTER JOIN cities ON (weather.city = cities.name);
--右外连接
SELECT * FROM weather RIGHT OUTER JOIN cities ON (weather.city = cities.name);
SELECT W1.city, W1.temp_lo AS low, W1.temp_hi AS high, W2.city, W2.temp_lo AS low, W2.temp_hi AS high FROM weather W1, weather W2 WHERE W1.temp_lo < W2.temp_lo AND W1.temp_hi > W2.temp_hi;
SELECT * FROM weather w, cities c WHERE w.city = c.name;
--计算功能
--最大值
SELECT max(temp_lo) FROM weather;
--通过使用一个子查询来查询temp_lo的最大值所对应的城市
SELECT city FROM weather WHERE temp_lo = (SELECT max(temp_lo) FROM weather);
SELECT city, max(temp_lo) FROM weather GROUP BY city;
SELECT city, max(temp_lo) FROM weather GROUP BY city HAVING max(temp_lo) < 40;
SELECT city, max(temp_lo) FROM weather WHERE city LIKE 'S%' GROUP BY city HAVING max(temp_lo) < 40;
--VIEW 视图
CREATE VIEW myview AS
SELECT city, temp_lo, temp_hi, prcp, date, location
FROM weather, cities
WHERE city = name;
--#给cities表中的name列添加 primary key
zyw_test=> ALTER TABLE cities ADD PRIMARY KEY(name);
--#给weather表创建一个限制在city列上的 foreign key
zyw_test=> ALTER TABLE weather ADD FOREIGN KEY (city) REFERENCES cities(name);
在PostgreSQL中,一个表可以从0个或多个表继承,一次查询可以查询到某个表中的所有行,或者这个表和这个表所有子表的所有行,默认为后者。
–例如:下面第一个查询查到了city表中的所有行,包括capitals表中的所有行;第二个查询只查到了city表中的所有行,并不包括capitals表。
--Inheritance 继承
CREATE TABLE capitals (
state char(2)
) INHERITS (city);
--- 在PostgreSQL中,一个表可以从0个或多个表继承,一次查询可以查询到某个表中的所有行,或者这个表和这个表所有子表的所有行,默认为后者。
--例如:下面第一个查询查到了city表中的所有行,包括capitals表中的所有行;第二个查询只查到了city表中的所有行,并不包括capitals表。
SELECT name, elevation FROM city WHERE elevation > 500;
SELECT name, elevation FROM ONLY city WHERE elevation > 500;
import sqlalchemy as db
username = 'username '
password = 'password '
ip = 'IP'
port = '1035'
database_name = 'test_db'
# Create engine. Scheme: "postgres+psycopg2://<USERNAME>:<PASSWORD>@<IP_ADDRESS>:<PORT>/<DATABASE_NAME>"
engine = db.create_engine(f"postgresql+psycopg2://{username}:{password}@{ip}:{port}/{database_name}")
# # 利用getpass传入数据库密码,终端不会显示输入的密码:
# import getpass
# pw = getpass.getpass("Please enter password:")
# # create engine
# engine = create_engine(f"postgres+psycopg2://{username}:{pw}@{ip}:{port}/{database_name}")
conn = engine.connect() #连接
result = conn.execute('SELECT * FROM test_schema.weather') #执行SQL语句
print(result.fetchall()) #fetchall()返回所有元组,fetchone()返回一个元组
print(result)
conn.close() #关闭连接
参考
https://www.postgresql.org/docs/15/tutorial-table.html
PostgreSql内部命令
https://www.geeksforgeeks.org/introduction-to-psycopg2-module-in-python/
1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption
我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?
在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.
我已经找到了几个使用datamapper的示例,并且能够让它们正常工作。不过,所有这些示例都是针对sqlite数据库的。我正在尝试将数据映射器与postgresql一起使用。我将datamapper中的调用从sqlite3更改为postgres,并且我已经安装了dm-postgres-adapter。但它仍然不起作用。我还需要做什么? 最佳答案 与SQLite不同,PostgreSQL不将数据库存储在单个文件中。在你拥有createdyourdatabase之后,尝试这样的事情:DataMapper.setup:default,{:
a=[3,4,7,8,3]b=[5,3,6,8,3]假设数组长度相同,是否有办法使用each或其他一些惯用方法从两个数组的每个元素中获取结果?不使用计数器?例如获取每个元素的乘积:[15,12,42,64,9](0..a.count-1).eachdo|i|太丑了...ruby1.9.3 最佳答案 使用Array.zip怎么样?:>>a=[3,4,7,8,3]=>[3,4,7,8,3]>>b=[5,3,6,8,3]=>[5,3,6,8,3]>>c=[]=>[]>>a.zip(b)do|i,j|c[[3,5],[4,3],[7,6],
我有一个非常简单的Controller来管理我的Rails应用程序中的静态页面:classPagesController我怎样才能让View模板返回它自己的名字,这样我就可以做这样的事情:#pricing.html.erb#-->"Pricing"感谢您的帮助。 最佳答案 4.3RoutingParametersTheparamshashwillalwayscontainthe:controllerand:actionkeys,butyoushouldusethemethodscontroller_nameandaction_nam
我找到了这样的东西:Rails:Howtolistdatabasetables/objectsusingtheRailsconsole?这一行没问题:ActiveRecord::Base.connection.tables并返回所有表但是ActiveRecord::Base.connection.table_structure("users")产生错误:ActiveRecord::Base.connection.table_structure("projects")我认为table_structure不是Postgres方法。如何列出Postgres数据库的Rails控制台中表中的所有