-- 取得薪水前3名的员工 SELECT * FROM `employee` ORDER BY `SALARY` DESC LIMIT 3; -- 取得所有员工的名字且不重复 SELECT DISTINCT `name` FROM `employee`;
例三(aggregate functions聚合函数)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
-- 1.取得员工人数 SELECT COUNT(*) FROM `employee`; -- 2.取得sup_id非空的员工人数 SELECT COUNT(`sup_id`) FROM `employee`; -- 3.取得所有生于1970-01-01之后的女性员工人数 SELECT COUNT(*) FROM `employee` WHERE `birth_date` >`1970-01-01` AND `sex`=`F`; -- 4.取得所有员工的平均薪水 SELECT AVG(`salary`) FROM `employee`; -- 5.取得所有员工薪水的总和 SELECT SUM(`salary`) FROM `employee`; -- 6.取得薪水的最高的员工 SELECT MAX(`salary`) FROM `employee`; -- 7.取得薪水最低的员工 SELECT MIN(`salary`) FROM `employee`;
例四(wildcards万用字元)
1 2 3 4 5 6 7 8 9 10 11
-- %代表多个字元,_代表一个字元 -- 1.取得电话号码尾数为335的客户 SELECT * FROM `client` WHERE `phone` LIKE '%335'; -- 2.取得电话号码开头为685的客户 SELECT * FROM `client` WHERE `phone` LIKE '685%'; -- 3.取得电话号码包含926的客户 SELECT * FROM `client` WHERE `phone` LIKE '%926%'; -- 4.取得性艾的客户 SELECT * FROM `client` WHERE `client_name` LIKE '艾%'; -- 5.取得生日在9月的员工 SELECT * FROM `client` WHERE `birth_data` LIKE '_____09%';
例五(union联集)
1 2 3 4 5 6
-- 1.员工名字union客户名字 SELECT `name` FROM `employee` UNION SELECT `client_name` FROM `client`; -- 2.员工id+员工名字 union 客户id+id名字,AS`xx`用来自定义列名,也可以不加 SELECT `emp_id` AS `total_id`,`name` AS `total_name` FROM `employee` UNION SELECT `client_id`,`client_name` FROM `client`; -- 3.员工薪水 union 销售金额 SELECT `salary` FROM `employee` UNION SELECT `total_sales` FROM `work_with`;
例六(join连接)
join帮助将两个表格连接在一起 (还是直接看2:19:00吧,写不清楚)
例七(subquery子查询)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
-- 1.找出研发部门经理的名字 select `name` FROM `employee` WHERE `emp_id`=( SELECT `manager_id` FROM `branch` WHERE `branch_name`=`研发`; ); -- 2.找出对单一位客户销售金额超过50000的员工名字 SELECT `name` FROM `employee` WHERE `emp_id` IN( SELECT `emp_id` FROM `work_with` WHERE `total_sales` >50000 );