几个PostgreSQL数据库操作总结

时间:2023-03-09 03:10:31
几个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                                在链接数据库后提示输入口令。

-?                                  显示帮助消息