(1) 职工表Employee(职工编号Eno,职工姓名Ename,性别sex,年龄age,婚否Is_Marry,职称Title,部门编号Dno) (2) 项目表Itme(项目编号Ino,项目名称Iname,项目开始日期Start_date,项目结束日期End_date,项目费用Outlay,验收日期Check_date) (3) 参与表Item_Emp(项目编号Ino,职工编号Eno,项目中排名IENo) (4) 工资表Salary(职工编号Eno,基本工资Basepay,津贴Service,贴补Price,公积金Rest,养老金Insure,医保Fund) (5) 部门表Department(部门编号Dno,部门名Name,电话Phone,将所有工程师的工资改为职工的平均工资
时间: 2023-07-16 14:12:14 浏览: 77
可以使用以下 SQL 语句实现:
```
UPDATE Salary
SET Basepay = (SELECT AVG(Basepay) FROM Salary WHERE Eno IN (SELECT Eno FROM Employee WHERE Title = '工程师'))
WHERE Eno IN (SELECT Eno FROM Employee WHERE Title = '工程师')
```
这条语句先通过子查询获取所有工程师的平均工资,然后将工资表中工程师的基本工资更新为该平均工资。
相关问题
创建Employee表包含Eno,Ename,Sex,Age,Is_Marry,Title,Dno插入“1002 胡一民 男 38 1 工程师 01 ”这些数据
CREATE TABLE Employee (
Eno INT PRIMARY KEY,
Ename VARCHAR(50),
Sex VARCHAR(10),
Age INT,
Is_Marry INT,
Title VARCHAR(50),
Dno VARCHAR(10)
);
INSERT INTO Employee (Eno, Ename, Sex, Age, Is_Marry, Title, Dno)
VALUES (1002, '胡一民', '男', 38, 1, '工程师', '01');
(1) 职工表Employee(职工编号Eno,职工姓名Ename,性别sex,年龄age,婚否Is_Marry,职称Title,部门编号Dno) (2) 项目表Itme(项目编号Ino,项目名称Iname,项目开始日期Start_date,项目结束日期End_date,项目费用Outlay,验收日期Check_date) (3) 参与表Item_Emp(项目编号Ino,职工编号Eno,项目中排名IENo) (4) 工资表Salary(职工编号Eno,基本工资Basepay,津贴Service,贴补Price,公积金Rest,养老金Insure,医保Fund) (5) 部门表Department(部门编号Dno,部门名Name,电话Phone,从Item_Emp表中,删除“丁为国”的所有元组。
可以使用如下 SQL 语句删除 Item_Emp 表中职工姓名为“丁为国”的所有元组:
```
DELETE FROM Item_Emp WHERE 职工编号Eno = (SELECT Eno FROM Employee WHERE 职工姓名Ename = '丁为国')
```
注意,这个 SQL 语句中使用了子查询,在子查询中先根据职工姓名查询到职工编号,然后再将其作为条件删除 Item_Emp 表中的元组。