--  创建数据库
CREATE DATABASE book;
-- 创建作者表
CREATE TABLE authors(
Id int not NULL, -- 作者编号
Fname VARCHAR(10), -- 姓
Lname VARCHAR(12), -- 名
Sex CHAR(2),
Sage int
);
-- 创建图书表
CREATE table titles(
tId int not NULL , -- 图书编号
tname VARCHAR(25) , -- 书名
type VARCHAR(25),
price int
);
-- 添加数据 INSERT authors VALUES (001,'毛','泽东','男',100), (002,'张','三丰','男',43),(003,'丰','丰田','男',23),(004,'郭','丰男','男',34),(005,'李','晓莉','女',22);
INSERT titles VALUES (001,'毛泽东语录','文学类',20),(002,'三丰秘籍','武术类',230),(003,'汽车维修宝典','商业类',55),(004,'大话古典文化','文学类',22),(005,'古诗词赏析','文学类',10); -- 查询:authors
SELECT Lname FROM AUTHORS WHERE Lname LIKE '丰%'; -- 1、 列出以字母‘丰’开头的名;
SELECT Lname FROM AUTHORS WHERE Lname LIKE '%丰%'; -- 2、 列出包含‘丰’字符的名;
SELECT Lname FROM AUTHORS WHERE Lname LIKE '%丰'; -- 3、 列出以‘丰’结尾的名。
SELECT COUNT(*) 30岁以上的作者的人数 FROM AUTHORS WHERE Sage>30; -- 4、 列出作者表中年龄在30岁以上的作者的人数。
SELECT COUNT(*) 男作者人数 FROM AUTHORS WHERE Sex ='男';-- 5、 列出男作者的人数。
-- 6、 列出最小年龄的作者
SELECT Fname,Lname FROM AUTHORS WHERE Sage=(SELECT MIN(Sage) FROM AUTHORS) -- ??怎么合并两个列名得数据成 一列显示 -- 查询 图书表
-- 统计‘商业类’图书的数量;
SELECT COUNT(*) 数量 FROM titles WHERE type = '商业类'
-- 2、 统计各类图书的平均价格。
SELECT AVG(price) FROM titles
-- 3、 统计‘商业类’图书的总价格;
SELECT sum(price) 数量 FROM titles WHERE type = '商业类'
-- 4、 列出‘商业类图书’中最贵的书;
SELECT tname FROM titles WHERE price = (SELECT max(price) FROM titles WHERE type = '商业类') -- 创建 部门表
CREATE TABLE department (
deptno VARCHAR(20),
deptname VARCHAR(20),
marno int -- 部门经理编号
);
-- 添加数据
INSERT into department VALUES ('1122','财务部',105),('119','消防队',103),('315','消费者协会',104); -- 创建 雇员表
CREATE TABLE employee(
empno int,
ename VARCHAR(20),
job VARCHAR(20),
deptno VARCHAR(20),
hiredate date,-- 入职时间
sal int ,-- 薪水
comm int-- 佣金
);
-- 添加数据
INSERT into employee VALUES (11221,'王五','经理','1122','1921-1-1',2500,1000),(1201,'医院张三','院长','120','1996-1-1',4700,2000),(1191,'消防队张三','队长','119','1981-1-1',1500,2000),(3151,'消费者协会张三','会长','315','1998-1-1',3500,154); -- 1、 显示雇员名、部门编号、部门名称。(内联)
SELECT ename 雇员名, employee.deptno 部门编号,deptname 部门名称 FROM employee INNER JOIN department ON employee.deptno = department.deptno
-- 2、 显示职务是经理的员工名、部门编号、部门名。(内联)
SELECT ename 员工, employee.deptno 部门编号,deptname 部门名称 FROM employee INNER JOIN department ON employee.deptno = department.deptno AND job = '经理';
-- 3、 显示在‘财务部’工作的员工名、工作、部门编号、部门名。(内联)
SELECT ename 员工, job 工作,deptname 部门名称 FROM employee INNER JOIN department ON employee.deptno = department.deptno AND deptname = '财务部';
-- 4、 显示员工名、员工编号和他们经理的经理编号,部门编号。(内联)
SELECT ename 员工, empno 员工编号,marno 经理编号,employee.deptno 部门编号 FROM employee INNER JOIN department ON employee.deptno = department.deptno; -- 5、 显示不同部门的部门名、员工数,员工的平均薪水。(内联)
SELECT deptname 部门名 ,COUNT(ename) 员工数 ,sum(sal+comm) 薪水 FROM employee INNER JOIN department ON employee.deptno = department.deptno
GROUP BY 部门名 ORDER BY 薪水 ;
04-26 14:55
查看更多