mysql代码小练-3

第一题:

学生表:Student (Sno, Sname, Ssex , Sage, Sdept)

学号,姓名,性别,年龄,所在系 Sno为主键
课程表:Course (Cno, Cname,)
课程号,课程名 Cno为主键
学生选课表:SC (Sno, Cno, Score)
学号,课程号,成绩 Sno,Cno为主键
1.用SQL语句创建学生表student,定义主键,姓名不能重名,性别只能输入男或女,所在系的默认值是 "计算机"。

sql 复制代码
create table student (sno char (10) primary key,sname varchar (20) not null unique,ssex char (2) check (ssex in (' 男 ', ' 女 ')),sage int,sdept varchar (30) default ' 计算机 ');

2.修改student 表中年龄(age)字段属性,数据类型由int 改变为smallint。

sql 复制代码
alter table student modify column sage smallint;

3.为SC表建立按学号(sno)和课程号(cno)组合的升序的主键索引,索引名为SC_INDEX 。

sql 复制代码
create table sc (sno char(10),cno char(4),score decimal(5,1),primary key (sno, cno));

create unique index sc_index on sc (sno asc, cno asc);

create table course(cons char(4) primary key, cname varchar(255) not null);

4.创建一视图 stu_info,查询全体学生的姓名,性别,课程名,成绩。

sql 复制代码
create view stu_info as
     select
         s.sname as 姓名,
         s.ssex as 性别,
         c.cname as 课程名,
         sc.score as 成绩
     from student s
     left join sc sc on s.sno = sc.sno
     left join course c on sc.cno = c.cons;

第二题

1、创建一个存储过程avg_sal_a,有2个参数,分别是部门名称dept_name及接收平均工资,

sql 复制代码
 create procedure avg_sal_a(
     in dept_name varchar(255),
     out a decimal(10,2))
     begin
     select avg(e.salary) into a from employee e
     join department d on e.department_no = d.number
     where d.name = dept_name;
     end $

其中部门名称测试参数为上海中心,接收平均薪资变量为@a。
2、创建存储过程,给定参数员工姓名,查询该员工名所在部门的最高薪资,并返回给变量@a;

sql 复制代码
    
set @a = 0$


 call get_dept_max_sal('吴所为', @a);


select @a as 部门最高薪资$
相关推荐
Leon-Ning Liu14 分钟前
Oracle 26ai新特性:时区、表空间、审计方面的新特性
数据库·oracle
humors22124 分钟前
各厂商工具包网址
java·数据库·python·华为·sdk·苹果·工具包
Yushan Bai1 小时前
ORACLE数据库在进行DROP TABLE时失败报错ORA-00604问题的分析处理
数据库·oracle
77美式1 小时前
Node + Express + MongoDB 后端部署全解析:新手零踩坑
数据库·mongodb·express
阿丰资源1 小时前
SpringBoot+MySQL+MyBatis-Plus+Vue前后端分离仓库管理系统 (附资料)
spring boot·mysql·mybatis
城数派1 小时前
2000-2025年我国省市县三级逐8天日间地表温度数据(Shp/Excel格式)
数据库·arcgis·信息可视化·数据分析·excel
AC赳赳老秦2 小时前
OpenClaw text-translate技能:多语言批量翻译,解决跨境工作沟通难题
大数据·运维·数据库·人工智能·python·deepseek·openclaw
AI应用实战 | RE2 小时前
014、索引高级实战:当单一向量库不够用的时候
数据库·人工智能·langchain
ffqws_2 小时前
Spring Boot入门:通过简单的注册功能串联Controller,Service,Mapper。(含有数据库建立,连接,及一些关键注解的讲解)
数据库·spring boot·后端
清水白石0082 小时前
《Python 架构师的自动化哲学:从基础语法到企业级作业调度系统与 Airflow 止损实战》
数据库·python·自动化