基于docker的opengauss入门
1. 以操作系统用户omm登录数据库主节点。
[root@ecs-c9bf ~]# su - omm
2.连接默认数据库
gsql -d postgres -p 26000 -r
3.创建数据库用户
create user guet with password "Bigdata@123";
4.创建数据库
create database guet_data owner guet;
5.退出默认数据库
\q
6.连接新的数据库
gsql -d guet_data -p 5432 -r
7.建表
示例表
1、代理商(代理商编号、姓名、地址、邮政编码、提成金额、提成比例)
其中代理商编号为primary key(主码)
字段名 数据类型 备注
代理商编号 char(4) primary key
姓名 char(10)
地址 char(20)
邮政编码 char(6)
提成金额 money
提成比例 tinyint
2、客户(客户编号、姓名、地址、邮政编码、收支差额、贷款限额、代理商编号)
其中客户编号为primary key(主码)
字段名 数据类型 备注
客户编号 char(4) primary key
姓名 char(10)
地址 char(20)
邮政编码 char(6)
收支差额 money
贷款限额 money
代理商编号 char(4)
3.产品(产品编号、描述信息、库存量、类别、仓库的编号、价格)
其中产品的编号为primary key(主码)
字段名 数据类型 备注
产品编号 char(4) primary key
描述信息 char(50)
库存量 int
类别 tinyint
仓库编号 char(4)
价格 money
4.订单(订单编号、订货日期、客户编号)
字段名 数据类型 备注
订单编号 char(4) primary key
订货日期 smalldatetime
客户编号 char(4)
5.订货项目(订单编号、产品编号、订购数量、订购单价)
字段名 数据类型 备注
订单编号 char(4) primary key
产品编号 char(4) primary key
订购数量 smallint
订购单价 money
表格数据
1.对于代理商(代理商编号、姓名、地址、邮政编码、提成金额、提成比例)
01、联邦、东环路1号、541001、30000.00、40
02、惠普、东环路2号、541002、4000.00、10
03、三洋、东环路3号、541003、10000.00、30
04、联想、东环路4号、541004、100000.00、60
05、海尔、东环路5号、541005、200000.00、60
2.客户(客户编号、姓名、地址、邮政编码、收支差额、贷款限额、代理商编号)
100、张三、西环路1号、100001、10.00、100.00、02
200、李四、西环路2号、100001、-10.00、10.00、04
300、王五、西环路3号、100001、100.00、1000.00、02
400、赵六、西环路4号、100001、600.00、2000.00、01
500、洪七、西环路5号、100001、300.00、900.00、05
600、李明、西环路6号、100001、20.00、300.00、03
700、张进、西环路7号、100001、400.00、1000.00、03
3.产品(产品的编号、描述信息、库存量、类别、仓库的编号、价格)
0011、药物,单位(瓶)、1000、12、1001、40.00
0022、机器,单位(件)、300、3、1002、50000.00
0033、中药,单位(包)、800、12、1001、300.00
0044、软件,单位(套)、1500、10、1003、2000.00
0055、家具,单位(件)、6000、3、1002、1000.00
0066、小型机,单位(台)、10000、3、1002、200000.00
4.订单(订单编号、订货日期、客户编号)
111、2000-10-01、200
222、2000-09-01、200
333、2001-01-01、500
444、2002-02-02、300
555、2003-03-03、100
5.订货项目(订单编号、产品编号、订购数量、订购单价)
111、0033、200、280.00
222、0066、6000、150000.00
333、0033、100、280.00
444、0011、300、39.00
555、0055、5500、950.00
444、0044、1000、1900.00
create table agent(
ano char(4) primary key,
aname char(10),
aaddress char(20),
acode char(6),
amount money
,scale tinyint);
create table custom(
cno char(4) primary key,
cname char(10),
caddress char(20),
ccode char(6),
income money,
loan money,
ano char(4)
,foreign key(ano) references agent(ano));
Create table prodect(
pno char(4) primary key,
message char(50),
stock int,
class tinyint,
classno char(4),
price money);
Create table orderform(
ono char(4) primary key,
date smalldatetime,
cno char(4),
foreign key(cno) references custom(cno));
Create table orderitem(
ono char(4),
pno char(4),
num smallint,
price money,
primary key(ono,pno),
foreign key(ono) references orderform(ono),
foreign key(pno) references prodect(pno));
输入\dt查看所有表
8.插入数据
insert into agent values(01,'lianbang','donghuanluyihao',541001,30000.00,40),
(02,'huipu','donghuanluerhao',541002,4000.00,10),
(03,'sanyang','donghuanlusanhao',541003,10000.00,30),
(04,'lianxiang','donghuanlusihao',541004,100000.00,60),
(05,'haier','donghuanluwuhao',541005,200000.00,60);
insert into custom values(100,'zhangsan','xihuanluyihao',100001,10.00,100.00,02),
(200,'lisi','xihuanluerhao',100001,-10.00,10.00,04),
(300,'wangwu','xihuanlulanhao',100001,100.00,1000.00,02),
(400,'zhaoliu','xihuanlusihao',100001,600.00,2000.00,01),
(500,'hongqi','xihuanluwuhao',100001,300.00,900.00,05),
(600,'liming','xihuanluliuhao',100001,20.00,300.00,03),
(700,'zhangjin','xihuanluqihao',100001,400.00,1000.00,03);
insert into prodect values(0011,'yaowu,ping',1000,12,1001,40.00),
(0022,'jixie,jian',300,3,1002,50000.00),
(0033,'zhongyao',800,12,1001,300.00),
(0044,'ruanjian,tao',1500, 10,1003,2000.00),
(0055,'jiaju,jian',6000,3,1002,1000.00),
(0066,'xiangxingji,tai',10000,3,1002,200000.00);
insert into orderform values(111,'2000-10-01',200),
(222,'2000-09-01',200),
(333,'2001-01-01',500),
(444,'2002-02-02',300),
(555,'2003-03-03',100);
insert into orderitem values(111,0033,200,280.00),
(222,0066,6000,150000.00),
(333,0033,100,280.00),
(444,0011,300,39.00),
(555,0055,5500,950.00),
(444,0044,1000,1900.00);
9.SQL语句练习
插入数据
①在产品表格中插入一种新产品。
0077、瓷器,单位(件)、8000、3、1002、10000.00
insert into prodect values(0077,‘ciqi,jian’,8000,3,1002,10000.00);
insert into prodect values(0077,'ciqi,jian',8000,3,1002,10000.00);
②在代理商表中插入新代理商。
05、海信、中山路9号、541000、200000.00、60
insert into agent values(05,'haixin','zhongsanlu9hao',541000,200000.00,60);
修改数据
① 更新所有代理商的提成比例为20%。
update agent set scale=20;
② 为产品表格增加一个新字段----缺货量。
alter table prodect add lack integer;
③ 将编号为0011的产品单价更新为1000。
update prodect set price=1000.00 where pno=0011;
删除数据
① 删除编号为700的客户。
delete from custom where cno=700;