Mysql 常用語句實戰(1)


前置 sql 語句

用來創建表、插入數據

DROP TABLE IF EXISTS `emp`;
CREATE TABLE `emp`  (
  `id` int(11) NOT NULL COMMENT '員工編號',
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '員工姓名',
  `dept_id` int(11) NULL DEFAULT NULL COMMENT '部門編號',
  `leader` int(11) NULL DEFAULT NULL COMMENT '直屬領導id',
  `is_enable` int(11) NULL DEFAULT NULL COMMENT '是否在職 1在職 0離職',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;


INSERT INTO `emp` VALUES (1, '張三豐', 1, 0, 1);
INSERT INTO `emp` VALUES (2, '張無忌', 1, 1, 1);
INSERT INTO `emp` VALUES (3, '小龍女', 1, 1, 1);
INSERT INTO `emp` VALUES (4, '小白菜', 1, 3, 1);
INSERT INTO `emp` VALUES (5, '韋小寶', 2, 0, 1);
INSERT INTO `emp` VALUES (6, '令狐沖', 2, 0, 1);
INSERT INTO `emp` VALUES (7, '東方不敗', 0, 8, 1);
INSERT INTO `emp` VALUES (8, '任我行', 3, 0, 1);
INSERT INTO `emp` VALUES (9, '李尋歡', 0, 8, 1);


DROP TABLE IF EXISTS `dept`;
CREATE TABLE `dept`  (
  `id` int(11) NOT NULL COMMENT '部門id',
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '部門名稱',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;

INSERT INTO `dept` VALUES (1, '銷售部');
INSERT INTO `dept` VALUES (2, '信息技術部');
INSERT INTO `dept` VALUES (3, '財務部');
INSERT INTO `dept` VALUES (4, '有關部門');

 

題目列表

1、查詢張姓員工的員工信息和所在部門信息。

2、查詢張三豐管理了幾個員工

3、查詢出所有實習員工(實習員工無部門信息)

4、查詢每個部門有多少個員工,並打印部門名字、部門里的所有員工名字

 

答案列表

-- 1、查詢張姓員工的員工信息和所在部門信息。
select * from emp e left join dept d on e.dept_id=d.id where e.`name` like "%%";

-- 2、查詢張三豐管理了幾個員工
select e1.name,count(1) as "手下數量" from emp e1 inner join emp e2 on e1. id = e2.leader where e1.`name` = "張三豐";

-- 3、查詢出所有實習員工(實習員工無部門信息)
select * from emp e where e.dept_id not in (select id from dept)
select * from emp e left join dept d on e.dept_id = d.id where d.name is null

-- 4、查詢每個部門有多少個員工,並打印部門名字、部門里的所有員工名字
select d.id,d.name,count(1),group_concat(e.name) from emp e right join dept d on e.dept_id = d.id group by d.id

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM