mysql创建部门表和员工表,并用sql语句进行查询

创建第一个表(部门表)

CREATE TABLE IF NOT EXISTS bumenTable(
	bumenTableid INT(11) NOT NULL PRIMARY KEY COMMENT'部门编号(主键)',
	bumenTablename VARCHAR(50) COMMENT'部门名称',
	bumenTableaddress VARCHAR(50) COMMENT'部门地址'

创建第二个表(员工表)

CREATE TABLE yuangong(
	id INT(11) NOT NULL PRIMARY KEY COMMENT'员工编号',
	yuangongname VARCHAR(50) COMMENT'员工姓名',
	word VARCHAR(50) COMMENT'员工工作',
	lineManagerId INT(11) COMMENT'员工直属领导编号',
	entryTime datetime COMMENT'员工入职时间',
	wage INT(11) COMMENT'员工工资',
	bonus INT(11) COMMENT'员工奖金',
	bumenTableId INT(11) NOT NULL COMMENT'对应部门表的外键',
	FOREIGN KEY(bumenTableId) REFERENCES bumenTable(bumenTableid)

添加部门表信息

INSERT INTO  bumenTable(bumenTableid,bumenTablename,bumenTableaddress) VALUES 
(1,'销售部','销售部地址'),
(2,'学业部','学业部地址'),
(3,'董事部','董事部地址'),
(4,'人力资源部','人力资源部地址'),
(5,'产品部','产品部地址')

添加员工表信息

INSERT INTO yuangong VALUES ('1', '小王', '职员', '2', '2017-06-14 14:30:50', '4000', null, '1');
INSERT INTO yuangong VALUES ('2', '小李', '销售经理', '4', '2016-08-16 14:32:08', '20800', '5000', '1');
INSERT INTO yuangong VALUES ('3', '小张', '产品经理', '4', '2016-05-04 14:33:05', '22700', null, '5');
INSERT INTO yuangong VALUES ('4', '小高', '职员', null, '2015-07-08 14:33:54', '5000', null, '2');
INSERT INTO yuangong VALUES ('5', '小刘', 'HR经理', '4', '2017-11-08 14:35:35', '10000', null, '4');
INSERT INTO yuangong VALUES ('6', '王一', '学业经理', '4', '2016-11-01 14:36:28', '20000', '5000', '2');
INSERT INTO yuangong VALUES ('7', '王二', '职员', '3', '2018-03-22 14:38:44', '5000', null, '5');
INSERT INTO yuangong VALUES ('8', '李四', '职员', '5', '2017-04-01 14:39:53', '5000', null, '4');
INSERT INTO yuangong VALUES ('9', '李一', '职员', '6', '2018-08-01 14:40:43', '5000', null, '2');
INSERT INTO yuangong VALUES ('10', '李二', '职员', '2', '2018-05-17 14:41:30', '5000', null, '1');
INSERT INTO yuangong VALUES ('11', '李三', '职员', '2', '2017-05-01 14:42:20', '5000', null, '1');
INSERT INTO yuangong VALUES ('12', '公司人员', '其他', null, '2015-07-08 15:31:52', '1234567', '1234567', '5');

找出从事职员工作的员工的编号、姓名、部门号。

SELECT id,yuangongname,bumenTableId FROM yuangong WHERE word = '职员';

找出1部门的经理、2部门的职员 的员工信息。

SELECT * FROM yuangong WHERE id in(SELECT id FROM yuangong WHERE bumenTableId=1 AND word LIKE '%经理')
|| id in (SELECT id FROM yuangong WHERE bumenTableId=2 AND word = '职员')

找出1部门的经理、2部门的职员 或者既不是经理也不是职员但是工资高于2000元的员工信息

SELECT * FROM yuangong WHERE id in (
SELECT id FROM yuangong WHERE id in (SELECT id FROM yuangong WHERE bumenTableId=1 AND word LIKE '%经理')
|| id in (SELECT id FROM yuangong WHERE bumenTableId=2 AND word = '职员')
) || 
id in (SELECT id FROM yuangong WHERE word NOT LIKE '%经理' && word !='职员' && wage >2000)

找出获得奖金的员工的工作。

SELECT word FROM yuangong WHERE bonus !=0

返回员工的详细信息并按姓名排序。

SELECT * FROM yuangong , bumenTable WHERE bumenTable.bumenTableid = yuangong.bumenTableId
ORDER BY yuangong.yuangongname

找出姓名以小、王、李开始的员工信息

SELECT * FROM yuangong WHERE yuangongname LIKE '小%' || yuangongname LIKE '王%' || yuangongname LIKE '李%'

#返回拥有员工的部门名、部门号

SELECT bumenTableid,bumenTablename FROM bumenTable WHERE bumenTableid in
(SELECT bumenTableId FROM yuangong GROUP BY bumenTableId)

工资水平多于小刘的员工信息。

SELECT * FROM yuangong WHERE wage > 
(SELECT wage FROM yuangong WHERE yuangongname = '小刘')

返回员工姓名及其所在的部门名称。

SELECT yuangongname as 员工姓名,bumenTablename 所在部门 FROM yuangong,bumenTable
WHERE yuangong.bumenTableId = bumenTable.bumenTableid

查询入职时间由高到低的员工编号,姓名,以及所在部门。

SELECT id 员工编号,yuangongname as 员工姓名,bumenTablename 所在部门 FROM yuangong,bumenTable
WHERE yuangong.bumenTableId = bumenTable.bumenTableid ORDER BY entryTime DESC
  • 29
    点赞
  • 202
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值