SQL的学习学生表

article/2025/11/10 11:40:44

1.创建数据库

create database school;

2.创建学生表,成绩表,课程表

create table student(
Sno int primary key not null,
Sname varchar(20) not null,
Ssex varchar(2) null,
Birthday datetime null,
Sdept varchar(20) null);

 

create table course(
Cno int primary key not null,
Cname varchar(40) null,
Cpno int null,
Credit dec(3,1) null,
foreign key(Cpno) references course (Cno));
create table SC(
Sno int not null,
Cno int not null,
Grade dec(4,1) null,
foreign key(Sno) references student (Sno),
foreign key(Cno) references  course(Cno),
);

3.插入数据(举个例子)格式如下

insert
into SC(Sno,Cno,Grade)
values('202215129','1005',59);

 4.修改数据(格式如下)

    例子:把202215129的1005课程分数改成99分。

update SC
set Grade=99
where Sno in
(select Snofrom student where Sno='202215129'
);

   结果,全部分数都变成99分了。

 修改:(加上限制条件课程号即可)

update SC
set Grade=98
where Cno='1005'and Sno in
(select Snofrom studentwhere student.Sno='202215129'
);

 5.修改基本表(格式)

alter table student
drop column address;

例子1,删除多余的列address

原来的图片:

 运行后:

 例子2:在学生表中增加入学时间

alter table student
add S_entrance date;

6.删除数据(打个样)

 Delete studentwhere SSex is Null

7.单表查询

例子1:计算并查询学生年龄大于20岁的人

select Sname 姓名,Birthday , YEAR(GETDATE())-YEAR(Birthday) as age
from student
where age>20;

例子2:计算学生年龄并且排序

select Sname 姓名,Birthday , YEAR(GETDATE())-YEAR(Birthday) as age
from student
order by age desc;

结果:

 例子3:查询成绩不合格学生以及学生的成绩

select distinct student.Sno 学号,Sname,Cno 课程号,Grade 分数
from student,SC
where student.Sno=SC.Sno and Grade<60;

结果:

例子4:查询选择全部课程的学生(格式打个样,两种思路)

select SC.Sno,Sname 
from SC inner join student on SC.Sno=student.Sno
group by Sname,SC.Sno 
having count(Cno)=(select count(*)from course)

select * from student where Sno in(
select Sno from SCgroup by Sno 
having count(Cno)=(select count(*)from course))

 8.连接查询(注意粉红色部分的格式)

例子1:查询所有学生学号、姓名、性别、及总学分

select student.Sno,student.Sname,Ssex,sum(credit) as 总学分
from student
inner join SC on SC.Sno=student.Sno
inner join course on SC.Cno=course.Cno
group by student.Sno,student.Sname,Ssex;

 例子2:查询各科选修人数,课程最高分,最低分,及格人数,不及格人数,平均分

select course.cno,cname,count(sno) as 选课人数,MAX(GRADE) AS 最高分,min(grade) as 最低分,avg(grade) as 平均分,
sum(case when Grade >60 then 1 else 0 end) as 及格人数,
sum(case when Grade <60 then 1 else 0 end) as 不及格人数
from course left join SC on course.cno=SC.cno
group by course.cno,cname

9.嵌套查询

例子:查询计算机学院(CS)比数学学院(MA)某一个同学年龄小的学生(出生日期越大,年龄越小)

select * from student
where Sdept='CS' and Birthday > any(select Birthday from student where Sdept='MA')
select * from student
where Sdept='CS' and Birthday > (select min(Birthday) from student where Sdept='MA')

10.视图创建(格式如下)

create view Vgrade as


http://chatgpt.dhexx.cn/article/a3qSkP5N.shtml

相关文章

学生表

