orcl复杂查询

本文详细描述了如何使用SQL创建并维护五个关键业务表(部门、销售人员、客户、货品和订单),以及如何通过外键约束进行关联,并展示了基本的数据插入和查询操作,如查询货品信息、客户信息、订单详情等。
摘要由CSDN通过智能技术生成

--1.创建部门信息表 
CREATE TABLE dept(
d_id NUMBER(10) PRIMARY KEY,
d_name VARCHAR2(20) UNIQUE,
d_manager NUMBER(10),
d_poplation NUMBER(10)
);

--2.创建销售人员信息表
CREATE TABLE sale_info(
sale_id NUMBER(10) PRIMARY KEY,
sale_dp_id NUMBER(10),
sale_name VARCHAR2(10) NOT NULL,
sale_address VARCHAR2(50),
sale_tele VARCHAR2(13),
sale_gender VARCHAR2(10),
CONSRAINT chk_gender CHECK(sale_gender='男' or sale_gender='女')
);

--2."部门号"添加外键约束
ALTER TABLE sale_info
ADD CONSTRAINT fk_dp_id FOREIGN KEY(sale_dp_id)
REFERENCES dept(d_id);

--3.创建客户信息表
CREATE TABLE c_info(
c_id NUMBER(10) PRIMARY KEY,
c_name VARCHAR2(10) NOT NULL,
c_address VARCHAR2(50),
c_tele VARCHAR2(13)
);

--4.创建货品信息表
CREATE TABLE g_info(
g_id NUMBER(10) PRIMARY KEY,
g_name VARCHAR2(20),
g_quantity NUMBER(10),
g_supplier_code NUMBER(10),
g_state VARCHAR2(20),
g_sellingprice NUMBER(10),
g_costprice NUMBER(10)
);

--5.创建订单信息表
CREATE TABLE o_info(
o_id NUMBER(10) PRIMARY KEY,
o_salenumber NUMBER(10),
o_goodscode NUMBER(10),
o_cid NUMBER(10),
o_quantity NUMBER(10),
o_price NUMBER(10),
o_orderdate DATE,
o_deliverydate DATE,
CONSTRAINT fk_salenumber FOREIGN KEY(o_salenumber) REFERENCES s_info(s_id)
);

--6.创建供应商信息表
CREATE TABLE supplier_info(
supplier_code NUMBER(10) PRIMARY KEY,
supplier_name VARCHAR2(50) NOT NULL,
supplier_linkman VARCHAR2(10) NOT NULL,
supplier_address VARCHAR2(50),
supplier_tele VARCHAR2(13) UNIQUE,
);

--1.供应商信息表插入数据
INSERT INTO supplier_info VALUES(1,'华轩文具实业公司','张敏','郑州市开发区',13661234567);
INSERT INTO supplier_info VALUES(2,'大华电脑公司','马涛明','上海市浦东开发区',13661234568);
INSERT INTO supplier_info VALUES(3,'斯达信息公司','郭晓明','深圳市龙岗区',13661234566);
INSERT INTO supplier_info VALUES(4,'神州电脑','王静欣','重庆市长寿区',13661234565);
INSERT INTO supplier_info VALUES(5,'墨韵图文设计','马建国','天津市南开区',13661234564);
INSERT INTO supplier_info VALUES(6,'佳能印务销售公司','刘天佑','上海市浦东区',13661234563);

--2.货品信息表插入数据
INSERT INTO  g_info VALUES(01,'电脑桌',80,1,1,1500,1100);
INSERT INTO  g_info VALUES(02,'电脑桌',900,6,1,800,600);
INSERT INTO  g_info VALUES(03,'电脑桌',100,3,1,8000,6000);
INSERT INTO  g_info VALUES(04,'电脑桌',368,2,1,3000,2100);
INSERT INTO  g_info VALUES(05,'电脑桌',20,5,1,140000,90000);
INSERT INTO  g_info VALUES(06,'电脑桌',20,4,1,14000,9000);

--3.部门信息表插入数据
INSERT INTO dept VALUES(1,'计算机销售部',1,10);
INSERT INTO dept VALUES(2,'手机销售部',2,200);
INSERT INTO dept VALUES(3,'打印机销售部',3,30);

--4.销售人员信息表插入数据
INSERT INTO sale_info VALUES(1,1,'李铭泽','北京市朝阳区',13567991234,'男');
INSERT INTO sale_info VALUES(2,2,'王巧玲','北京市海淀区',13567991235,'女');
INSERT INTO sale_info VALUES(3,3,'张晓光','深圳市南山区',13567991236,'男');
INSERT INTO sale_info VALUES(4,2,'钱三一','深圳市罗湖区',13567991237,'男');
INSERT INTO sale_info VALUES(5,3,'周家彭','北京市海淀区',13567991238,'男');
INSERT INTO sale_info VALUES(6,1,'张晓明','北京市海淀区',13567991239,'女');

--5.客户信息表插入数据
INSERT INTO c_info VALUES(1,'李晓红','重庆市',13988761233);
INSERT INTO c_info VALUES(2,'明台','上海市',13988761232);
INSERT INTO c_info VALUES(3,'张小寒','郑州市金水区',13988761231);
INSERT INTO c_info VALUES(4,'李想','郑州市惠鸿区',13988761235);
INSERT INTO c_info VALUES(5,'任艳','深圳市龙岗区',13988761234);
INSERT INTO c_info VALUES(6,'李娟','苏州市工业园区',13988761236);

--6.订单信息表插入数据
INSERT INTO o_info VALUES (1,1,1,1,20,2020/5/5);
INSERT INTO o_info VALUES (2,2,6,2,10,2020/2/15);
INSERT INTO o_info VALUES (3,3,2,3,10,2020/11/14);
INSERT INTO o_info VALUES (4,4,4,4,5,2020/12/26);
INSERT INTO o_info VALUES (5,5,5,5,2,2020/1/8);
INSERT INTO o_info VALUES (6,6,3,6,2,2020/2/8);

--1.查询货品信息表,列出表中所有记录,每个记录包含货品编码,货品名称,库存量
SELECT * FROM g_info;--查询所有记录
SELECT g_id,g_name,g_quantity FROM g_info;--查询指定记录

--?2.将客户信息表中深圳地区客户信息插入到深圳客户表中
SELECT c_id,c_name,c_address,c_tele INTO shenzhen_info FROM c_info WHERE c_address like '深圳%';

--3.销售人员表中找出人员信息:李铭泽,王巧玲,钱三一
SELECT sale_name FROM sale_info WHERE sale_name like '李铭泽' or sale_name like '王巧玲' or sale_name like '钱三一';

--4.订单信息表中找出订货量在10~20的订单信息
SELECT * FROM WHERE o_quantity >=10 AND o_quantity <=20;

--5.找出每种货品的销售数量,统计结果按货品编码排序
SELECT g_id,g_quantity FROM g_info order by g_id;

--6.找出订货数量大于10的货品信息
SELECT * FROM o_info WHERE o_quantity > 10;

--?7.找出有销售业绩的销售人员
SELECT * FROM o_info,sale_info WHERE sale_dp_id = o_salenumber;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值