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(参数)

相关推荐
IT 小阿姨(数据库)13 分钟前
PostgreSQL 之上的开源时序数据库 TimescaleDB 详解
运维·数据库·sql·postgresql·开源·centos·时序数据库
颜大哦30 分钟前
linux安装mysql
linux·运维·mysql·adb
熊文豪1 小时前
openEuler 云原生实战:部署高性能 Redis 集群与压测分析
数据库·redis·云原生·openeuler
GTgiantech1 小时前
科普SFP 封装光模块教程
服务器·网络·数据库
深圳市恒讯科技2 小时前
如何在服务器上安装和配置数据库(如MySQL)?
服务器·数据库·mysql
言之。2 小时前
TiDB分布式数据库技术架构概述
数据库·分布式·tidb
万事大吉CC2 小时前
SQL表设计与约束教程
数据库·sql
员大头硬花生2 小时前
七、InnoDB引擎-架构-后台线程
java·数据库·mysql
Ryan ZX3 小时前
etcd 高可用分布式键值存储
数据库·分布式·etcd
IT教程资源C3 小时前
(N_151)基于微信小程序校园学生活动管理平台
mysql·vue·前后端分离·校园活动小程序·springboot校园活动