SQL初体验。
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不能识别大小写,必须添加双引号,如果有中文,则使用
53930680031GB 2312
格式保存: -
执行脚本,注意,在Windows下,路径要使用正斜杠
53930664344 -
查看表,注意,若有大小写,也要加引号:
53930717428简
单单表查询
- 运行脚本
- 53930755651
- 查看表,其中
S
是供应商表,P
为零件表,J
为工程项目表,SPJ
是供应情况表- 53931042136
课上习题
-
找出所有供应商的姓名和所在城市
select sno,sname from s;
-
找出所有零件的名称,颜色,重量
select pname,color,weight from p;
-
找出使用供应商
S1
所提供零件的工程号码select jno from spj where sno='S1';
-
找出工程项目
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; 删除一个表
网友评论