当前位置:首页 » 编程语言 » SQL为员工加薪
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

SQL为员工加薪

发布时间: 2023-05-11 16:10:36

A. 谁会sql的语句帮我解一下好吗

分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:

题目: C.设数据库中有三个关系:

职工表EMP(E#,ENAME,AGE,SEX,ECITY),其属性分别表示职工工号、姓名、年龄、性别和籍贯。

工作表WORKS(E#,C#,SALARY),其属性分别表示职工工皮胡号、工作的公司编号和工资。

公司表COMP(C#,CNAME,CITY),其属性分别表示公司编号、公司名称和公司所在城市。

试用SQL语句写出下列操作:

1.用CREATE TABLE语句创建上述三个表,需指出主键和外键.

2.检索超过50岁的男职工的工号和姓名.

3.假设每个职工只能在一燃唯拦个公司工作,检索工资超过1000元的男性职工工号和姓名.

4.假设每个职工可在多个公司工作,检索在编号为C4和C8公司 *** 的职工工号和姓名.

5.检索在"联华公司"工作、工资超过1000元的男性职工的工号和姓名.

6.假设每个职工可在多个公司工作,检索每个职工的 *** 公司数目和工资总数.显示(E#,NUM,SUM_SALARY),分别表示工号、公司数目和工资总数。

7.工号为E6的职工在多个公司工作,试检索至少在E6职工 *** 的所有公司工作的职工工号。

8.检索联华公司中低于本公司平均工资的职工工号山逗和姓名.

9.在每一公司中为52岁以上职工加薪100元(若职工工号为多个公司工作,可重复加).

10.在EMP表和WORKS表中删除年龄大于60岁的职工有关元组.

解析:

我以ORACLE数据库为例,其他数据库同理,只不过变换一下数据类型:

1.用CREATE TABLE语句创建上述三个表,需指出主键和外键.

职工表

CREATE TABLE EMP(

E# VARCHAR2(4) NOT NULL,

ENAME VARCHAR2(10) NOT NULL,

AGE NUMBER(2,0) NULL,

SEX VARCHAR2(2) NULL,

ECITY VARCHAR2(10) NULL,

CONSTRAINT PK_EMP PRIMARY KEY(E#)

)

公司表

CREATE TABLE COMP(

C# VARCHAR2(4) NOT NULL,

CNAME VARCHAR2(10) NOT NULL,

CITY VARCHAR2(10) NULL,

CONSTRAINT PK_COMP PRIMARY KEY(C#)

)

工作表

CREATE TABLE WORKS(

E# VARCHAR2(4) NOT NULL,

C# VARCHAR2(4) NOT NULL,

SALARY NUMBER(5,0) NULL,

CONSTRAINT PK_WORKS PRIMARY KEY(E#,C#),

CONSTRAINT FK_E FOREIGN KEY(E#) REFERENCES EMP(E#),

CONSTRAINT FK_C FOREIGN KEY(C#) REFERENCES COMP(C#)

)

2.检索超过50岁的男职工的工号和姓名.

SELECT E#,ENAME

FROM EMP

WHERE AGE>50 AND SEX ='男'

3.假设每个职工只能在一个公司工作,检索工资超过1000元的男性职工工号和姓名.

SELECT E#,ENAME

FROM EMP

WHERE SALARY>1000 AND SEX ='男'

4.假设每个职工可在多个公司工作,检索在编号为C4和C8公司 *** 的职工工号和姓名.

SELECT E#,ENAME

FROM EMP

WHERE (C#='C4' OR C#='C8')

AND 1< (

SELECT COUNT(E#)

FROM WORKS

WHERE C#='C4' OR C#='C8')

现在有工作~闲的时候再给你接着写

B. 给各个部门最低工资的员工加薪100,具体sql该怎么写

update emp
set sal=sal+100
where empno in (
select empno,min(sal)
from emp
group by deptno,empno
)

C. 求员工及员工所有下属累加工资sql

--SQL如下衫侍:
SELECT
A.EMPLOYEE_ID --员工ID
,A.EMPLOYEE_NAME --员工姓名
,SUM(DISTINCT A.SALARY) + SUM(COALESCE(B.SALARY,0)) --本人工资+所有下属工资
FROM EMPLOYEE A --员工表(上码塌滚级)
LEFT JOIN EMPLOYEE B --员工表(下属)迟余
ON A.EMPLOYEE_ID = B.SUPERIOR_ID --员工ID=下属的上级ID
GROUP BY A.EMPLOYEE_ID
;

D. 用SQLsever编写:​设计一个新表(EMPLOYEES1),要求在公司工作20年以上员工的工资加薪

在您另一个提问贴中回答了,这里也再答一次吧。
用下面的语句实现吧:
update a
set Salary = a.Salary+b.Salary
from Employee_0001 as a,(select DepartmentId,avg(Salary) as Salary from Employee_0001 group by DepartmentId)b
where a.DepartmentId=b.DepartmentId and datediff(yy,a.Hiredate,getdate())>=20

原理是把Employee_0001表与计算平均工资的临时表用DepartmentId关联起来,再通过where的条件判断,只将工龄大于或等于20的执行更新操作。

E. 用sql分析器向表加工资

update 工资表 set 月工资=月工资+100
where 工龄>3
--如果侍脊工龄是字符类型
where cast(工洞瞎龄 as int)>老颤渗3

F. sql语句:现在公司打算将年龄>=40岁并且薪水<2000元的员工中,将每个人加薪200

如果一张表
update Salary set Salary= Salary+200 where age>=40 and Salary<2000;

如果二张表
update User join Salary set Salary+=200 where User.age>=40 and Salary<2000 on User.id = Salary.uid;

G. 试用SQL语句写出下列操作

1) create database CMP;
2) create table EMP( E# char(8) primary key,
ENAME char(20) not null,
AGE int,
SEX char(2),
ECITY char(40));
Create table COMP( C# char(5) primary key,
CNAME char(40) not null,
CITY char(40),
MANAGERchar(8) references EMP(E#));
create table WORKS(
E# char(5) foreign key references EMP(E#),
C# char(2) foreign key references COMP(C#),
SALARY decimal(6,2),
Primary key(E#,C#)
);

3)select E#,ENAME from EMP where AGE>50 and SEX=’男’ order byAGE DESC;
4) select EMP.E#,ENAME from EMP,WORKS where SEX=’男’ and
SALARY>1500 and EMP.E#=WORKS.E#;
5) select EMP.E#,ENAME
from EMP,COMP,WORKS
where EMP.E#=WORKS.E# and
COMP.C#=WORKS.C# and
CNAME='华联公司'andSALARY <( select avg(SALARY) from WORKS,COMP where CNAME='华联公司'and COMP.C#=WORKS.C#)
6)update WORKS set SALARY=SALARY+100 where E# in(select E#
From EMP where AGE>50)
7)delete from WORKS where E# in(select E# from EMP where AGE>60)
Delete from EMP where AGE>60
8) create view hualian_female(E#,ENAME,C#,CNAME,SALARY)
as select EMP.E#,ENAME,COMP.C#,CNAME,SALARY from EMP,COMP,WORKS
where EMP.E#=WORKS.E# and
COMP.C#=WORKS.C# and SEX='女'andCNAME='华联公司'

试述视图的作用。
答:
( l )视图能够简化用户的操作; ( 2 )视图使用户能以多种角度看待同一数据; ( 3 )视图对重构数据库提供了一定程度的逻辑独立性; ( 4 )视图能够对机密数据提供安全保护。

建立索引时需要考虑哪些影响性能的问题?
(1)表的数据量;(2)建立索引的数量;(3)建立索引的时机;(4)是否建立聚簇索引;(5)数据是否有大量的重复值;

H. 写SQL,把scott.emp表中,所有JOB为MANAGER的加薪15%

updateempsetsalary=salart*1.15wherejob='桐局MANAGER';
commit;

commit不可省,这个局尘让是提交,否则你把你执行兄基语句的页面关了,不能使数据更新

I. 在“工资表”中给员工“司马光”工资增加200元的SQL语句是什么

update`工资表`set`工资_column`=`工资_column`+200where`name`='司马光';

J. 为所有的50以上的职工加薪一百元。用SQL语句怎么编写

update table set salary=salary+100 where salary>=50