PostgreSQL数据库

一、安装

从官网下载直接安装https://www.postgresql.org/

二、基本操作

1、mac下搜索sql shell进入命令行工具
在这里插入图片描述
windows在安装目录下 */PostgreSQL 12/SQL Shell(psql)
2、可视化界面
在这里插入图片描述
在这里插入图片描述

三、基本命令

1、查看命令帮助

\help <command_name>
例如:在这里插入图片描述

2、创建数据库

2-1、使用sql语句创建
CREATE DATABASE dbname;
在这里插入图片描述
2-2、使用createdb命令创建
createdb [option...] [dbname [description]]
在这里插入图片描述
在这里插入图片描述
使用pgadmin查看数据库
在这里插入图片描述
用命令行查看\l
在这里插入图片描述

3、选择数据库

\c + 数据库名
在这里插入图片描述

4、删除数据库

DROP DATABASE [ IF EXISTS ] name
在这里插入图片描述
如果出现如下报错说明有别的用户在占用数据库,要谨慎删除

postgres=# drop database if exists test01;                                      ERROR:  database "test01" is being accessed by other users
DETAIL:  There is 1 other session using the database.

解决办法:先运行如下命令再删除

SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname='test01' AND pid<>pg_backend_pid();
# test01换成自己要删除的数据库

使用命令删除
dropdb [connection-option...] [option...] dbname dropdb 命令只能由超级管理员或数据库拥有者执行。
在这里插入图片描述

5、创建表格

语法格式:

CREATE TABLE table_name(
   column1 datatype,
   column2 datatype,
   .....
   columnN datatype,
   PRIMARY KEY( 一个或多个列 )
);

创建一个学生表:

CREATE TABLE stu
(
    id integer NOT NULL,
    name text COLLATE pg_catalog."default" NOT NULL,
    age integer not null
);
6、查看表

\d
在这里插入图片描述
查看表结构
\d tablename
在这里插入图片描述

7、删除表

DROP TABLE table_name;

8、插入数据

语法格式:

插入一条数据
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
插入多条数据
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value11, value21, value31,...valueN1),
       (value12, value22, value32,...valueN2),
       ....
       (value1M, value2M, value3M,...valueNM);

向表中插入数据:

insert into stu (id, name, age)
values (1, 'xiaowang', 15);

insert into stu (id, name, age)
values (2, 'xiaohong', 22),
       (3, 'dawang', 19),
       (4, 'laowang', 78);

在这里插入图片描述

9、查看表数据

语法格式(与mysql相似)
SELECT column1, column2,...columnN FROM table_name WHERE 表达式;

select * from stu;
select name,age from stu;
select * from stu where name='laowang';
select * from stu where age>22;

在这里插入图片描述
在这里插入图片描述

10、and和or运算符

先向表中插入多点数据:

insert into stu (id, name, age)
values (5, 'zhangsan', 18),
       (6, 'lisi', 19),
       (7, 'wangwu', 78);

AND 运算符表示一个或者多个条件必须同时成立。

SELECT column1, column2, columnN
FROM table_name
WHERE [condition1] AND [condition2]...AND [conditionN];

查找id>5且age=78的同学

select * from stu where id>5 and age=78;

在这里插入图片描述
查找id>5或age=78的同学

select * from stu where id>5 or age=78;

在这里插入图片描述

11、like字句查询

在 LIKE 子句中,通常使用通配符模糊查询,主要有以下两种通配符:
百分号 % 表示任意个任意字符
下划线 _ 表示一个任意字符
语法格式:

SELECT FROM table_name WHERE column LIKE 含有通配符的表达式;
查询名字里带有wang的同学
select * from stu where name like '%wang%';
查询名字以wang结尾的同学
select * from stu where name like '%wang';
查询名字里第二个字母时i的同学
select * from stu where name like '_i%';

在这里插入图片描述

12、order by

ORDER BY 用于对一列或者多列数据进行升序(ASC)或者降序(DESC)排列。
语法格式:

SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];

查询结果按年龄排序

升序(默认)
select * from stu order by age;
降序
select * from stu order by age desc;

在这里插入图片描述

13、group by分组

语法格式:

SELECT column-list
FROM table_name
WHERE [ conditions ]
GROUP BY column1, column2....columnN

按年龄分组:

select * from stu group by age;

在这里插入图片描述

按年龄分组并计算同龄人的数量:

select age, count(*) as num from stu group by age;

在这里插入图片描述

14、更新表数据

语法格式:

UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];

修改xiaohong的年龄为18岁
在这里插入图片描述

15、删除数据

DELETE FROM table_name WHERE [condition];
删除dawang

delete from stu where name='dawang';

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值