基础语法
数据库管理操作
连接到数据库,在命令行输入:
psql -U postgres后再输入密码创建数据库:
create database mydb;修改数据库名称:
alter database mydb to mydb1;删除数据库:
drop database mydb;查看所有数据库:
\l切换到指定数据库:
\c mydb创建表:
sqlCREATE TABLE stu ( id SERIAL PRIMARY KEY, name VARCHAR(100), email VARCHAR(100), age INTEGER );修改字段名:
alter table stu rename id to myid;把stu表中字段id改为myid删除字段:
alter table stu drop column name;删除stu表中name的字段添加字段:
alter table stu add column name varchar(20);添加stu表中name的字段修改字段类型:
alter table stu alter column name type varchar(40);删除表:
drop table stu;查看当前数据库中的所有表:
\d查看表结构:
\d 表名插入数据:
insert into stu(name) values('xiaoming');插入整条完整的数据:
insert into stu values (1,'xiaogang','2022-10-10',NULL);指定字段插入数据:
insert into stu (id,name) values('2','xiaohong');SELECT批量插入- 将表数据插入到新表中:
insert into test select * from stu;把表stu的数据插入到test表中 - 指定字段批量插入:
insert into test (id,name) select id, name from stu;
- 将表数据插入到新表中:
更新/修改数据:
update stu set name='xiaohong' where id=1;删除数据:
delete from stu where id=1;删除
id在1到3之间的表数据:delete from stu where id between 1 and 3;清空数据表:
delete from stu;表还在,只是没有数据了查询表:查询所有字段:
select * from stu;指定字段查询:
select id, name from stu;In关键字查询:查询id为1,3,5的成员:select id, name from stu where id in (1,3,5);between and关键字查询,范围之间:select id, name from stu where birthday between '2020-10-10' and '2024-10-10';模糊查询:查询所有姓张的用户:
select id, name from test where name like '张%';
数据类型
数值数据类型:常用
int字符串数据类型:常用
char(size,varchar(size)日期/时间数据类型:常用
timestamp:日期和时间:2023-09-25 10:45:30
data:日期:2023-09-25
time:时间:10:45:30
相关函数
数值函数
| 函数 | 描述 |
|---|---|
avg() | 返回某列的平均值 |
count() | 返回某列的行数 |
max() | 返回某列的最大值 |
min() | 返回某列的最小值 |
sum() | 返回某列的值之和 |
调用方式:select 函数(字段名)from 表名;
字符串函数
| 函数 | 描述 |
|---|---|
length(s) | 计算字符串长度 |
concat(s1,s2) | 字符串合并 |
调用方式:select 函数(字段名)from 表名;
日期时间函数
| 函数 | 描述 |
|---|---|
now() | 获取当前日期时间函数 |
current_date | 获取当前日期函数 |
current_ time | 获取当前时间函数 |
extract(type from d) | 获取日期指定值函数 |
函数部分具体可以参考Mysql笔记中的函数部分
PostgreSQL模式(Schema)
使用Schema可以使多个用户使用一个数据库而不互相干扰,我们登陆默认是在public这个模式下,是数据库对象的一个集合
Schema模式的好处:
- 允许多个用户使用一个数据库而不会干扰其它用户
- 把数据库对象组织成逻辑组,让它们更便于管理
- 第三方的应用可以放在不同的模式中,这样它们就不会和其它对象的名字冲突
表空间是实际的数据存储的地方,一个数据库schema可能存在于多个表空间,相似地,一个表空间也可以为多个schema服务。通过使用表空间,管理员可以控制磁盘的布局。表空间的最常用的作用是优化性能,例如,一个最常用的索引可以建立在非常快的硬盘上,而不太常用的表可以建立在便宜的硬盘上,比如用来存储用于进行归档文件的表
我们可以创建其他模式:create schema my123;
为所有模式创建一个表:create table test(id int, name varchar(20));
执行上述代码后,就多了一个模式my123,同时所有模式下都有表test