创建 1.学生表 Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 2.课程表 Course(CID,Cname,TID) --CID --课程编号,Cname 课程名称,TID 教师编号 3.教师表 Teacher(TID,Tname) --TID 教师编号,Tname 教师姓名 4.成绩表 SC(SID,CID,s…

学生表 成绩表 课程表 教师表

学生表&#xff1a; Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 课程表&#xff1a; Course(c_id,c_name,t_id) – –课程编号, 课程名称, 教师编号 教师表&#xff1a; Teacher(t_id,t_name) –教师编号,教师姓名 成绩表&#xff1a; Score(…

MySQL基础 创建学生表实现查询基础功能

一. 创建学生表 1.进入MySQL WIN R 输入cmd 输入mysql -u root -p 输入密码进入mysql 2. 输入show databases; 查询现有数据库 选择一个数据库 use 数据库名称 创建一个学生表 create table stu( id int ,-- 编号 name varchar(10),-- 姓名 gender char(1)…

数据库学生表

文章目录 学生表建立学生表&#xff1a;建表过程中出现的错误&#xff1a; 插入数据 课程表建立课程表&#xff1a;插入数据 选课表建立选课表插入数据建表过程中出现的错误&#xff1a; 修改基本表增加属性列&#xff1a;修改数据类型&#xff1a;增加约束条件&#xff1a;删除…

LDA理解

LDA 过程&#xff1a; 希拉里邮件lda建模&#xff1a;

LDA步骤

自己学习备忘用。节选自(1条消息) LDA原理小结_Sual-CSDN博客_lda原理

NLP: LDA主题模型

Essence本质&#xff1a;LDA模型主要包括主题分布θ和词语分布&#xff0c; 主题分布&#xff1a;各个主题在文档中出现的概率分布。词语分布&#xff1a;各个词语在某个主题下出现的概率分布。 pLSA模型中这两个分布是固定的&#xff0c;由期望最大化EM(Expectation Maximiz…

LDA算法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、LDA是什么&#xff1f;二、公式推导三、PCA和LDA的区别总结 前言 线性判别分析&#xff08;LDA&#xff09;是一种有监督学习算法&#xff0c;同时经常被用…

自然语言处理7——LDA

文章目录 1. PLSA、共轭先验分布&#xff1b;LDA主题模型原理1.1 PLSA1.2 共轭先验分布1.2.1 共轭先验分布的参数确定1.2.2 常见的共轭先验分布 1.3 LDA主题模型原理 2. LDA应用场景3. LDA优缺点4. LDA 在sklearn中的参数学习5. 使用LDA生成主题特征&#xff0c;在之前特征的基…

matlab lda数据降维,LDA有标签数据降维

之前无标签数据降维PCA,那么像下图带有标签数据,如果用PCA降维将会投影到v轴上,这个投影方差最大,数据将变成不可分状态,LDA将把数据投影加上已有分类这个变量,将数据投影到u轴上 假设原数据分成n类,用矩阵Di表示i类数据,均值向量mi,将设将数据投影到向量w上后,均值分…

LDA模型,主题聚类模型

自然语言处理--LDA主题聚类模型 LDA模型算法简介&#xff1a; 算法 的输入是一个文档的集合D{d1, d2, d3, ... , dn}&#xff0c;同时还需要聚类的类别数量m&#xff1b;然后会算法会将每一篇文档 di 在 所有Topic上的一个概率值p&#xff1b;这样每篇文档都会得到一个概率的集…

LDA主题模型笔记

Table of Contents 1、写在前面 2、数学知识 3、文本建模 4.LDA主题模型实战 1、写在前面 在机器学习领域&#xff0c;关于LDA有两种含义&#xff0c;一是线性判别分析&#xff08;Linear Discriminant Analysis&#xff09;&#xff0c;是一种经典的降维学习方法&#xf…

LDA 主题模型

背景 我们生活中总是产生大量的文本&#xff0c;分析这些观察到的语料库是如何生成的就需要对文本进行建模。常见的文本建模方法包括&#xff1a;Unigram、PLSA、LDA 、词向量模型&#xff08;CBOW、Skip-gram&#xff09;等。LDA模型是一种主题模型&#xff08;topic model&a…

lda php,LDA主题分析代码实现

主题文本分析&#xff1a; 首先读取txt文本&#xff0c;并删除stop_list中存放的停止词汇 f open(..\\LDA_test.txt) texts [[word for word in line.strip().lower().split() if word not in stop_list] for line in f] print(Text ) pprint(texts)  #输出格式处理好的文本…

详解 LDA

详解 LDA 详解 LDA基本概念什么是LDALDA 核心思想LDA 简单二分类实例 实现步骤&#xff08;python&#xff09;第一步 标准化处理第二步 计算每一类别特征的均值向量第三步 计算类间散布矩阵S(B)和类内散布矩阵S(W)第四步 计算矩阵S(W)^(-1)S(B)的特征值和对应的特征向量第五步…

LDA 指南

『本文转自&#xff1a;https://wdxtub.com/2017/05/03/lda-guide/』 LDA 作为文本分析中非常有用的算法&#xff0c;无论是在学术界还是工业界都已被广泛运用。本文是写给自己的 LDA 理解指南。 更新历史 2017.05.03: 完成初稿 关于 LDA 算法&#xff0c;网上的资料不胜枚举…

LDA

关于降维算法 机器学习领域中所谓的降维就是指采用某种映射方法&#xff0c;将原高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数 f : x->y&#xff0c;其中x是原始数据点的表达&#xff0c;目前最多使用向量表达形式。 y是数据点映射后的低维向量表…

LDA详解

【几个问题待解决&#xff1a;1.LDA的先计算联合概率体现在哪里 2.对于theta 的采样的理解&#xff0c;下文中的theta1 &#xff0c;theta2等其实是指theta向量中的第一个&#xff0c;第二个等&#xff0c;也就是不同文章的不同单词的主题&#xff0c;固定其他&#xff0c;分别…

LDA的通俗理解

1.PLSA模型 在讲解LDA模型之前&#xff0c;与LDA模型最为接近的便是下面要阐述的这个pLSA模型&#xff0c;给pLSA加上贝叶斯框架&#xff0c;便是LDA。 1.1什么是pLSA模型 我们假定一篇文档只由一个主题生成&#xff0c;可实际中&#xff0c;一篇文章往往有多个主题&#xff…

LDA模型详解

LDA是自然语言处理中非常常用的一个主题模型&#xff0c;全称是隐含狄利克雷分布&#xff08;Latent Dirichlet Allocation&#xff09;&#xff0c;简称LDA。作用是将文档集中每篇文档的主题以概率分布的形式给出&#xff0c;然后通过分析分到同一主题下的文档抽取其实际的主题…