CREATE TABLE emp(
empno INT PRIMARY KEY,
ename VARCHAR(50),
job VARCHAR(50),
mgr INT,
hiredate DATE,
sal DECIMAL(7,2),
COMM DECIMAL(7,2),
deptno INT
);
/*插入emp表数据*/
INSERT INTO emp VALUES (1009, '曾阿牛', '董事长', NULL, '2001-11-17', 50000, NULL, 10);
INSERT INTO emp VALUES (1004, '刘备', '经理', 1009, '2001-04-02', 29750, NULL, 20);
INSERT INTO emp VALUES (1006, '关羽', '经理', 1009, '2001-05-01', 28500, NULL, 30);
INSERT INTO emp VALUES (1007, '张飞', '经理', 1009, '2001-09-01', 24500, NULL, 10);
INSERT INTO emp VALUES (1008, '诸葛亮', '分析师', 1004, '2007-04-19', 30000, NULL, 20);
INSERT INTO emp VALUES (1013, '庞统', '分析师', 1004, '2001-12-03', 30000, NULL, 20);
INSERT INTO emp VALUES (1002, '黛绮丝', '销售员', 1006, '2001-02-20', 16000, 3000, 30);
INSERT INTO emp VALUES (1003, '殷天正', '销售员', 1006, '2001-02-22', 12500, 5000, 30);
INSERT INTO emp VALUES (1005, '谢逊', '销售员', 1006, '2001-09-28', 12500, 14000, 30);
INSERT INTO emp VALUES (1010, '韦一笑', '销售员', 1006, '2001-09-08', 15000, 0, 30);
INSERT INTO emp VALUES (1012, '程普', '文员', 1006, '2001-12-03', 9500, NULL, 30);
INSERT INTO emp VALUES (1014, '黄盖', '文员', 1007, '2002-01-23', 13000, NULL, 10);
INSERT INTO emp VALUES (1011, '周泰', '文员', 1008, '2007-05-23', 11000, NULL, 20);
INSERT INTO emp VALUES (1001, '甘宁', '文员', 1013, '2000-12-17', 8000, NULL, 20);
/*1查询所有表的信息*/
SELECT*FROM emp;
/*1查看雇员的月薪与奖金之和*/
SELECT* ,sal+IFNULL(comm,0) FROM emp;
/*1、改列名——添加别名*/
SELECT*,sal+IFNULL(comm,0) AS 月薪 FROM emp;
/*1、查询所有员工记录,按工资sal升序排序*/
SELECT* FROM emp ORDER BY sal ASC;
/*2、查询所有的员工记录,按工资sal降序排序*/
SELECT* FROM emp ORDER BY sal DESC;
/*3、查询所有的员工,按工资降序排序,如果工资相同时,按编号升序排序*/
SELECT* FROM emp ORDER BY sal DESC,empno ASC;
/*4、查询emp表中有多少条记录(记录数)*/
SELECT COUNT(*)FROM emp;
/*5、查询emp表中有奖金的人数*/
SELECT COUNT(comm)FROM emp;
/*6、查询emp表中月薪大于25000的人数*/
SELECT COUNT(*) FROM emp WHERE sal>25000;
/*7、统计月薪与奖金之和大于25000的人数*/
SELECT COUNT(*) 人数 FROM emp WHERE sal+IFNULL(comm,0)>25000;
/*8、查询有奖金的人数,以及有领导的人数*/
SELECT COUNT(comm) ,COUNT(mgr) FROM emp ;
/*9、查询所有员工月*/
SELECT SUM(sal)FROM emp;
/*10、查询所有员工月薪和,以及所有员工的奖金和*/
SELECT SUM(sal),SUM(comm) FROM emp;
/*11、查询所有员工月薪+奖金的和*/
SELECT SUM(sal+comm) FROM emp;
/*12、统计所有员工的月薪+奖金的平均值*/
SELECT AVG(sal+IFNULL(comm,0)) FROM emp;
/*13、查询最高工资和最低工资*/
SELECT MAX(sal) FROM emp;
SELECT MIN(sal) FROM emp;
/*14、查询每个部门的部门编号和每个部门的工资和:*/
SELECT deptno,SUM(sal)FROM emp GROUP BY deptno;
/*15、查询每个部门的部门编号以及每个部门的人数:*/
SELECT deptno,COUNT(*) FROM emp GROUP BY deptno;
/*16、查询每个部门的部门编号以及每个部门工资大于15000的人数*/
SELECT deptno,COUNT(*) FROM emp WHERE sal>15000 GROUP BY deptno;
/*17、查询工资总和大于90000的部门编号以及工资和:*/
SELECT deptno,SUM(sal)FROM emp GROUP BY deptno HAVING SUM(sal)>90000;
/*18、查询出某部门员工编号大于1005的员工的工资和大于20000的所有信息 */
SELECT *,SUM(sal) FROM emp WHERE empno>1005 GROUP BY deptno HAVING SUM(sal)>20000;
/*19、1、查询5行记录,起始行从0开始*/
SELECT * FROM emp LIMIT 0,5;
/*20、如果一页记录为10条,希望查看第3页记录应该怎么查呢?*/
SELECT * FROM emp LIMIT 20,10;
empno INT PRIMARY KEY,
ename VARCHAR(50),
job VARCHAR(50),
mgr INT,
hiredate DATE,
sal DECIMAL(7,2),
COMM DECIMAL(7,2),
deptno INT
);
/*插入emp表数据*/
INSERT INTO emp VALUES (1009, '曾阿牛', '董事长', NULL, '2001-11-17', 50000, NULL, 10);
INSERT INTO emp VALUES (1004, '刘备', '经理', 1009, '2001-04-02', 29750, NULL, 20);
INSERT INTO emp VALUES (1006, '关羽', '经理', 1009, '2001-05-01', 28500, NULL, 30);
INSERT INTO emp VALUES (1007, '张飞', '经理', 1009, '2001-09-01', 24500, NULL, 10);
INSERT INTO emp VALUES (1008, '诸葛亮', '分析师', 1004, '2007-04-19', 30000, NULL, 20);
INSERT INTO emp VALUES (1013, '庞统', '分析师', 1004, '2001-12-03', 30000, NULL, 20);
INSERT INTO emp VALUES (1002, '黛绮丝', '销售员', 1006, '2001-02-20', 16000, 3000, 30);
INSERT INTO emp VALUES (1003, '殷天正', '销售员', 1006, '2001-02-22', 12500, 5000, 30);
INSERT INTO emp VALUES (1005, '谢逊', '销售员', 1006, '2001-09-28', 12500, 14000, 30);
INSERT INTO emp VALUES (1010, '韦一笑', '销售员', 1006, '2001-09-08', 15000, 0, 30);
INSERT INTO emp VALUES (1012, '程普', '文员', 1006, '2001-12-03', 9500, NULL, 30);
INSERT INTO emp VALUES (1014, '黄盖', '文员', 1007, '2002-01-23', 13000, NULL, 10);
INSERT INTO emp VALUES (1011, '周泰', '文员', 1008, '2007-05-23', 11000, NULL, 20);
INSERT INTO emp VALUES (1001, '甘宁', '文员', 1013, '2000-12-17', 8000, NULL, 20);
/*1查询所有表的信息*/
SELECT*FROM emp;
/*1查看雇员的月薪与奖金之和*/
SELECT* ,sal+IFNULL(comm,0) FROM emp;
/*1、改列名——添加别名*/
SELECT*,sal+IFNULL(comm,0) AS 月薪 FROM emp;
/*1、查询所有员工记录,按工资sal升序排序*/
SELECT* FROM emp ORDER BY sal ASC;
/*2、查询所有的员工记录,按工资sal降序排序*/
SELECT* FROM emp ORDER BY sal DESC;
/*3、查询所有的员工,按工资降序排序,如果工资相同时,按编号升序排序*/
SELECT* FROM emp ORDER BY sal DESC,empno ASC;
/*4、查询emp表中有多少条记录(记录数)*/
SELECT COUNT(*)FROM emp;
/*5、查询emp表中有奖金的人数*/
SELECT COUNT(comm)FROM emp;
/*6、查询emp表中月薪大于25000的人数*/
SELECT COUNT(*) FROM emp WHERE sal>25000;
/*7、统计月薪与奖金之和大于25000的人数*/
SELECT COUNT(*) 人数 FROM emp WHERE sal+IFNULL(comm,0)>25000;
/*8、查询有奖金的人数,以及有领导的人数*/
SELECT COUNT(comm) ,COUNT(mgr) FROM emp ;
/*9、查询所有员工月*/
SELECT SUM(sal)FROM emp;
/*10、查询所有员工月薪和,以及所有员工的奖金和*/
SELECT SUM(sal),SUM(comm) FROM emp;
/*11、查询所有员工月薪+奖金的和*/
SELECT SUM(sal+comm) FROM emp;
/*12、统计所有员工的月薪+奖金的平均值*/
SELECT AVG(sal+IFNULL(comm,0)) FROM emp;
/*13、查询最高工资和最低工资*/
SELECT MAX(sal) FROM emp;
SELECT MIN(sal) FROM emp;
/*14、查询每个部门的部门编号和每个部门的工资和:*/
SELECT deptno,SUM(sal)FROM emp GROUP BY deptno;
/*15、查询每个部门的部门编号以及每个部门的人数:*/
SELECT deptno,COUNT(*) FROM emp GROUP BY deptno;
/*16、查询每个部门的部门编号以及每个部门工资大于15000的人数*/
SELECT deptno,COUNT(*) FROM emp WHERE sal>15000 GROUP BY deptno;
/*17、查询工资总和大于90000的部门编号以及工资和:*/
SELECT deptno,SUM(sal)FROM emp GROUP BY deptno HAVING SUM(sal)>90000;
/*18、查询出某部门员工编号大于1005的员工的工资和大于20000的所有信息 */
SELECT *,SUM(sal) FROM emp WHERE empno>1005 GROUP BY deptno HAVING SUM(sal)>20000;
/*19、1、查询5行记录,起始行从0开始*/
SELECT * FROM emp LIMIT 0,5;
/*20、如果一页记录为10条,希望查看第3页记录应该怎么查呢?*/
SELECT * FROM emp LIMIT 20,10;