- 建立数据库并进入
- createdb [db_name]
- psql [db_name]
- 进入数据库并打开psql命令行模式
- drop [db_name]
- psql命令行模式
- psql --version
- psql -l
- 查看数据库信息
- help
- 帮助文档
- \h
- sql 命令说明
- \?
- psql 命令说明
- \l
- 当前数据库一览表
- 创建表格
- 使用命令行
- create table posts (title varchar(255), content text);
- 使用 sql 文件
- 写一个sql文件
- nano db.sql
- vim 也可
- 执行
- \i db.sql
- psql命令
- \dt
- 表一览
- \d [table_name]
- 某表详细信息
- drop table [table_name]
- alter
- 更改表格信息
- alter table posts rename to komaposts;
- 字段类型
- * 数值型:
- + integer(int)
- + real
- + serial
- * 文字型:
- + char
- + varchar
- + text
- * 布尔型:
- + boolean
- * 日期型:
- + date
- + time
- + timestamp
- * 特色类型:
- + Array
- + BS网络地址型(inet)
- + JSON型
- + XML型
- 表字段的约束条件(sql文件例子)
- 增删查改
- 增
- 删
- 查
- 改
- where 和 like
- 使用where语句来设定select,update,delete语句数据抽出的条件。
- 数据抽出选项
- 统计抽出数据
~~~sql
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):主键,不能为空,且不能重复
*/
~~~
* insert into [tablename] (field, ...) values (value, ...)
insert into posts (title, content) values ('', '');
* delete from [table] where ...
delete from users where score > 30;
* select 基本使用
select * from users;
select player, score from users;
* update [table] set [field=newvalue,...] where ...
update users set score = score + 100 where team IN ('勇士', '骑士');
> select * from users where team = '勇士';
> select * from users where team != '勇士';
> select * from users where player like '阿%';
> select * from users where player like '阿_';
% 指多个任意符号 _ 指一个任意符号
* order by
* limit
* offset
> select * from users order by team desc, score desc;
> select * from users order by score desc limit 3;
* distinct
* sum
* max/min
* group by/having
> select distinct team from users;
> select sum(score) from users;
> select max(score) from users;
> select min(score) from users;
> select * from users where score = (select max(score) from users);
> select * from users where score = (select min(score) from users);
> select team, max(score) from users group by team;
> select team, max(score) from users group by team having max(score) >= 25;
> select team, max(score) from users group by team having max(score) >= 25 order by max(score);
参考来源: gitee.com/komavideo/L…