SELECT LENGTH(last_name) AS 姓名长度,SUBSTR(last_name,1,1) AS 首字母,last_name
FROM employees
ORDER BY 首字母;
SELECT CONCAT(last_name,'earns',salary,'but wants',salary*3) AS "dreams salary"
FROM employees
WHERE salary=24000;
SELECT COUNT(*)
FROM employees
WHERE department_id=90;
SELECT MAX(salary),job_id
FROM employees
GROUP BY job_id;
SELECT COUNT(*),location_id
FROM departments
GROUP BY location_id;
SELECT AVG(salary),department_id
FROM employees
WHERE email LIKE '%e%'
GROUP BY department_id;
SELECT MAX(salary),manager_id
FROM employees
WHERE commission_pct IS NOT NULL
GROUP BY manager_id;
SELECT COUNT(*),department_id
FROM employees
GROUP BY department_id;
SELECT COUNT(*),department_id
FROM employees
GROUP BY department_id
HAVING COUNT(*)>2;
SELECT MAX(salary),job_id
FROM employees
WHERE commission_pct IS NOT NULL
GROUP BY job_id
HAVING MAX(salary)>12000;
SELECT MIN(salary),manager_id
FROM employees
WHERE manager_id>102
GROUP BY manager_id
HAVING MIN(salary)>5000;
SELECT COUNT(*)
FROM employees
GROUP BY LENGTH(last_name)
HAVING COUNT(*)>5;
SELECT AVG(salary),job_id,department_id
FROM employees
GROUP BY job_id,department_id;
SELECT MIN(salary),manager_id
FROM employees
WHERE department_id IS NOT NULL
GROUP BY manager_id
HAVING MIN(salary)>6000;
SELECT COUNT(*),AVG(salary),department_id
FROM employees
GROUP BY department_id
ORDER BY AVG(salary) DESC;
SELECT last_name,department_name
FROM employees,departments
WHERE employees.`department_id`=departments.`department_id`;
SELECT last_name,department_name,commission_pct
FROM employees AS e,departments AS d
WHERE e.`department_id`=d.`department_id` AND commission_pct IS NOT NULL;
SELECT city,department_name
FROM locations AS l,departments AS d
WHERE city LIKE '_o%' AND l.`location_id`=d.`location_id`;
SELECT COUNT(*) AS 个数,department_name AS 部门,city 城市
FROM locations AS l,departments AS d
WHERE l.`location_id`=d.`location_id`
GROUP BY city;
SELECT MIN(salary),department_name,d.manager_id
FROM departments AS d,employees AS e
WHERE commission_pct IS NOT NULL AND d.`department_id`=e.`department_id`
GROUP BY department_name,d.`manager_id`;
SELECT last_name,department_name
FROM employees e
INNER JOIN departments d
ON e.`department_id`=d.`department_id`;
SELECT last_name,job_title
FROM employees e
INNER JOIN jobs j
ON e.`job_id`=j.`job_id`
WHERE e.last_name LIKE '%e%';
SELECT city,COUNT(*)
FROM locations l
INNER JOIN departments d
ON l.`location_id`=d.`location_id`
GROUP BY city
HAVING COUNT(*)>3;
SELECT department_name,COUNT(*)
FROM departments d
INNER JOIN employees e
ON d.`department_id`=e.`department_id`
GROUP BY department_name
HAVING COUNT(*)>3
ORDER BY COUNT(*) DESC;
SELECT last_name,department_name,job_title
FROM employees e
INNER JOIN departments d
ON e.`department_id`=d.`department_id`
INNER JOIN jobs j
ON j.`job_id`=e.`job_id`
ORDER BY department_name DESC;
SELECT salary,grade_level
FROM employees e
INNER JOIN job_grades j
ON salary BETWEEN lowest_sal AND highest_sal ;
SELECT grade_level,COUNT(*)
FROM employees e
INNER JOIN job_grades
ON e.`salary` BETWEEN lowest_sal AND highest_sal
GROUP BY grade_level
HAVING COUNT(*)>20
ORDER BY grade_level DESC;
SELECT e.last_name,m.last_name
FROM employees e
CROSS JOIN employees m
ON e.`employee_id`=m.`manager_id`;
/*
用于查询一个表里面有,一个表里面没有记录的查询
*/
SELECT d.*,employee_id
FROM departments d
LEFT OUTER JOIN employees AS e
ON d.`department_id`=e.`department_id`
WHERE employee_id IS NULL;
SELECT d.*,employee_id
FROM employees e
RIGHT OUTER JOIN departments d
ON d.`department_id`=e.`department_id`
WHERE employee_id IS NULL;
SELECT be.`id`,be.name,bo.*
FROM beauty be
LEFT OUTER JOIN boys bo
ON be.`boyfriend_id`=bo.`id`
WHERE be.`id`>3;
SELECT city
FROM locations l
LEFT JOIN departments d
ON l.`location_id`=d.`location_id`
WHERE department_id IS NULL;
SELECT department_name,e.*
FROM employees e
RIGHT JOIN departments d
ON d.`department_id`=e.`department_id`
WHERE department_name IN('SAL','IT');
SELECT salary
FROM employees
WHERE last_name='Abel';
SELECT last_name
FROM employees
WHERE salary>(
SELECT salary
FROM employees
WHERE last_name='Abel'
);
SELECT salary
FROM employees
WHERE employee_id=143;
SELECT job_id
FROM employees
WHERE employee_id=141;
SELECT last_name,job_id,salary
FROM employees
WHERE job_id=(SELECT job_id
FROM employees
WHERE employee_id=141
)
AND salary>(
SELECT salary
FROM employees
WHERE employee_id=143
);
SELECT MIN(salary)
FROM employees
WHERE department_id=50;
SELECT MIN(salary),department_id
FROM employees
GROUP BY department_id
HAVING MIN(salary)>(
SELECT MIN(salary)
FROM employees
WHERE department_id=50
);
SELECT department_id
FROM departments
WHERE location_id IN(1400,1700);
SELECT last_name
FROM employees
WHERE department_id IN(
SELECT department_id
FROM departments
WHERE location_id IN(1400,1700)
);
SELECT DISTINCT salary
FROM employees
WHERE job_id="IT_PROG";
SELECT last_name,job_id,salary,employee_id
FROM employees
WHERE salary < ANY(
SELECT DISTINCT salary
FROM employees
WHERE job_id="IT_PROG"
) AND job_id<>"IT_PROG";
SELECT last_name,job_id,salary,employee_id
FROM employees
WHERE salary <(
SELECT MAX(salary)
FROM employees
WHERE job_id="IT_PROG"
) AND job_id<>"IT_PROG";
SELECT last_name,job_id,salary,employee_id
FROM employees
WHERE salary < ALL(
SELECT DISTINCT salary
FROM employees
WHERE job_id="IT_PROG"
) AND job_id<>"IT_PROG";
SELECT d.*,(
SELECT COUNT(*)
FROM employees
WHERE employee_id=department_id
) FROM
departments d;
SELECT (SELECT department_name
FROM employees e
INNER JOIN departments d
ON e.`department_id`=d.`department_id`
WHERE employee_id=102);
SELECT AVG(salary)
FROM employees
GROUP BY department_id;
SELECT grade_level,av_d.*
FROM (
SELECT AVG(salary) av,department_id
FROM employees
GROUP BY department_id
) AS av_d
INNER JOIN job_grades g
ON av_d.av BETWEEN lowest_sal AND highest_sal ;