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 部门最高薪资$
相关推荐
dzl843941 小时前
HikariCP 数据库连接池配置
数据库
万邦科技Lafite2 小时前
一键获取淘宝关键词商品信息指南
开发语言·数据库·python·商品信息·开放api·电商开放平台
程序猿20232 小时前
MySQL的索引
数据库·mysql
m0_692540072 小时前
数据库表设计规范
数据库·oracle
Coder_Boy_2 小时前
【人工智能应用技术】-基础实战-环境搭建(基于springAI+通义千问)(二)
数据库·人工智能
云贝教育-郑老师2 小时前
【OceanBase OBCE V3.0认证】
数据库·oceanbase
思成不止于此4 小时前
【MySQL 零基础入门】DDL 核心语法全解析:数据库与表结构操作篇
数据库·笔记·学习·mysql
韩立学长4 小时前
【开题答辩实录分享】以《自选便利店商品分类管理系统》为例进行选题答辩实录分享
java·mysql·web
aspirestro三水哥4 小时前
2.5构建Xenomai测试与演示镜像
数据库·rtos·xenomai