MYSQL基础练习(二)
创建company数据库,在数据库中根据以下图示创建表,表结构如下,并插入以下数据,完成下面的sql。
dept表:
emp表:
salgrade表:
dept表数据:
emp表数据:
salgrade表数据:
完成以下SQL编写
1.修改emp表中sal字段为salary
2 .查找年薪在20000到30000之间的所有员工信息并按照工资降序显示
3.查找员工姓名中包含’A’的所有员工信息
4.查找所有员工姓名中包含’A’及’E’的员工信息
5.查找所有的职位为SALESMAN的员工信息
6.将工资低于2000的员工工资涨薪200
7.查询没有上级领导的所有员工信息
8.查询没有奖金的所有员工信息
9.将部门表中的40部门的地址修改成’xian’
10.假设李华的工资是2000,请查询出他的工资等级
11.将MILLER的入职日期修改为1982年2月23日
第一步:创建company数据库
create database company;
第二步:创建表结构并插入数据
- 创建dept表结构:
create table `dept`(
`DEPTNO` int comment'部门编号',
`DNAME` varchar(14) comment'部门名称',
`loc` varchar(14) comment'部门地点'
);
- 创建emp表结构:
create table `emp`(
`EMPNO` int comment'员工编号',
`ENAME` varchar(10) comment'员工姓名',
`JOB` varchar(9) comment '员工职位',
`MGR` int comment'领导编号',
`HIREDATE` date comment'入职日期',
`SAL` double comment'工资',
`COMM` double comment'奖金',
`DEPTNO` int comment'部门编号'
);
- 创建salgrade表结构:
create table `salgrade`(
`GRADE`int comment'工资等级',
`LOSAL`int comment'最低工资',
`HISAL` int comment'最高工资'
);
- 插入dept表数据:
INSERT INTO dept(DEPTNO,DNAME,LOC) VALUES
(10,'ACCOUNTING','NEW YORK'),
(20,'RESEARCH','DALLAS'),
(30,'SALES','CHICAGO'),
(40,'OPERATIONS','BOSTON');
- 插入emp表数据:
INSERT INTO emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES
(7369, 'SMITH', 'CLERK', 7902, '1980-01-17', 800, NULL, 20),
(7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600, 300, 30),
(7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250, 500, 30),
(7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975, NULL, 20),
(7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250, 1400, 30),
(7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850, NULL, 30),
(7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450, NULL, 10),
(7788, 'SCOTT', 'ANALYST', 7566, '1987-07-13', 3000, NULL, 20),
(7839, 'KING', 'PRESIDENT', NULL, '1981-11-17', 5000, NULL, 10),
(7844, 'TURNER', 'SALESMAN', 7698, '1981-09-08', 1500, 0, 30),
(7876, 'ADAMS', 'CLERK', 7788, '1987-07-13', 1100, NULL, 20),
(7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950, NULL, 30),
(7902, 'FORD', 'ANALYST', 7566, '1981-12-03', 3000, NULL, 20),
(7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300, NULL, 10);
- 插入salgrade表数据:
INSERT INTO salgrade(GRADE,LOSAL,HISAL) VALUES
(1,700,1200),
(2,1201,1400),
(3,1401,2000),
(4,2001,3000),
(5,3001,9999);
第三步:按照要求完成sql语句
- 修改emp表中sal字段为salary
alter table emp change SAL SALARY double;
2.查找年薪在20000到30000之间的所有员工信息并按照工资降序显示
select * from emp where (salary*12) between 20000 and 30000 order by salary desc;
3.查找员工姓名中包含’A’的所有员工信息
select * from emp where ename like '%A%';
4.查找所有员工姓名中包含’A’及’E’的员工信息
select * from emp where ename like'%A%'and ename like'%E%';
5.查找所有的职位为SALESMAN的员工信息
select * from emp where job='salesman';
6.将工资低于2000的员工工资涨薪200
update emp set salary=salary+200 where salary<2000;
7.查询没有上级领导的所有员工信息
select * from emp where MGR is NULL;
8.查询没有奖金的所有员工信息
select * from emp where comm is null;
9.将部门表中的40部门的地址修改成’xian’
update dept set loc='xian' where deptno=40;
10.假设李华的工资是2000,请查询出他的工资等级
select grade from salgrade where 2000 between losal and hisal;
11.将MILLER的入职日期修改为1982年2月23日
update emp set hiredate='1982-02-23' where ename='miller';