美文网首页
PostgreSQL配置与单表查询

PostgreSQL配置与单表查询

作者: zealscott | 来源:发表于2018-10-19 09:08 被阅读0次

    SQL初体验。

    PostgreSQL 安装

    创建数据库和表

    使用SQL语句,完成创建一个数据库,创建关系。

    1. 创建数据库scDB;

      create database scDB;
      
    2. 按要求创建四个表:

      • Student(Sno,Sname,Ssex,Sage,Sdept)

        • create table Student  //学生表
          (
           Sno char(9) unique,
           Sname char(5) not null,
           Ssex char(2),
           Sage smallint,
           Sdept char(20),
           primary key(Sno)  // 设置主码为学号
          );
          
      • Course(Cno,Cname,Cpno,Ccredits)

        • create table Course  //课程表
          (
           Cno char(4),
           Cname char(20) not null,
           Cpno char(4),   // 先修课程
           Ccredits smallint,
           primary key(Cno),  // 设置主码为课程编号
           foreign key(Cpno) references Courese(Cno) // 约束条件,Cpno为外码,被参照表Course,被参照列为Cno
          );
          
      • SC(Sno,Cno,Grade)

        • create table SC   //学生选课表
          (
           Sno char(9),
           Cno char(4),
           Grade smallint,
           foreign key(Sno) references Student(Sno), // 约束条件,Cpno为外码,被参照表Course,被参照列为Cno
              foreign key(Cno) references Course(Cno)
          );
          
    3. 注意,执行SQL脚本时,Postgre不能识别大小写,必须添加双引号,如果有中文,则使用GB 2312格式保存:

      53930680031
    4. 执行脚本,注意,在Windows下,路径要使用正斜杠

      53930664344
    5. 查看表,注意,若有大小写,也要加引号

      53930717428

    单单表查询

    • 运行脚本
      • 53930755651
    • 查看表,其中S是供应商表,P为零件表,J为工程项目表,SPJ是供应情况表
      • 53931042136

    课上习题

    1. 找出所有供应商的姓名和所在城市

      select sno,sname from s;
      
    2. 找出所有零件的名称,颜色,重量

      select pname,color,weight from p;
      
    3. 找出使用供应商S1所提供零件的工程号码

      select jno from spj where sno='S1';
      
    4. 找出工程项目J2使用的各种零件的名称及数量

      SELECT spj.qty,p.pname
      FROM spj, p
      WHERE spj.pno = p.pno and spj.jno='J2'; 
      
    5. 找出上海厂商供应的所有零件号码

      SELECT distinct spj.pno 
      FROM spj, s
      WHERE s.sno = spj.sno and s.city='上海'; 
      
    6. 找出使用上海产的零件的工程号码

      SELECT distinct spj.jno 
      FROM spj, s
      WHERE s.sno = spj.sno and s.city='上海'; 
      
    7. 找出没有使用天津产的零件的工程号码

      SELECT distinct spj.jno 
      FROM spj, s
      WHERE s.sno = spj.sno and s.city<>'天津'; 
      
    8. 把所有红色零件的颜色改成蓝色

      UPDATE p SET color = '蓝' WHERE color = '红' ;
      
    9. S5供给J4的零件P6改为由S3供应,请做出必要的修改:

      UPDATE spj SET sno = 'S3' WHERE sno = 'S5' and jno = 'J4' and pno ='P6' ;
      
    10. 从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录

    DELETE FROM spj WHERE sno = 'S2'; 
    DELETE FROM s WHERE sno = 'S2'; 
    
    1. 请将(S2,J6,P4,200)插入供应情况关系

      INSERT INTO s VALUES ('S2', '盛锡', 10 ,'北京');
      INSERT INTO spj VALUES ('S2', 'P4', 'J6' ,200);
      

    操作

    数据库命令

    \password 设置密码
    \q 退出
    \h 查看SQL命令的解释,比如\h select
    \e 打开文本编辑器。
    \conninfo 列出当前数据库和连接的信息。
    \? 查看psql命令列表
    \du 列出所有用户。
    \i yourPath 运行sql脚本
    数据库查询时使用单引号

    数据库操作

    \l 列出所有数据库
    \c [database_name] 连接其他数据库
    \d 列出当前数据库的所有表格
    \d [table_name] 列出某一张表格的结构
    drop database db; 删除一个数据库
    drop table table_name; 删除一个表

    相关文章

      网友评论

          本文标题:PostgreSQL配置与单表查询

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