postgresql入门笔记
程序员文章站
2024-03-21 10:30:46
...
简介:postgresql数据库与mysql在操作数据方面很多都是一样的,只是在少数个别出有不同,只要你熟练使用mysql数据库,postgresql对你来说就是小菜一碟。
1)
登录
命令:psql -h 172.16.35.179 -U username -d dbname
然后输入用户的密码即可进入psql环境。
切换数据库
\c dbname username serverIP port
数据库必选,其他参数可选
查看帮助
help
注意:psql的命令多数是以 \ 开始的
显示所有的数据库 :
mysql: show databases
psql: \l或\list
数据库切换
mysql: use dbname
psql: \c dbname
数据库下的所有表
mysql: show tables
psql: \d
表所有字段
mysql: show columns from table name
psql: \d tablename
表描述
mysql: describe tablename
psql: \d+ tablename
登录退出
mysql: quit 或者\q
psql:\q
二)
数据类型:
特殊类型:json,jsonb (后面会讲解)
数值数据类型:smallint,integer,bigint,decimal,numeric,real,double,serial,bigserial。
字符串数据类型:char(size),character(size),varchar(size),character,varying(size),text
日期/时间数据类型:timestamp [ (p) ] [不带时区 ],timestamp [ (p) ]带时区,date,time [ (p) ] [ 不带时区 ],time [ (p) ] 带时区,interval [ fields ] [ (p) ]
其他:boolean,money,point,line,lseg,box,path,polygon,circle
3)
数据库(表)
创建数据库:CREATE DATABASE database_name;
删除数据库:drop database database_name
创建表:
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY( one or more columns )
);
删除表:drop table table_name
创建模式:模式(也叫架构)是指定的表集合。 它还可以包含视图,索引,序列,数据类型,运算符和函数。
CREATE SCHEMA myschema
删除制定架构的表
DROP TABLE myschema.tb_test
4)
查询插入更新删除数据,(与mysql操作一致)
插入:
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
更新:
UPDATE table_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];
删除:
DELETE FROM table_name WHERE [condition];
查询:
SELECT "column1", "column2".."column" FROM "table_name";
....
4)
json.jsonb 详解
1)json存储快,使用慢; 存的时候不做处理,使用时再解析
2)jsonb存储稍慢,存储时就做了解析,使用时速度较快
3)两者的部分函数很相似,稍有区别
操作符:->,->>,#>,#>>区别不大,只是返回的数据类型不同,->,#>返回json,而->>,#>>返回文本text
-> // 右边传入整数(针对纯数组)
例: select '[{"a":"foo"},{"b":"bar"},{"c":"baz"}]'::json->2 // 输出 {"c":"baz"}
-> // 右边传入键值(针对关联数组)
例: select '{"a": {"b":"foo"}, "c":{"a": "aaa"}}'::json->'a' // 输出 {"b":"foo"}
->> // 右边传入整数(针对纯数组)
例: select '[{"a":"foo"},{"b":"bar"},{"c":"baz"}]'::json->>2 // 输出 {"c":"baz"}
->> // 右边传入键值(针对关联数组)
例: select '{"a": {"b":"foo"}, "c":{"a": "aaa"}}'::json->>'a' // 输出 {"b":"foo"}
#> // 获取json子对象,传入数组,返回json
例: select '{"a": {"b":{"c": "foo"}}}'::json#> '{a,b}' // 输出 {"c": "foo"}
#>> // 获取json子对象并转换为文本
例: select '{"a": {"b":{"c": "foo"}}}'::json#>> '{a,b}' // 输出 {"c": "foo"}
相关函数:
json_each 和 jsonb_each , json_array_elements 和 jsonb_array_elements 。
json_object_keys // 返回json的键(多层只返回第一层),该函数不能用于纯数组.
json_array_elements // 提取转换纯数组元素
json_extract_path // 返回JSON值所指向的某个键元素(相当于 #> 操作符),该函数不能直接操作纯数组。
array_to_json //把数组json转换为数组 ,参数可以直接写表名称
row_to_json 把一行数据按Json字符串形式返回
to_json 就是字符串,但是要加类型 'Fred said "Hi"'::text
json_array_length 获取数组的长度
json_each 遍历json数据
json_each_text 遍历json数据,值类型是text
json_populate_recordset 将json数据转化为表
```
推荐阅读
-
openstack安装笔记 keystone(一) 博客分类: linuxopenstack openstack
-
PostgreSQL psql 终端命令
-
PostgreSQL-psql命令
-
【psql】PostgreSQL常用指令
-
java 备份、还原postgresql数据库
-
postgresql入门笔记
-
Mina入门:Java NIO框架Mina、Netty、Grizzly介绍与对比 博客分类: Java NIOmina入门 minanettygrizzlyjava nio框架
-
PostgreSQL psql继承
-
postgresql数据库备份还原
-
002 备份与还原数据库(postgresql)