Linux和mysql练习题2
第一题:Linux 常用指令
1、查看进程的命令
ps -ef | grep 进程名
2、检测网络的连通情况的命令
ping ip地址
3、查看目志的命令
tail -f 日志名
4、设置当前系统时间的命令
date -s 'yyyy-mm-dd'
5、查看服务器资源的命令
top
第二题:SQL
某订单管理系统的部分数据库关系模式如下:
客户:CUSTOMERS(Cno,Cname,Cage,Csex),各属性分别表示客户编号、客户姓名、年龄和性别:
商品:GOODS(Gno,Gname, Gprice, Gorigin),各属性分别表示商品编号、商品名称、单价和产地:
订单:ORDERS(Ono,Cno, Gno, Oprice. Onumber),各属性分别表示订单编号、客户编号、商品编号、顾客购买商品的单价和数量,有关关系模式的说明如下:
(1)下画线标出的属性是表的主键。
(2)商品表中的Gprice是商品的当前价格,可能会发生变助;订单表中的Oprice是订单成交时的商品单价,
创建订单表的SQL语句,要求定义实体完整性约束、参照完整性约束,以及其他完整性约束。
CREATE TABLE ORDERS (Ono INT PRIMARY KEY, -- 实体完整性约束:订单编号为主键Cno INT NOT NULL, -- 非空约束Gno INT NOT NULL, -- 非空约束Oprice DECIMAL(10, 2) NOT NULL CHECK (Oprice >= 0), -- 其他完整性约束:单价不能为负Onumber INT NOT NULL CHECK (Onumber > 0), -- 其他完整性约束:数量必须为正数-- 参照完整性约束:外键关联客户表FOREIGN KEY (Cno) REFERENCES CUSTOMERS(Cno),-- 参照完整性约束:外键关联商品表FOREIGN KEY (Gno) REFERENCES GOODS(Gno)
);
[问题2]
查询所有订单的详细情况,要求输出订单号(Ono)、客户姓名(Cname)、商品名称(Gname)、单价(Oprice)、数量(Onumber)和金额(Oamount),查询结果按照金额从大到小排列。
SELECT O.Ono, C.Cname, G.Gname, O.Oprice, O.Onumber, O.Oamount
From ORDERS O JOIN CUSTOMERS C ON O.Cno = C.cno JOIN GOODS G ON G.Gno = C.Cno
ORDER BY O.Oprice DESC;
[问题3]
查询出已售商品的编号(Gno)、名称(Gname)、订单个数(Onum)及平均每单的商品数量(GAnum)。
SELECT G.Gno, G.Gname, COUNT(O.Ono) Onum, AVG(O.Onumber) GAnum
FROM GOODS G JOIN ORDERS O ON G.Gno = O.Gno;
[问题4]
查询未售出商品的编号和名称
SELECT g.Gno, g.Gname FROM GOODS g
LEFT JOIN ORDERS o ON g.Gno = o.Gno
WHERE o.Ono IS NULL; -- 筛选出没有订单记录的商品