美文网首页
PostgreSql基本操作

PostgreSql基本操作

作者: nnnnzyx | 来源:发表于2019-10-01 18:17 被阅读0次

    PostgreSql安装

    • apt-cache show postgresql:查看ubuntu可安装版本信息

    • sudo apt-get install postgresql:安装postgresql

    • 提供了一个linux用户postgres

      sudo su - postgres # 切换至postgres用户
      psql --version # 查看版本
      psql # 进入sql控制台
      \q # 退出命令
      ALTER USER postgres WITH PASSWORD 'postgres'; # 修改密码,默认密码是随机生成的
      
    • 远程连接postgresql

      # 默认端口号5432,用户名postgres,密码postgres
      sudo find / -name "pg_hba.conf" # 搜索配置文件位置 
      cd /etc/postgresql/10/main
      
      # 编辑配置文件,找到”IPv4 local connections:“,添加一行
      # host    all             all             192.168.123.0/24        md5
      sudo vim pg_hba.conf
      
      # 找到listen_addresses = 'localhost'
      # 改为listen_addresses = '*'
      sudo vim postgresql.conf
      
      # 重启数据库
      service postgresql restart
      

    简单数据库操作

    psql -l # 查看数据库
    createdb demo # 创建数据库
    psql demo # 切换数据库
    dropdb demo
    
    help
    select now();
    select version();
    
    # 创建表
    create table posts(title varchar(255), content text);
    \dt;
    \d posts;
    alter table posts rename to postsdemo;
    drop table postsdemo;
    
    # 编写.sql文件
    psql demo
    \i db.sql # 导入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'
    );
    
    insert into posts (title, content) values ('', '');
    insert into posts (title, content) values (NULL, '');
    insert into posts (title, content) values ('title1', 'content11');
    select * from posts;
    insert into posts (title, content) values ('title2', 'content2');
    insert into posts (title, content) values ('title3', 'content3');
    select * from posts;
    
    create table users (
        id serial primary key,
        player varchar(255) not null,
        score real,
        team varchar(255)
    );
    
    insert into users (player, score, team) values
    ('阿A', 28.3, '勇士'),
    ('阿B', 30.2, '勇士'),
    ('阿C', 35.6, '勇士'),
    ('阿D', 27.8, '勇士'),
    ('阿E', 31.3, '勇士'),
    ('阿F', 19.8, '勇士');
    
    # 不能用双引号括嘴外层
    select * from users where player like '阿_'; # '_'表示一个数据
    select * from users where player like '阿%';
    select * from users order by score desc limit 3 offset 3;
    select distinct team from user;
    select team, max(score) from users group by team having max(score) >= 25 order by max(score);
    
    # 方便的函数
    length
    concat
    alias
    substring
    random
    
    update users set score = 29.1 where ...
    delete from user where ...
    
    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;
    
    begin;
    commit;
    rollback;
    

    字段类型

    • 数值型:
      • integer(int)
      • real // 浮点
      • serial // 序列型,如自增
    • 文字型:
      • char
      • varchar
      • text
    • 布尔型:
      • boolean
    • 日期型:
      • date
      • time
      • timestamp
    • 特色类型:
      • Array
      • 网络地址型(inet)
      • JSON
      • XML

    更多详情查看官网

    相关文章

      网友评论

          本文标题:PostgreSql基本操作

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