當前位置:首頁 » 編程語言 » 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