MySql基础练习题100道(51-100)

1、查询id、货品名称、分类编号、零售价,并且零售价(salePrice)按降序排列:

      解:SELECT id,productName,dir_id,salePrice FROM product ORDER BY salePrice DESC

MySql基础练习题100道(51-100)

2、查询id、货品名称、分类编号、零售价,并且零售价按升序排列:

      解:SELECT id,productName,dir_id,salePrice FROM product ORDER BY salePrice ASC

MySql基础练习题100道(51-100)

3、查询id、货品名称、分类编号、零售价,先按分类编号升序排列,再零售价按降序排列:

      解:SELECT id,productName,dir_id,salePrice FROM product ORDER BY dir_Id ASC,salePrice DESC

MySql基础练习题100道(51-100)

4、查询M系列的id、货品名称、并按照批发价(salePrice*cutoff)升序排列,批发价使用别名:

      解:SELECT id,productName,salePrice*cutoff AS pf FROM product WHERE productName LIKE '%M%' ORDER BY pf ASC

MySql基础练习题100道(51-100)

5、查询id、货品名称、分类编号,按分类编号为2的商品按照批发价(salePrice*cutoff)升序排列:

      解:SELECT id,productName,dir_id,salePrice*cutoff pf FROM product WHERE dir_id=2 ORDER BY pf ASC

MySql基础练习题100道(51-100)

6、分页查询所有商品信息,每页五条,第一页:

      解:SELECT * FROM product LIMIT 0,5

MySql基础练习题100道(51-100)

7、分页查询所有商品信息,每页五条,第三页:

      解:SELECT * FROM product LIMIT 10,5

MySql基础练习题100道(51-100)

8、分页查询所有商品信息,每页五条,第五页:

      解:SELECT * FROM product LIMIT 20,5

MySql基础练习题100道(51-100)

9、查询所有商品的平均零售价(salePrice):

      解:SELECT AVG(salePrice) FROM product

MySql基础练习题100道(51-100)

10、查询商品总的条数:

      解:SELECT COUNT(id) FROM product

MySql基础练习题100道(51-100)

11、查询分类编号为2的商品总数:

      解:SELECT COUNT(id) FROM product WHERE dir_id=2

MySql基础练习题100道(51-100)

12、查询商品的最低零售价(salePrice),最高零售价(salePrice),以及所有商品零售价的总和:

      解:SELECT MIN(salePrice),MAX(salePrice),SUM(salePrice) FROM product

MySql基础练习题100道(51-100)

13、按照零售价(salePrice)升序排列,并设置每页显示5条数据:

      解:SELECT * FROM product ORDER BY salePrice LIMIT 0,5

MySql基础练习题100道(51-100)

14、查询id、货品名称(productName),以及货品所属分类名称(dirName):

CREATE TABLE productdir  (
  id bigint(20) PRIMARY KEY AUTO_INCREMENT,
  dirName varchar(20),
  parent_id bigint(20)
)
INSERT INTO productdir VALUES (1, '鼠标', NULL);
INSERT INTO productdir VALUES (2, '无线鼠标', 1);
INSERT INTO productdir VALUES (3, '有线鼠标', 1);
INSERT INTO productdir VALUES (4, '游戏鼠标', 1);

      解:SELECT product.id,product.productName,productdir.dirName FROM product,productdir WHERE product.dir_id=productdir.id

MySql基础练习题100道(51-100)

15、查询商品零售价(salePrice)大于200的无线鼠标的所有信息:

      解:SELECT * FROM product,productdir WHERE product.dir_id=productdir.id AND salePrice>200 AND dirName='无线鼠标'

MySql基础练习题100道(51-100)

16、查询商品名称(productName)、每个货品对应的分类名称(dirName)以及对应的库存量(storeNum):

CREATE TABLE  productstock  (
   id bigint(20) PRIMARY KEY AUTO_INCREMENT,
   product_id bigint(20),
   storeNum bigint(20),
   lastIncomeDate datetime,
   lastOutcomeDate datetime,
   warningNum bigint(20)
)

