美文网首页
postgreSQL - 学习笔记

postgreSQL - 学习笔记

作者: 自走炮 | 来源:发表于2020-08-08 01:11 被阅读0次
  • 增删改查
  • 字段 索引 视图 事务

增删改查

$ sudo apt-get install postgresql # 安装

$ sudo su postgres # 切换用户到 postgres,系统管理员

$ psql -l # 显示所有数据库
$ createdb komablog # 系统命令,建立数据库
$ dropdb komablog # 系统命令,删除数据库

$ psql komablog # 切换到数据库
> \l # 列表
> \q # 退出

> select now(); # 数据库时间,版本 version()

> create table posts (title varchar(255), content text); # 创建表
> alter table posts rename to komaposts; # 改名
> drop table komaposts; # 删除表

> \dt # 当前数据库的所有表
> \dv # 当前数据库的所有视图
> \d posts # 指定表的所有字段

> \i db.sql # 导入 sql 文件,内容 sql 命令如 create table posts...
-- 建表约束
create table users (
    id serial primary key, -- primary key 相当于 not null 和 unique,即主键
    player varchar(255) not null, score real, team varchar(255),
    content text check(length(content) > 8), -- check 字段条件
    created_date timestamp default 'now' -- default 字段默认值
);

insert into users (player, score, team) values ('库里', 28.3, '勇士'), ('哈登', 30.2, '火箭');

select * from users; -- /x 切换横向纵向显示
select player, score from users where score > 20 and score < 30 and team != '勇士';
select * from users where player like '_阿%'; -- _ 为 1 个字符,% 为 1 个或多个字符

-- order by 按某字段排序(默认正序)
-- limit 取前排结果
-- offset 跳过前排结果
select * from users order by team, score desc limit 3 offset 4;

-- 过滤重复数据
select distinct team from users;
-- 和
select sum(score) from users;
-- 最大最小
select * from users where score = (select max(score) from users);
-- having 相当于 where
select team, max(score) from users group by team having max(score) >= 25 order by max(score);

-- 字符串长度 length()
-- 连接 concat()
-- 截取 substring()
-- 随机排序 random(),as 为别名
select player, length(player), concat(player, '/', team) as '球员信息', substring(team, 1, 1) as '球队首文字' from users order by random() limit 1;

update users set score = score + 100 where team in ('勇士', '骑士');

-- 物理删除
delete from users where score > 30;

-- 外联
select u.player, t.content from users as u, twitters as t where u.id = t.user_id and u.id = 1;

字段 索引 视图 事务

alter table users add fullname varchar(255); -- 添加字段
alter table users drop fullname; -- 删除字段
alter table users rename player to nba_player; -- 段名改名,rename to 为表改名
alter table users alter nba_player type varchar(100); -- 字段改类型

create index nba_player_index on users(nba_player); -- 添加索引
drop index nba_player_index; -- 删除索引

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; -- 添加视图,create view as 后为 select 语句
select * from curry_twitters; -- 显示视图
drop view curry_twitters; -- 删除视图

begin; /* 增删改查操作 */ commit; -- 事物执行
begin; /* 增删改查操作 */ rollback; -- 事物回滚

相关文章

网友评论

      本文标题:postgreSQL - 学习笔记

      本文链接:https://www.haomeiwen.com/subject/dljgrktx.html