1、有一员工信息表,使用SQL命令完成如下操作,表结构如表1所示。 表1 员工表(emp) 序号 列名 数据类型 说明 1 empid int 工号 2 name varchar(20) 姓名 3 gender Varchar(1) 性别 4 salary Float(9,2) 工资 (1)创建此员工表,并输入五条记录。 (2)查询工资大于4000元且姓王的男员工的记录。 (3)创建一个存储过程用来计算的员工工资之和。 (4)创建一个存储函数name_emp,实现对emp表查询,输入工号,执行函数即可输出姓名。 (5)创建一个名为ins_sum的触发器,触发条件是在向emp表中插入数据前,对新插入记录的salary字段求和。
时间: 2024-03-01 18:54:52 浏览: 49
SQL emp表的几个重要的操作
好的,我来回答您的问题。
(1)创建此员工表,并输入五条记录。
```sql
CREATE TABLE emp (
empid int PRIMARY KEY,
name varchar(20),
gender varchar(1),
salary float(9,2)
);
INSERT INTO emp VALUES
(1, '张三', '男', 5000.00),
(2, '李四', '男', 4500.00),
(3, '王五', '男', 4200.00),
(4, '赵六', '女', 5200.00),
(5, '钱七', '女', 3800.00);
```
(2)查询工资大于4000元且姓王的男员工的记录。
```sql
SELECT * FROM emp WHERE gender = '男' AND salary > 4000 AND name LIKE '王%';
```
(3)创建一个存储过程用来计算的员工工资之和。
```sql
CREATE PROCEDURE sum_salary()
BEGIN
DECLARE total_salary FLOAT(9,2);
SELECT SUM(salary) INTO total_salary FROM emp;
SELECT total_salary;
END;
```
(4)创建一个存储函数name_emp,实现对emp表查询,输入工号,执行函数即可输出姓名。
```sql
CREATE FUNCTION name_emp(empid_input INT) RETURNS VARCHAR(20)
BEGIN
DECLARE emp_name VARCHAR(20);
SELECT name INTO emp_name FROM emp WHERE empid = empid_input;
RETURN emp_name;
END;
```
(5)创建一个名为ins_sum的触发器,触发条件是在向emp表中插入数据前,对新插入记录的salary字段求和。
```sql
CREATE TRIGGER ins_sum BEFORE INSERT ON emp
FOR EACH ROW
BEGIN
DECLARE total_salary FLOAT(9,2);
SELECT SUM(salary) INTO total_salary FROM emp;
SET NEW.salary = NEW.salary + total_salary;
END;
```
希望能够帮到您。
阅读全文