加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql 常用语句实战(3)

发布时间:2020-12-12 02:13:36 所属栏目:MySql教程 来源:网络整理
导读:前置 sql 语句 用来创建表、插入数据 SET FOREIGN_KEY_CHECKS = 0 ; DROP TABLE IF EXISTS dept_; -- 部门表 EXISTS emp_; 1 ; SELECT @@FOREIGN_KEY_CHECKS CREATE TABLE dept_ ( DEPTNO INT PRIMARY KEY , 部门编号 DNAME VARCHAR ( 14 ),1)"> 部门名称 LO

前置 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 );

?

问题列表

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

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读