MySQL学习之创建表—部门,员工,工资,奖金表

-- 部门表:
create table dept(
	deptno int(2) not null,
	dname varchar(14),
	loc varchar(13)
);

-- 设置主键
alter table dept add constraint pk_dept primary key (deptno);

-- 创建员工表:
create table emp(
	empno int(4) primary key,
	ename varchar(10),
	job varchar(9),
	mgr int(4), -- 上级领导 自身表 自关联
	hiredate date,
	sal double(7,2),
	comm double(7,2), -- 补助
	deptno int(2)
);

-- 设置外键:
alter table emp add constraint fk_deptno foreign key (deptno) references dept (deptno);


-- 创建薪资等级表:
create table salgrade(
	grade int primary key,
	losal double(7,2), -- 最低
	hisal double(7,2) -- 最高
);

-- 创建奖金表:
create table bonus(
	ename varchar(18),
	job varchar(9),
	sal double(7,2),
	comm double(7,2)
);

-- 插入数据:

insert into dept (deptno,dname,loc) values(10,'accounting','new york');
insert into dept (deptno,dname,loc) values(20,'research','dallas');
insert into dept (deptno,dname,loc) values(40,'sales','chicago');
insert into dept (deptno,dname,loc) values(30,'oprations','boston');

INSERT INTO `mytestdb`.`emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) VALUES (7369, 'smith', 'clerk', 7902, '1980-12-17', 800.00, NULL, 20);
INSERT INTO `mytestdb`.`emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) VALUES (7499, 'allen', 'salesman', 7698, '1982-11-12', 1600.00, 300.00, 30);
INSERT INTO `mytestdb`.`emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) VALUES (7521, 'ward', 'salesman', 7698, '1981-03-13', 1250.00, 500.00, 30);
INSERT INTO `mytestdb`.`emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) VALUES (7566, 'jones', 'manager', 7839, '1981-04-02', 2975.00, NULL, 20);
INSERT INTO `mytestdb`.`emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) VALUES (7654, 'martin', 'salesman', 7698, '1980-01-10', 1250.00, 1400.00, 30);
INSERT INTO `mytestdb`.`emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) VALUES (7698, 'blake', 'manager', 7839, '1984-05-14', 2850.00, NULL, 30);
INSERT INTO `mytestdb`.`emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) VALUES (7782, 'clark', 'manager', 7839, '1983-07-02', 2450.00, NULL, 10);
INSERT INTO `mytestdb`.`emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) VALUES (7788, 'scott', 'analyst', 7566, '1986-02-04', 3000.00, NULL, 20);
INSERT INTO `mytestdb`.`emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) VALUES (7839, 'king', 'president', NULL, '1987-11-02', 5000.00, NULL, 10);
INSERT INTO `mytestdb`.`emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) VALUES (7844, 'turner', 'salesman', 7698, '1983-05-03', 1500.00, 0.00, 30);
INSERT INTO `mytestdb`.`emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) VALUES (7875, 'adams', 'clerk', 7788, '1984-11-12', 1100.00, NULL, 20);
INSERT INTO `mytestdb`.`emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) VALUES (7900, 'jamesford', 'clerk', 7698, '1987-12-11', 950.00, NULL, 30);
INSERT INTO `mytestdb`.`emp` (`empno`, `ename`, `job`, `mgr`, `hiredate`, `sal`, `comm`, `deptno`) VALUES (7902, 'analyst', 'analyst', 7566, '1980-12-17', 3000.00, NULL, 20);


insert into salgrade(grade,losal,hisal) values(1,700,1200);
insert into salgrade(grade,losal,hisal) values(2,1201,1400);
insert into salgrade(grade,losal,hisal) values(3,1401,2000);
insert into salgrade(grade,losal,hisal) values(4,2001,3000);
insert into salgrade(grade,losal,hisal) values(5,3001,9999);


-- 查看表:
select * from dept;
select * from emp;
select * from salgrade;
select * from bonus;

show create table emp;
desc emp;

  • 7
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,根据您的需求,我为您提供一份基础的员工信息管理系统的数据库设计方案,包括员工部门、薪资,建议使用MySQL数据库。具体方案如下: 1. 员工 员工包含员工的基本信息,如员工编号、姓名、性别、出生日期、入职日期、所属部门等。 ```sql CREATE TABLE `employee` ( `emp_id` varchar(10) NOT NULL COMMENT '员工编号', `emp_name` varchar(20) NOT NULL COMMENT '员工姓名', `gender` varchar(5) NOT NULL COMMENT '员工性别', `birthday` date NOT NULL COMMENT '员工出生日期', `hire_date` date NOT NULL COMMENT '员工入职日期', `dept_id` varchar(10) NOT NULL COMMENT '所属部门编号', PRIMARY KEY (`emp_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='员工信息'; ``` 2. 部门 部门包含部门的基本信息,如部门编号、部门名称、上级部门编号等。 ```sql CREATE TABLE `department` ( `dept_id` varchar(10) NOT NULL COMMENT '部门编号', `dept_name` varchar(20) NOT NULL COMMENT '部门名称', `parent_dept_id` varchar(10) NOT NULL COMMENT '上级部门编号', PRIMARY KEY (`dept_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门信息'; ``` 3. 薪资 薪资包含员工的薪资信息,如员工编号、基本工资奖金等。 ```sql CREATE TABLE `salary` ( `emp_id` varchar(10) NOT NULL COMMENT '员工编号', `basic_salary` decimal(10,2) NOT NULL COMMENT '基本工资', `bonus` decimal(10,2) NOT NULL COMMENT '奖金', PRIMARY KEY (`emp_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='薪资信息'; ``` 以上是一个基础的员工信息管理系统的数据库设计方案,您可以根据实际需求进行修改和完善。同时,为了保证数据的完整性和准确性,还需要为每个添加相应的约束和索引。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值