几个PostgreSQL数据库操作总结
创建表
语法:如下
create table table_name (column_name column_type(parametes)options,…);
注意:
⑴ SQL语句对大小写不敏感
⑵ 通常忽略空白—应该使用空白使SQL命令具有更好的可读性。
⑶ 表名和字段不能和SQL的保留字相同
一下示例师范如何创建表cd_collection:
create table cd_collection
(
id int not null,
title varchar(50) not null,
artist varchar(50) not null,
year varchar(50) not null,
rating varchar(50) not null
);
向表中插入数据
语法:如下
按数据库表中列的顺序插入
insert into table_name values(‘value1’, ‘value2’, ‘value3’, …);
不按数据库表中列的顺序出入(特殊插入)
insert into table_name values(column1, column4) values (‘value1’, ‘value2’);
在一条insert语句中填入多行数据,使用如下语法
insert into table_name values(‘value1’, ‘value2’), (‘value3’, ‘value4’);
Notice: value1 and value2 inserted into first column, value3 and value4 inserted into second column.
insert into cd_collection values(9, ‘Nevermind’, ‘ ’Nirvana’, ‘1991’, ’ ’NULL);
如果处于中间位置的列为空,则需要在insert 语句中显式声明为NULL.
从数据库中检索数据
select column1, column2, column3 from table_name where search_criteria;
column1, column2, column3 表明需要返回的列的列名。
如果需要返回所有列,则可以使用通配符*来显示 匹配搜索条件的所有列。
select * from cd_collection;
select title from cd_collection;
select title, year from cd_collection;
select (title||” (“||year||”) ”) as titleyear from cd_collection;
select * from cd_collection where rating =5;
select * from cd_collection where rating =5 and year!=2003;
启动postmaster:
$postmaster –D /usr/local/pgsql/data &
在PostgreSQL中创建数据库
在shell提示符下发出如下命令:
#su – postgres
$createdb database #在不登陆和不使用psql的情况下创建数据库
#create database testdatabase; #在psql里创建数据库
$psql testdatabase; #启动psql程序并链接到testdatabase数据库
在命令行下切换数据库
$\c database_name
在postgres用户下创建允许访问数据库的用户或创建多个新的数据库用户
$createuser pgtest (with password)
y
y
用postgres用户在命令行创建数据库用户
psql testdatabase
create user pgtest(with password);
删除数据库用户
$dropuser pgtest
也可以使用psql登陆到数据库,然后使用drop user 命令
$psql testdatabase
testdatabase=# drop user pgtest;
testdatabase=#\q
在PostgreSQL中授予和撤销特权:GRANT 和 REVOKE语句实现
以下是GRANT语句的语法:
GRANT what_to_grant ON where_to_grant TO user_name;
下面的语句在数据库testdatabase上授予用户pgtest所有的特权
GRANT ALL ON testdatabase TO pgtest;
撤销特权
REVOKE ALL ON testdatabase FROM pgtest;
PostgreSQL命令行客户端
psql可以接受若干参数
-h hostname 链接远程主机hostname(如果数据库服务器不位于本地系统上)
-p n 指定n为客户端应当连接到的端口号。注意这里是小写的p
-U username 以用户username连接数据库
-W 在链接数据库后提示输入口令。
-? 显示帮助消息
几个PostgreSQL数据库操作总结的更多相关文章
- PostgreSQL 数据库备份与恢复 pd_dump pg_restore
备份 PG 数据库生成的文件可以有两种,一种是 SQL 文件,一种是二进制文件,二进制文件只能使用 pg_restore 进行恢复. PostgreSQL 数据库操作简要说明 PostgreSQL数据 ...
- postgresql数据库安装及简单操作
自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据库的首选. 本文介绍PostgreSQL的安装和基本用法,供初次使用者上手.以下内容基于Debian操作系统,其他操作系 ...
- hibernate 操作 Postgresql 数据库报 operator does not exist: integer = character varying
网上的说法如下: Java开发Postgresql 数据库兼容应用的问题,与Oracle有一些不同: Java类型映射数据库类型的不同,Oracle jdbc驱动程序处理Java String类型可正 ...
- C#/Python/MATLAB操作PostgreSQL数据库
PostgreSQL数据库是一个功能非常强大的开源数据库,支持多种SQL特性,非常好用.此外由于结合PostGIS可以实现空间数据库功能,故非常适合GIS领域的使用.本文旨在介绍C#.Python.M ...
- Python 操作 PostgreSQL 数据库
我使用的是 Python 3.7.0 PostgreSQL可以使用psycopg2模块与Python集成. sycopg2是用于Python编程语言的PostgreSQL数据库适配器. psycopg ...
- postgresql数据库学习-win平台下SQLshell基础操作及语法
由于在学习https://www.bilibili.com/video/av24590479小马视频时, up主采用的linux虚拟机进行教学, 而本人采用window7进行操作,故在基础操作和语法上 ...
- 数据库操作之Spring JDBCTemplate(postgresql)
本文总结了两种使用JDBCTemplate进行数据库CRUD操作的例子,我用的是pg,废话不说,直接开始吧. 先贴一张目录结果图吧: 上图中最主要的是配置文件和所需的各种jar包. 一.通过属性文件的 ...
- [转载]php连接postgreSQL数据库及其操作(php5,postgreSQL9)
数据库连接:dbconn.php<?php$conn = pg_connect("host=localhost port=5432 dbname=myd user=postgres p ...
- 访问GitLab的PostgreSQL数据库,查询、修改、替换等操作
1.登陆gitlab的安装服务查看配置文件 cat /var/opt/gitlab/gitlab-rails/etc/database.yml production: adapter: postgre ...
随机推荐
- Distinctive Image Features from Scale-Invariant
http://nichol.as/papers/Lowe/Distinctive Image Features from Scale-Invariant.pdf Abstract This paper ...
- Java中常用的内存区域
在Java中主要存在4块内存空间,这些内存空间的名称及作用如下. 1. 栈内存空间: 保存所有对象名称(更准确的说是保存了引用的堆内存空间的地址). 2. 堆内存空间: 保存每个对象的具体属性内容 ...
- 智能手机,医疗诊断,云会议(gotomeeting/citrix)
在诊断领域已出现很多大有希望的创新,它们可能会起到真正的变革作用. 例如,有一种新技术可以让健康护理工作者用一部智能手机拍摄高质量的视网膜图像.这些数码照片像素很高,足以帮助检测白内障.黄斑退化.糖尿 ...
- MySQL- 锁(2)
InnoDB行锁实现方式 InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点MySQL与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的.InnoDB这种行锁实现特点意味着:只有 ...
- Python 与 meta programming
meta programming: 编写能改变语言语法特性或者运行时特性的程序 Meta- 这个前缀在希腊语中的本意是「在…后,越过…的」,类似于拉丁语的 post-,比如 metaphysics 就 ...
- 【Android测试】【第二节】性能——CPU时间片
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5143192.html 前言 第一节讲CPU的时候留下了一个 ...
- 【Android开发学习笔记】【高级】【随笔】插件化——Activity生命周期
前言 如同第一章我们说的,宿主程序通过 dexclassloader 将插件的类加载进来,然后通过反射去调用它的方法,这样Activity就被当成了一个普通的类来执行了,因此系统不再接管它的生命周期, ...
- js严格模式“use strict”
js的严格模式会放弃js中的一些不正规的写法,参考 http://www.cnblogs.com/God-Shell/p/3139329.html: 使用声明"use strict&quo ...
- highchat中的category编程object问题
设置highchart时的category时我是动态赋值的形式category=cat;cat是['title','title']是X轴的坐标显示但当单击chat的图例时X轴变成了object: ca ...
- PMP--可能会涉及到的计算题
一.进度管理里的历时三点估算历时的三点估算可能会出现在进度管理的计算题里.以下公式,大家要记住:说一下历时的三点估算中的几个值:1.最有可能的历时估算:Tm2.最乐观的历时估算: To3.最悲观的历时 ...