MySQL数据库索引练习

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

学号,姓名,性别,年龄,所在系 Sno为主键

课程表:Course (Cno, Cname,)

课程号,课程名 Cno为主键

学生选课表:SC (Sno, Cno, Score)

学号,课程号,成绩 Sno,Cno为主键

1.用SQL语句创建学生表student,定义主键,姓名不能重名,性别只能输入男或女,所在系的默认值是 "计算机"。

csharp 复制代码
create table Student(
     Sno int primary key auto_increment,
     Sname varchar(100) NOT NULL unique,
     Ssex varchar(20) check (Ssex='男' or Ssex='女') NOT NULL,
     Sage int NOT NULL,
     Sdept varchar(100) default '计算机' NOT NULL
     );

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

csharp 复制代码
alter table Student modify Sage smallint;

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

csharp 复制代码
创建Course表
create table Course(
     Cno int primary key NOT NULL,
     Cname varchar(100) NOT NULL
     );
创建SC表
create table SC(
     Sno int NOT NULL,
     Cno int primary key NOT NULL,
     Score int NOT NULL
     );

create unique index SC_INDEX on SC(Sno asc, Cno asc);

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

csharp 复制代码
 create view stu_info as select Student.Sname as '姓名', Student.Ssex as '性别', Course.Cname as '课程名', SC.Score as '成绩' from Student, Course, SC;

2.创建学生信息表:学号(主键),姓名,年龄, 班级(外键关联到班级表的班级编号)

班级表:班级编号(主键), 班级名称

csharp 复制代码
create table Student(
	Sno int primary key,
	Sname char,
	Sage int,
	C_name char
	);

create table Class(
	Cno int primary key,
	Cname char,
	foreign key Cno references C_name
	);

3.创建一张表(id, data): 创建一个存储过程,要求可以调用存储过程向表中插入200条,2000条,20000条

提示调用存储过程:call procedure_name(参数)

csharp 复制代码
create table Data(
	id int primary key,
	data char
	);

4.题3中相同的表:创建一个函数,要求可以调用函数向表中插入200条,2000条,20000条

提示调用函数:select function_name(参数)

相关推荐
Wang's Blog4 分钟前
PostgreSQL笔记36:执行计划基础解读与优化器成本模型
数据库·笔记·postgresql
Wang's Blog14 分钟前
PostgreSQL笔记35:索引常见问题诊断与解决方案全景解析
数据库·笔记·postgresql
LayZhangStrive17 分钟前
后端通识 - 后端开发职位接触的开发流程
数据库·prd·技术方案·库表设计·后端开发流程
爱吃火鸡面呀1 小时前
MySQL 查询与函数详解:从基础条件筛选到高级字符处理
数据库·mysql
奥莱维1 小时前
KNX酒店方案_KNX专用线与高端酒店技术逻辑
java·服务器·前端·数据库
牛大兵1 小时前
机顶盒获取局域网已经使用IP,开放的端口号,扫描摄像头,NAS,共享主机等开机自启局域网全量扫描工具
数据库·网络协议·tcp/ip
知行产研1 小时前
中国矿山无人驾驶出海的三重门
数据库·mysql·php
l1258652 小时前
# RAG低延迟架构设计:从5秒到500ms的优化全链路
数据库·人工智能·python·langchain
RisunJan2 小时前
Linux命令-vgdisplay(显示卷组详细属性)
linux·运维·数据库
爱和冰阔落2 小时前
【MySQL 慢查询排查实战】列表接口逐渐变慢时,怎样从请求链路定位原因
android·数据库·mysql