PostgreSQL 安装
创建数据库和表
使用SQL语句,完成创建一个数据库,创建关系。
- 创建数据库scDB; - create database scDB;
- 按要求创建四个表: - 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) );
 
 
- 注意,执行SQL脚本时,Postgre不能识别大小写,必须添加双引号,如果有中文,则使用 - GB 2312格式保存: 
- 执行脚本,注意,在Windows下,路径要使用正斜杠  
- 查看表,注意,若有大小写,也要加引号:  
简单单表查询
- 运行脚本
- 查看表,其中S是供应商表,P为零件表,J为工程项目表,SPJ是供应情况表
课上习题
- 找出所有供应商的姓名和所在城市 - select sno,sname from s;
- 找出所有零件的名称,颜色,重量 - select pname,color,weight from p;
- 找出工程项目 - J2使用的各种零件的名称及数量- SELECT spj.qty,p.pname FROM spj, p WHERE spj.pno = p.pno and spj.jno='J2';
- 找出上海厂商供应的所有零件号码 - SELECT distinct spj.pno FROM spj, s WHERE s.sno = spj.sno and s.city='上海';
- 找出使用上海产的零件的工程号码 - SELECT distinct spj.jno FROM spj, s WHERE s.sno = spj.sno and s.city='上海';
- 找出没有使用天津产的零件的工程号码 - SELECT distinct spj.jno FROM spj, s WHERE s.sno = spj.sno and s.city<>'天津';
- 把所有红色零件的颜色改成蓝色 - UPDATE p SET color = '蓝' WHERE color = '红' ;
- 由 - S5供给- J4的零件- P6改为由- S3供应,请做出必要的修改:- UPDATE spj SET sno = 'S3' WHERE sno = 'S5' and jno = 'J4' and pno ='P6' ;
- 从供应商关系中删除 - S2的记录,并从供应情况关系中删除相应的记录- DELETE FROM spj WHERE sno = 'S2'; DELETE FROM s WHERE sno = 'S2';
- 请将(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;    删除一个表

