PostgreSQL数据库操作指令
-
创建数据库
createdb [option...] [dbname [description]]; CREATE DATABASE dname; #命令行模式: $ cd /Library/PostgreSQL/11/bin/ $ createdb -h localhost -p 5432 -U postgres student password ******
-
选择数据库
使用 \l 用于查看已经存在的数据库:
postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+---------+-------+----------------------- postgres | postgres | UTF8 | C | C | runoobdb | postgres | UTF8 | C | C | template0 | postgres | UTF8 | C | C | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C | C | =c/postgres + | | | | | postgres=CTc/postgres (4 rows)
使用
\c dname
来进入数据库在系统命令行查看:
$ psql -h localhost -p 5432 -U postgress runoobdb
-
删除数据库
PostgreSQL 删除数据库可以用以下三种方式:
- 1、使用 DROP DATABASE SQL 语句来删除。
- 2、使用 dropdb 命令来删除。
- 3、使用 pgAdmin 工具。
DROP DATABASE [ IF EXISTS ] name #IF EXISTS:如果数据库不存在则发出提示信息,而不是错误信息。 dropdb [connection-option...] [option...] dbname #dropdb 是 DROP DATABASE 的包装器 #命令行 $ cd /Library/PostgreSQL/11/bin/ $ dropdb -h localhost -p 5432 -U postgres runoobdb password ******
-
创建表格
CREATE TABLE table_name( column1 datatype, column2 datatype, column3 datatype, ..... columnN datatype, PRIMARY KEY( 一个或多个列 ) );
CREATE TABLE 是一个关键词,用于告诉数据库系统将创建一个数据表。
表名字必需在同一模式中的其它表、 序列、索引、视图或外部表名字中唯一。
CREATE TABLE 在当前数据库创建一个新的空白表,该表将由发出此命令的用户所拥有。
CREATE TABLE DEPARTMENT( ID INT PRIMARY KEY NOT NULL, DEPT CHAR(50) NOT NULL, EMP_ID INT NOT NULL );
我们可以使用 \d 命令来查看表格是否创建成功
\d tablename 查看表格信息:
数据表 "public.department" 栏位 | 类型 | Collation | Nullable | Default --------+---------------+-----------+----------+--------- id | integer | | not null | dept | character(50) | | not null | emp_id | integer | | not null |
-
删除表格
DROP TABLE table_name; 【例】 runoobdb=# drop table department, company; DROP TABLE
-
模式(SCHEMA)
PostgreSQL 模式(SCHEMA)可以看着是一个表的集合。
一个模式可以包含视图、索引、数据类型、函数和操作符等。
CREATE SCHEMA myschema.mytable ( ... ); 【例】 student=# create schema myschema; CREATE SCHEMA student=# create schema myschema; CREATE SCHEMA student=# create table myschema.company( student(# ID INT NOT NULL, student(# NAME VARCHAR(20) NOT NULL, student(# AGE INT NOT NULL, student(# ADDRESS CHAR(25), student(# SALARY DECIMAL(18,2), student(# PRIMARY KEY(ID)) student-# ; CREATE TABLE student=# select * from myschema.company; id | name | age | address | salary ----+------+-----+---------+-------- (0 行记录)
删除模式
DROP SCHEMA myschema; DROP SCHEMA myschema CASCADE;
-
INSERT INTO语句
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN); #在使用 INSERT INTO 语句时,字段列必须和数据值数量相同,且顺序也要对应。 【例1】插入数据 student=# INSERT INTO COMPANY(ID,NAME,AGE,ADDRESS,SALARY) student-# VALUES(1,'PAUL', 32, 'California', 20000.00); INSERT 0 1 【例2】插入多行 student=# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 ), (5, 'David', 27, 'Texas', 85000.00); INSERT 0 2
#显示数据 student=# SELECT * FROM company; id | name | age | address | salary ----+-------+-----+----------------------------------------------------+-------- 1 | PAUL | 32 | California | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 (3 行记录)