PostgreSQL常用语法总结
PostgreSQL常用语法总结。
PostgreSQL常用语法总结
一、数据库连接
Psql -h IP -p PORT -U 用户名 -d 数据库名
以湖北电信postgresql为例:PostgreSQL 12.3
xxxx_test/Hb_xxxx2023
122.xxx.xxx.xxx:5432
psql -h 122.xxx.xxx.xxx -p 5432 -U xxxx_test -d xxxx_test
二、数据库操作
2.1 创建数据库
CREATE DATABASE dbname;
2.2 选择数据库
使用 \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 + 数据库名 来进入数据库:
postgres=# \c runoobdb
You are now connected to database "runoobdb" as user "postgres".
runoobdb=#
2.3 删除数据库
DROP DATABASE 会删除数据库的系统目录项并且删除包含数据的文件目录。
DROP DATABASE 只能由超级管理员或数据库拥有者执行。
DROP DATABASE 命令需要在 PostgreSQL 命令窗口来执行,语法格式如下:
DROP DATABASE [ IF EXISTS ] name
参数说明:
• IF EXISTS:如果数据库不存在则发出提示信息,而不是错误信息。
• name:要删除的数据库的名称。
例如,我们删除一个 runoobdb 的数据库:
postgres=# DROP DATABASE runoobdb;
三、表操作
3.1 创建表
CREATE TABLE 语法格式如下:
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY( 一个或多个列 )
);
3.2 查看表
我们可以使用 \d 命令来查看表格是否创建成功:
runoobdb=# \d
List of relations
Schema | Name | Type | Owner
--------+------------+-------+----------
public | company | table | postgres
public | department | table | postgres
(2 rows)
3.4 删除表
DROP TABLE table_name;
3.5 删除表数据
truncate table table_name;
3.6 修改表结构
1. 修改表名
alter table tbl_userrename tbl_user2;
2. 添加约束
altertable 表名 add constraint 表名_列名_nncheck (is not null);
3. 修改约束
alter table tbl_user modify password default'000000' not null;
4. 增加字段
alter table tab_gw_device add dev_sub_sn VARCHAR(6);
在指定列后增加字段
alter table tbl_useradd age number(3) default 18 not null after sex;
5. 修改字段
ALTER TABLE table_name ALTER column_name TYPE datatype;
6. 修改列名
alter table tbl_user rename column password to pwd;
7. 删除列
ALTER TABLE table_name DROP COLUMN column_name;
四、schema操作
PostgreSQL 模式(SCHEMA)可以看着是一个表的集合。
一个模式可以包含视图、索引、数据类型、函数和操作符等。
相同的对象名称可以被用于不同的模式中而不会出现冲突,例如 schema1 和 myschema 都可以包含名为 mytable 的表。
使用模式的优势:
• 允许多个用户使用一个数据库并且不会互相干扰。
• 将数据库对象组织成逻辑组以便更容易管理。
• 第三方应用的对象可以放在独立的模式中,这样它们就不会与其他对象的名称发生冲突。
模式类似于操作系统层的目录,但是模式不能嵌套。
4.1 创建schema
接下来我们连接到 runoobdb 来创建模式 myschema:
runoobdb=# create schema myschema;CREATE SCHEMA
输出结果 "CREATE SCHEMA" 就代表模式创建成功。
4.2 删除Schema
删除一个为空的模式(其中的所有对象已经被删除):
DROP SCHEMA myschema;
删除一个模式以及其中包含的所有对象:
DROP SCHEMA myschema CASCADE;
五、DML语句
遵循标准的DML语句规范。
5.1 LIMIT语句
1. 读取几条数据
SELECT column1, column2, columnN
FROM table_name
LIMIT [no of rows]
下面实例将找出限定的数量的数据,即读取 4 条数据:
runoobdb=# SELECT * FROM COMPANY LIMIT 4;
得到以下结果:
id | name | age | address | salary
----+-------+-----+-------------+--------
1 | Paul | 32 | California | 20000
2 | Allen | 25 | Texas | 15000
3 | Teddy | 23 | Norway | 20000
4 | Mark | 25 | Rich-Mond | 65000
(4 rows)
2. 读取一定范围内条数的数据
SELECT column1, column2, columnN FROM table_name LIMIT [no of rows] OFFSET [row num]
下面是一个实例,从第三位开始提取 3 个记录:
runoobdb=# SELECT * FROM COMPANY LIMIT 3 OFFSET 2;
得到以下结果:
id | name | age | address | salary
----+-------+-----+-----------+--------
3 | Teddy | 23 | Norway | 20000
4 | Mark | 25 | Rich-Mond | 65000
5 | David | 27 | Texas | 85000
(3 rows)
六、索引操作
6.1 创建索引
1. 单列索引
CREATE INDEX index_name ON table_name (column_name);
2. 组合索引
CREATE INDEX index_name ON table_name (column1_name, column2_name);
3. 惟一索引
CREATE UNIQUE INDEX index_name on table_name (column_name);
6.2 删除索引
DROP INDEX index_name;
6.3 查询索引
使用\di来查看索引。
runoobdb=# \di
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)