MySQL
- 一、练习要求
- 二、练习过程
一、练习要求
创建表并插入数据:
字段名 | 数据类型 | 主键 | 外键 | 非空 | 唯一 | 自增 |
---|---|---|---|---|---|---|
id | INT | 是 | 否 | 是 | 是 | 否 |
name | VARCHAR(50) | 否 | 否 | 是 | 否 | 否 |
glass | VARCHAR(50) | 否 | 否 | 是 | 否 | 否 |
sch 表内容
id name glass
1 xiaommg glass 1
2 xiaojun glass 2
- 1、创建一个可以统计表格内记录条数的存储函数 ,函数名为count_sch()
- 2、创建一个存储过程avg_sal,有3个参数,分别是deptno,job,接收平均工资(out);
功能查询employees表的平均薪资满足条件department_id为deptno,job_id为job的平均工资。
二、练习过程
- 1、首先这里我们先需要创建一个表来存储数据,并添加相应的存储函数和存储过程。在这里,我将使用MySQL语法为您提供相应的SQL命令。
CREATE TABLE sch (
id INT PRIMARY KEY NOT NULL,
name VARCHAR(50) UNIQUE NOT NULL,
glass VARCHAR(50) NOT NULL
);
- 2、插入数据:
INSERT INTO sch (id, name, glass) VALUES ('1','xiaommg', 'glass 1');
INSERT INTO sch (id, name, glass) VALUES ('2','xiaojun', 'glass 2');
这将创建一个名为 sch 的表,并插入两行数据。
- 3、创建一个可以统计表格内记录条数的存储函数 count_sch():
\d @
CREATE FUNCTION count_sch()
RETURNS INT
BEGIN
DECLARE count INT DEFAULT 0;
SELECT COUNT(*) INTO count FROM sch;
RETURN count;
END@
这个存储函数 count_sch() 会返回表格内记录的条数。
select count_sch()@
- 4、创建一个存储过程 avg_sal:
\d //
CREATE PROCEDURE avg_sal(IN deptno INT, IN job VARCHAR(50), OUT avg_salary DOUBLE)
BEGIN
SELECT AVG(salary) INTO avg_salary
FROM employees
WHERE department_id = deptno AND job_id = job;
END//
这个存储过程 avg_sal 接收三个参数:deptno,job,和 avg_salary(输出参数)。它会查询名为 employees 的表,根据给定的 department_id 和 job_id 来计算平均薪资,并将结果存储在 avg_salary 输出参数中。