Mysql 常用语句实战(3)

前端之家收集整理的这篇文章主要介绍了Mysql 常用语句实战(3)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前置 sql 语句

用来创建表、插入数据

SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE
IF
    EXISTS dept_;-- 部门表
EXISTS emp_;1;

SELECT  @@FOREIGN_KEY_CHECKSCREATE TABLE dept_ ( DEPTNO INT PRIMARY KEY, 部门编号
DNAME VARCHAR ( 14 ),1)"> 部门名称
LOC 13 )  部门地址
);
INSERT INTO dept_
VALUES
    ( 10,'ACCOUNTING',1)">NEW YORK' );
20,1)">RESEARCHDALLAS30,1)">SALESCHICAGO40,1)">OPERATIONSBOSTONTABLE emp_ (
emp_NO  员工编号
ENAME 10 ),1)"> 员工名称
JOB 9 ),1)"> 工作
MGR DOUBLE,1)"> 直属领导编号
HIREDATE DATE,1)"> 入职时间
SAL  工资
COMM  奖金
DEPTNO INT,1)"> 部门号
FOREIGN KEY ( DEPTNO ) REFERENCES dept_ ( DEPTNO ) 
);
 emp_
7369,1)">SMITHCLERK7902,1)">1980-12-17800,1)">NULL,1); font-weight: bold">207499,1)">ALLENSALESMAN7698,1)">1981-02-201600,1); font-weight: bold">300,1); font-weight: bold">307521,1)">WARD1981-02-221250,1); font-weight: bold">500,1); font-weight: bold">7566,1)">JONESMANAGER7839,1)">1981-04-022975,1); font-weight: bold">7654,1)">MARTIN1981-09-281400,1)">BLAKE1981-05-012850,1); font-weight: bold">7782,1)">CLARK1981-06-092450,1); font-weight: bold">107788,1)">SCOTTANALYST1987-07-133000,1)">KINGPRESIDENT1981-11-175000,1); font-weight: bold">7844,1)">TURNER1981-09-081500,1); font-weight: bold">0,1); font-weight: bold">7876,1)">ADAMS1100,1); font-weight: bold">7900,1)">JAMES1981-12-03950,1)">FORD7934,1)">MILLER1982-01-231300,1); font-weight: bold">10 );@H_301_231@

 

问题列表

1、列出至少有三个员工的所有部门和部门信息。

2、列出受雇日期早于直接上级的所有员工的编号,姓名,部门名称

3、列出职位为“CLERK”的姓名和部门名称,部门人数:

 

答案列表

1.列出至少有三个员工的所有部门和部门信息。

select * from dept_ where DEPTNO in (select DEPTNO from emp_ group by DEPTNO having count(1) >= 3)

2.列出受雇日期早于直接上级的所有员工的编号,姓名,部门名称
select a.emp_NO,a.ENAME,(select DNAME from dept_ c where a.DEPTNO = c.DEPTNO) "部门名称" from emp_ a join emp_ b on a.MGR = b.emp_NO where a.HIREDATE < b.HIREDATE

.列出职位为“CLERK”的姓名和部门名称,部门人数:
select group_concat(a.ENAME),b.DNAME,count(1) from emp_ a join dept_ b on a.DEPTNO = b.DEPTNO  where a.JOB = CLERK" group by b.DEPTNO@H_301_231@

 

猜你在找的MySQL相关文章