INSERT INTO productstock VALUES (1, 1, 182, '2020-04-08 09:22:21', '2020-04-09 09:22:26', 20);
INSERT INTO productstock VALUES (2, 2, 27, '2020-04-10 09:22:46', '2020-04-11 09:22:40', 20);
INSERT INTO productstock VALUES (3, 3, 89, '2020-03-03 09:22:57', '2020-03-12 09:23:05', 20);
INSERT INTO productstock VALUES (4, 5, 19, '2020-04-09 09:23:30', '2020-04-17 09:23:25', 20);
INSERT INTO productstock VALUES (5, 6, 3, '2020-04-07 09:25:05', '2020-04-09 09:25:11', 5);
INSERT INTO productstock VALUES (6, 7, 2, '2020-04-08 09:25:28', '2020-04-10 09:25:24', 3);
INSERT INTO productstock VALUES (7, 8, 120, '2020-04-09 09:25:44', '2020-04-10 09:25:47', 20);
INSERT INTO productstock VALUES (8, 9, 58, '2020-04-07 09:26:03', '2020-04-09 09:25:59', 20);
INSERT INTO productstock VALUES (9, 11, 28, '2020-04-01 09:26:21', '2020-04-15 09:26:26', 20);
INSERT INTO productstock VALUES (10, 12, 8, '2020-04-02 09:26:38', '2020-04-14 09:26:35', 5);
INSERT INTO productstock VALUES (11, 13, 3, '2020-04-03 09:26:53', '2020-04-13 09:26:57', 5);
INSERT INTO productstock VALUES (12, 14, 6, '2020-04-04 09:27:11', '2020-04-12 09:27:07', 5);
INSERT INTO productstock VALUES (13, 15, 2, '2020-04-05 09:27:26', '2020-04-11 09:27:39', 5);
INSERT INTO productstock VALUES (14, 16, 3, '2020-04-06 09:28:04', '2020-04-10 09:28:00', 3);
INSERT INTO productstock VALUES (15, 17, 49, '2020-04-07 09:28:20', '2020-04-09 09:28:25', 20);
INSERT INTO productstock VALUES (16, 18, 14, '2020-04-07 09:28:49', '2020-04-14 09:28:37', 10);
INSERT INTO productstock VALUES (17, 20, 7, '2020-04-06 09:29:09', '2020-04-13 09:29:13', 5);

      解:SELECT product.productName,productdir.dirName,productstock.storeNum FROM product,productdir,productstock WHERE product.dir_id=productdir.id AND product.id=productstock.product_id

MySql基础练习题100道(51-100)

17、如果库存商品销售完成,按照利润(salePrice-costPrice)从高到底查询货品名称(productName),零售价(salePrice),货品分类名称(dirName):

      解:SELECT product.productName,product.salePrice,product.costPrice,productstock.storeNum,productdir.dirName,(salePrice-costPrice)*storeNum lr FROM product,productdir,productstock WHERE product.dir_id=productdir.id AND product.id=productstock.product_id ORDER BY lr DESC

MySql基础练习题100道(51-100)

18、查询所有的员工信息:

      解:SELECT * FROM emp

MySql基础练习题100道(51-100)

19、查询每个员工的编号(dmpno)、姓名(ename)、职位(job):

      解:SELECT dmpno,ename,job FROM emp

MySql基础练习题100道(51-100)

20、查询所有部门信息:

CREATE TABLE dept  (
  DEPTNO bigint(20) PRIMARY KEY ,
  DNAME varchar(30),
  LOC varchar(30)   
)

INSERT INTO dept VALUES (10, 'ACCOUNTING', 'NEWTORK');
INSERT INTO dept VALUES (20, 'RESEARCH', 'DALLAS');
INSERT INTO dept VALUES (30, 'SALES', 'CHICAGO');
INSERT INTO dept VALUES (40, 'OPERATIONS', 'BOSTON');

      解:SELECT * FROM dept

MySql基础练习题100道(51-100)

21、查询员工的部门编号(deptno)并去除重复:

      解:SELECT DISTINCT deptno FROM emp

MySql基础练习题100道(51-100)

22、查询所有员工的姓名以及对应的年薪:

      解:SELECT ename,sal*12 FROM emp

MySql基础练习题100道(51-100)

23、查询所有员工的姓名以及对应的年薪(使用别名):

      解:SELECT ename,sal*12 AS nx FROM emp

MySql基础练习题100道(51-100)

24、查询每月都有500元的餐补和200元的交通补贴并且年底多发一个月的工资的年薪:

      解:SELECT ename,(sal+500+200)*12+sal FROM emp

MySql基础练习题100道(51-100)

25、查询基本工资(sal)高于1500的员工所有信息:

      解:SELECT * FROM emp WHERE sal>1500

