postgresql基础(1)

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