insert into emp( id,name,gender,birthday,salary,entry_date,resume_text ) values( 1,’lilei’,’male’,’1991-05-10’,4000, ‘2013-06-10’,’none’ );如何修改
时间: 2023-04-09 21:01:18 浏览: 140
这是一个 SQL 语句,如果需要修改其中的某些值,可以使用 update 命令,例如:
update emp set name='HanMeimei', salary=5000 where id=1;
这将把 id 为 1 的员工的姓名改为 HanMeimei,薪水改为 5000。
相关问题
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字段求和。
好的,请看下面的 SQL 命令:
1. 创建员工表并插入五条记录:
```sql
-- 创建员工表
CREATE TABLE emp (
empid INT PRIMARY KEY,
name VARCHAR(20),
gender VARCHAR(1),
salary FLOAT(9, 2)
);
-- 插入五条记录
INSERT INTO emp (empid, name, gender, salary) VALUES (1, '张三', 'M', 5000.00);
INSERT INTO emp (empid, name, gender, salary) VALUES (2, '李四', 'F', 6000.00);
INSERT INTO emp (empid, name, gender, salary) VALUES (3, '王五', 'M', 7000.00);
INSERT INTO emp (empid, name, gender, salary) VALUES (4, '赵六', 'F', 8000.00);
INSERT INTO emp (empid, name, gender, salary) VALUES (5, '钱七', 'M', 9000.00);
```
2. 查询工资大于4000元且姓王的男员工的记录:
```sql
SELECT * FROM emp WHERE gender = 'M' 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;
```
这个存储过程名为 sum_salary,它的功能是计算员工表 emp 中所有员工的工资之和,并将结果返回。你可以使用以下命令来调用这个存储过程:
```sql
CALL sum_salary();
```
4. 创建一个存储函数 name_emp,实现对 emp 表查询,输入工号,执行函数即可输出姓名:
```sql
CREATE FUNCTION name_emp(empid INT) RETURNS VARCHAR(20)
BEGIN
DECLARE emp_name VARCHAR(20);
SELECT name INTO emp_name FROM emp WHERE empid = empid;
RETURN emp_name;
END;
```
这个存储函数名为 name_emp,它的输入参数是 empid,输出参数是 VARCHAR 类型的员工姓名。你可以使用以下命令来调用这个存储函数:
```sql
SELECT name_emp(1);
```
这个命令将返回 empid 为 1 的员工的姓名。
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;
```
这个触发器名为 ins_sum,它的功能是在插入新数据前,先计算所有员工的工资之和,然后将这个和加到新插入记录的 salary 字段上。这样,每次插入新记录时,salary 字段的值都会加上之前所有员工的工资之和。
阅读全文