MySql基础练习题100道(51-100)

26、查询名为SCOTT员工的岗位(job)是什么:

      解:SELECT job FROM emp WHERE ename='SCOTT'

MySql基础练习题100道(51-100)

27、查询年薪小于3万的员工的所有信息:

      解:SELECT * FROM emp WHERE sal*12 < 30000

MySql基础练习题100道(51-100)

28、查询所有不是销售人员(salesman)的所有信息:

      解:SELECT * FROM emp WHERE job!='salesman'

MySql基础练习题100道(51-100)

29、查询工资在2000-3000之间的所有员工信息(使用区间查询):

      解:SELECT * FROM emp WHERE sal BETWEEN 2000 AND 3000

MySql基础练习题100道(51-100)

30、查询工资不在2000-3000之间的所有员工信息(使用区间查询):

      解:SELECT * FROM emp WHERE sal NOT BETWEEN 2000 AND 3000

MySql基础练习题100道(51-100)

31、查询工资为800、1600、3000的所有员工信息(使用IN):

      解:SELECT * FROM emp WHERE sal IN(800,1600,3000)

MySql基础练习题100道(51-100)

32、查询工资不为800、1600、3000的所有员工信息(使用IN):

      解:SELECT * FROM emp WHERE sal NOT IN(800,1600,3000)

MySql基础练习题100道(51-100)

33、查询所有员工名字(ename)以A字母开头的员工信息:

      解:SELECT * FROM emp WHERE ename LIKE 'A%'

MySql基础练习题100道(51-100)

34、查询所有员工名字(ename)第二个字母是M的员工信息:

      解:SELECT * FROM emp WHERE ename LIKE '_M%'

MySql基础练习题100道(51-100)

35、查询所有员工名字(ename)中有A字母的员工信息:

      解:SELECT * FROM emp WHERE ename LIKE '%A%'

MySql基础练习题100道(51-100)

36、查询员工名字(ename)中有E或者A的员工信息:

     解:SELECT * FROM emp WHERE ename LIKE '%E%' OR '%A%'

MySql基础练习题100道(51-100)

37、查询工资在1500-3000之间的所有员工信息:

      解:SELECT * FROM emp WHERE sal >=1500 AND sal <=3000

MySql基础练习题100道(51-100)

38、查询所有员工信息,按工资(sal)升序排列:

      解:SELECT * FROM emp ORDER BY sal ASC

MySql基础练习题100道(51-100)

39、查询所有员工信息,按年薪降序排列:

     解:SELECT * FROM emp ORDER BY sal*12 DESC

MySql基础练习题100道(51-100)

40、查询所有员工信息,按照部门(deptno)和年薪降序排列:

     解:SELECT * FROM emp ORDER BY deptno DESC ,sal*12 DESC

MySql基础练习题100道(51-100)

41、把所有员工分页,每页5条信息,第一页SQL:

      解:SELECT * FROM emp LIMIT 0,5

MySql基础练习题100道(51-100)

42、把所有员工分页,每页5条信息,第三页SQL:

      解:SELECT * FROM emp LIMIT 10,5

MySql基础练习题100道(51-100)

43、查询所有员工每个月支付工资的平均工资和总工资:

      解:SELECT AVG(sal),SUM(sal) FROM emp

MySql基础练习题100道(51-100)

44、查询月薪在2000以上的员工人数:

      解:SELECT COUNT(dmpno) FROM emp WHERE sal>2000

MySql基础练习题100道(51-100)

45、查询员工最高工资:

      解:SELECT MAX(sal) FROM emp

MySql基础练习题100道(51-100)

46、查询员工最低工资:

      解:SELECT MIN(sal) FROM emp

MySql基础练习题100道(51-100)

47、查询员工最高工资和最低工资的差额:

      解:SELECT MAX(sal)-MIN(sal) FROM emp

MySql基础练习题100道(51-100)

48、统计30部门的总人数:

      解:SELECT COUNT(dmpno) FROM emp WHERE deptno = 30

MySql基础练习题100道(51-100)

49、查询奖金(comm)为空的所有员工信息:

      解:SELECT * FROM emp WHERE comm IS NULL

MySql基础练习题100道(51-100)

50、统计没有奖金的员工人数:

      解:SELECT COUNT(dmpno) FROM emp WHERE comm IS NULL

MySql基础练习题100道(51-100)