快速上手postgresql

postgresql

公司放弃了mysql使用postgresql,入个门,和前面一样还是postgres和pgadmin都是部署在docker中,操作很方便。

1. 常用操作

创建一个数据库

createdb  name

进入数据库

> psql name

创建一个表

> create table name(title varchar(255),con text)

查看表描述,看表详细信息

> \dt  

查看表结构

> \d name

退出

> \q

docker环境启动POSTGRESQL并导入SQL文件

​ 要先sql文件拷贝到容器中

> docker cp db.sql 5159e148fbd0:/

​ 然后在执行

进入数据库执行
> \i db.sql

不用进入
若是执行的命名只是创建用户,编辑用户,创建数据库的话可以不指定-d参数。
> psql -U username -d myDataBase -a -f db.sql

如果是远程数据库加入-h参数指定主机地址即可
> psql -h host -U username -d myDataBase -a -f db.sql

删除表

> drop table posts;

删库

dropdb  name

​ 删除时候有链接就断开其他链接。

SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE datname='kom' AND pid<>pg_backend_pid();

2. 字段类型

  • 数值型:
    • integer(int) 整型
    • real 浮点型
    • serial 序列性----->自增序列
  • 文字型:
    • char
    • varchar
    • text 大文本
  • 布尔型:
    • boolean
  • 日期型:
    • date 年月日
    • time 时分秒
    • timestamp 年月日时分秒
  • 特色类型:
    • Array 数组型
    • 网络地址型(inet) ip地址
    • JSON型
    • XML型

3. 添加表约束

create table posts (
    id serial primary key,
    title varchar(255) not null,
    content text check(length(content) > 8),
    is_draft boolean default TRUE,
    is_del boolean default FALSE,
    created_date timestamp default 'now'
);

-- 说明
/*
约束条件:
not null:不能为空
unique:在所有数据中值必须唯一
check:字段设置条件
default:字段默认值
primary key(not null, unique):主键,不能为空,且不能重复
*/

4.常用sql操作

select * from users limit 1 OFFSET 5; 从5开始取一个

其他的查询都符合sql语法

5.函数

> select player, length(player) from users;
> select player, concat(player, '/', team) from users;
> select player, concat(player, '/', team) as "球员信息" from users;
> select substring(team, 1, 1) as "球队首文字" from users;
> select concat('我', substring(team, 1, 1)) as "球队首文字" from users;
> select random();
> select * from users order by random(); --打乱表
> select * from users order by random() limit 1; --打乱表取第一个

6.表结构的变更

添加表字段
> alter table users add fullname varchar(255);
删除表字段
> alter table users drop fullname;
更换字段名
> alter table users rename player to nba_player;
更改字段大小
> alter table users alter nba_player type varchar(100);
添加索引
> create index nba_player_index on users(nba_player);
删除索引
> drop index nba_player_index;

7.使用视图

视图就是一个SELECT语句,把业务系统中常用的SELECT语句简化成一个类似于表的对象,便于简单读取和开发。

> select u.player, t.content from users as u, twitters as t where u.id = t.user_id and u.id = 1;
创建视图
> create view curry_twitters as select u.player, t.content from users as u, twitters as t where u.id = t.user_id and u.id = 1;

> \d curry_twitters
> select * from curry_twitters;
删除视图
> drop view curry_twitters;

8.事务

> select * from users;

> begin;
> update users set score = 50 where player = '库里';
> update users set score = 60 where player = '哈登';
> commit;

> select * from users;

> begin;
> update users set score = 0 where player = '库里';
> update users set score = 0 where player = '哈登';
> rollback;

> select * from users;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值