【数据库】sql server 中的sql语句--增删改查

这篇具有很好参考价值的文章主要介绍了【数据库】sql server 中的sql语句--增删改查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

create database 学生
go
use 学生
go
CREATE TABLE Student (
    Sno char (7) PRIMARY KEY  ,
    Sname char (10)  NOT NULL ,
    Ssex char (2) check(ssex in('','')) ,
    Sage tinyint  ,
    Sdept char (20) 
)

CREATE TABLE Course (
    Cno char (10) PRIMARY KEY ,
    Cname char (20)  NOT NULL ,
    Ccredit tinyint  ,
    Semester tinyint  ,
)

CREATE TABLE sc (
    sno char (7) NOT NULL ,
    cno char (10) NOT NULL ,
    grade smallint  ,
    XKLB char (6)  ,
     PRIMARY KEY(sno,cno),
     FOREIGN KEY 
    (
        cno
    ) REFERENCES Course (
        Cno
    ),
     FOREIGN KEY 
    (
        sno
    ) REFERENCES Student (
        Sno
    ),
     CHECK (grade >= 0 and grade <= 100)
) 

go

insert student values('9512101','李勇','',19,'计算机系')
insert student values('9512102','刘晨','',20,'计算机系')
insert student values('9512103','王敏','',20,'计算机系')
insert student values('9521101','张立','',22,'信息系')
insert student values('9521102','吴宾','',21,'信息系')
insert student values('9521103','张海','',20,'信息系')
insert student values('9531101','钱小平','',18,'数学系')     
insert student values('9531102','王大力','',19,'数学系')    

insert course values('c01','计算机文化学',3,1)    
insert course values('c02','VB',2,3)
insert course values('c03','计算机网络',4,7)
insert course values('c04','数据库基础',6,6)
insert course values('c05','高等数学',8,2)
insert course values('c06','数据结构',5,4)

insert sc values('9512101','c01',90,'必修')
insert sc values('9512101','c02',86,'选修')
insert sc values('9512101','c06',NULL,'必修')
insert sc values('9512102','c02',78,'选修')
insert sc values('9512102','c04',66,'必修')
insert sc values('9521102','c01',82,'选修')
insert sc values('9521102','c02',75,'选修')
insert sc values('9521102','c04',92,'必修')
insert sc values('9521102','c05',50,'必修')
insert sc values('9521103','c02',68,'选修')
insert sc values('9521103','c06',NULL,'必修')
insert sc values('9531101','c01',80,'选修')
insert sc values('9531101','c05',95,'必修')
insert sc values('9531102','c05',85,'必修')
go

上面是要建立的数据库

下面是sql语句:

--【数据查询】
--查询所有姓‘刘’的学生。
select * from Student where Sname like '刘%'


--查询所有年龄小于20的男学生。
select * from Student where Sage<20 and Ssex=''


--查询所有姓名第二个字是‘小’的学生。
select * from Student where Sname like '%小%'



--使用BETWEEN子句查询所有年龄在20到21岁的学生。
select * from Student where Sage between 20 and 21


--使用IN子句查询所有姓‘信息系’和‘数学系’的学生
select * from Student where Sdept in('信息系','数学系')



--查询所有学生的出生年份。
select Sname,year(getdate())-Sage as 出生年份 from Student



--统计共有多少学生。
select count(Sno)as 学生总人数 from Student


--查询各门课的课程号和考试平均成绩及选课人数。
select cno,avg(grade) as 考试平均成绩,count(sno) as 选课人数 from sc group by cno



--查询平均成绩大于80的学生的学号。
select sno from sc group by sno having avg(grade)>80 


--查询全体学生的选课情况
select Student.Sno,Sname,Cname,grade from Student join sc on Student.sno=sc.sno join Course on Course.Cno=sc.cno


--查询计算机系学生的修课情况,要求列出学生的名字、所修课的课程号和成绩。
select Sname,cno,grade from Student left join sc on Student.sno=sc.sno where Student.Sdept='计算机系'

--查询信息系修了VB课程的学生的修课成绩,要求列出学生姓名、课程名和成绩。
select Sname,Cname,grade from Student  join sc on Student.sno=sc.sno join Course on sc.cno=Course.Cno  where Cname='VB'


--查询所有修了VB课程的学生的修课情况,要求列出学生姓名和所在的系。
select Sname,Sdept from Student  join sc on Student.sno=sc.sno join Course on sc.cno=Course.Cno  where Cname='VB'


--查询与张海在同一个系学习的学生的姓名和所在的系。
select Sname,Sdept from Student where Sdept in(select Sdept from Student where Sname='张海'); 




--查询学生的修课情况,包括修了课程的学生和没有修课的学生。
select Student.Sno,Sname,Cname,grade from Student left join sc on Student.sno=sc.sno left join Course on Course.Cno=sc.cno


--用子查询查询与钱小平在同一个系的学生。
select Sname from Student where Sdept in(select Sdept from Student where Sname='钱小平'); 





--用子查询找出平均成绩为大于80分的学生的学号、姓名、系别。
select Sno,Sname,Sdept from Student where sno in(select sno from sc group by sno having avg(grade)>80)






-- 用子查询查询选修了“数据库基础”课程的学生的学号、姓名。
select Sno,Sname from Student where sno in(select sno from sc where cno in(select cno from Course where Cname='数据库基础'))


--用子查询查询修了‘c02’课程且成绩高于此课程的平均成绩的学生的学号和成绩。
select Sno,grade from sc where grade >(select avg(grade) from sc where cno='c02') and cno='c02'







-- 用子查询查询选修了‘c01’号课程的学生姓名。
select Sname from Student where sno  in(select sno from sc where cno='c01')


-- 用子查询查询没有选修‘c01’号课程的学生姓名和所在系。
select Sname from Student where sno not in(select sno from sc where cno='c01')


-- 用子查询找出‘李勇’所选课程的学分之和。
select sum(Ccredit) as 学分之和 from Course where cno in(select cno from sc where sno in(select sno from Student where Sname='李勇'))


-- 用子查询找出所有学生中年龄最大的学生的姓名、年龄。
select Sname,Sage from Student where Sage=(select max(Sage) from student)



-- 用子查询找出所有没有成绩的学生的姓名及系别。
select Sname,Sdept from Student where sno in(select sno from sc where grade is null)





--Q25. 用子查询计算‘数学系’的学生的平均成绩。
select avg(grade) from sc group by sno having sno in(select sno from Student where Sdept='数学系')



--【数据更新】
--1.    将新生(学号:9512110;姓名:TOM;性别:男;年龄:22;所在系:数学系;SEMAIL:TOM@126.COM)的记录插入到学生表中,
---并增加相应的选课记录(9512110,c01,80,必修)。
alter table Student add SEMAIL varchar(40)
insert into Student values('9512110','TOM','','22','数学系','TOM@126.COM')
insert into sc values('9512110','c01','80','必修')
select *from sc


--2.    假设过了一个学年,将所有学生的年龄增加1岁。
update Student set Sage=Sage+1

--3.    事后发现学生李勇考试作弊,将其所有成绩改为0分。
update sc set grade=0 from sc  join student on sc.sno=student.sno where sname='李勇'
select *from sc




--4.    学号为“9512102”的学生平时表现优异,将其“c04”成绩增加10分。
update sc set grade=grade+10 where cno='c04'and sno='9512102'



--5.    由于无人选修“c04”课程,因此学校决定暂不开课,删除所有“c04”的选课记录。
delete from sc where cno='c04'
select *from sc


--6.    学号为“9512102”的学生由于退学,删除该学生及其选课记录。
delete from Student where sno='9512102'
delete from sc where sno='9512102'
select *from student

 文章来源地址https://www.toymoban.com/news/detail-750294.html

到了这里,关于【数据库】sql server 中的sql语句--增删改查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在SQL server中用sql语句实现数据库的备份以及还原

    本文给大家提供并讲解了在SQL server中用SQL语句实现数据库的备份已经还原 假设你已经有一个数据库Student 创建备份设备,其名称为bk_Student,保存文件为D: Student.bak,并对Student数据库进行完全备份,备份到备份设备bk_ Student中。  在Student数据库中,创建一张表temp并对Student数

    2024年02月03日
    浏览(62)
  • 【Sql】sql server数据库提示:执行Transact-SQL语句或批处理时发生了异常。 无法打开数据库msdb,错误:926。

    【问题描述】 打开sql server2008r2数据库的时候, 系统提示执行Transact-SQL语句或批处理时发生了异常。 无法打开数据库msdb,错误:926。 【概念理解】 首先MSDB数据库是的作用: 用于给SQL Server代理提供必要的信息来运行调度警报、作业及记录操作。同时也会记录数据库的备份和

    2024年02月04日
    浏览(75)
  • 【手写数据库toadb】SQL解析器的实现架构,create table/insert 多values语句的解析树生成流程和输出结构分析

    ​ 专栏内容 : 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更新,对应的代码也会定期更新,每个阶段的代码会打上tag,方便阶段学

    2024年02月05日
    浏览(68)
  • MySQL数据库中的索引(含SQL语句)

    假设有一张表,表中有100万条数据,这100万条数据在硬盘上是存储在数据页上的,一页数据大小为16k。存储100万条数据那么就需要数据页,假设其中有一条数据是“id为7900”的,那么如果要查询这条数据,其中SQL是SELECT * FROM 表名 WHERE id = 7900。在执行这条SQL语句的时候,MyS

    2024年02月02日
    浏览(80)
  • 通过sql语句查询出某个字段在数据库中的某个表

    新入职的小伙伴,肯定还没熟悉数据库中表于表的关系以及表中的字段的含义是什么,就需要进行需求开发,导致会出现对某个字段在哪张表里面都分辨不清,不过不要怕,可以利用已下sql语句快速找到。(要注意的是,此方法可能不适用于所有类型的数据库系统,但对于大

    2024年02月16日
    浏览(74)
  • 基于Linux操作系统中的MySQL数据库SQL语句(三十一)

    MySQL数据库SQL语句 目录 一、SQL语句类型 1、DDL 2、DML 3、DCL 4、DQL 二、数据库操作 1、查看 2、创建 2.1、默认字符集 2.2、指定字符集 3、进入  4、删除 5、更改 6、练习 三、数据表操作 (一)数据类型 1、数值类型 1.1、TINYINT 1.2、SMALLINT 1.3、INT 1.4、BIGINT 1.5、FLOAT(M,D) 2、时间

    2024年02月15日
    浏览(68)
  • MySQL创建数据库(CREATE DATABASE语句)

     在 MySQL 中,可以使用  CREATE DATABASE  语句创建数据库,语法格式如下: [ ] 中的内容是可选的。语法说明如下: 数据库名: 创建数据库的名称。MySQL 的数据存储区将以目录方式表示 MySQL 数据库,因此数据库名称必须符合操作系统的文件夹命名规则,不能以数字开头,尽量

    2024年02月04日
    浏览(53)
  • SQL server附加数据库时出错,提示说: 附加数据库时出错。有关详细信息,请单击“消息”列中的超链接

            其中一种解决办法:可能是数据库权限不够,要 把.MDF和.LDF两个数据库文件都打开权限          要记得 把同名的需要重新配置的文件删除之后重新附加 !!         操作步骤如下:         对于.MDF文件:右键,点击“属性”         点击“安全”      

    2024年01月18日
    浏览(82)
  • SQL 数据库语句- 创建和管理数据库

    SQL CREATE DATABASE 语句用于创建一个新的 SQL 数据库。 以下 SQL 语句创建了一个名为 \\\"testDB\\\" 的数据库: 通过这个简单的语句,你可以成功地创建一个名为 \\\"testDB\\\" 的数据库。记得在实际应用中,你可能需要添加其他选项,比如指定字符集、校对规则等,以满足具体需求。 SQL DRO

    2024年02月05日
    浏览(81)
  • 数据库基础——数据库、数据表和SQL语句

    数据库是用来存储、管理数据的仓库 数据表是数据的存储结构 Structured Query Language,结构化查询语言,用来操作数据库 安装MySQL,自行百度 进入cmd使用命令 mysql -hAddress -uUser -p(Password) 登录数据库 -p后直接回车可进入密文登录 如果出现以下报错,则打开任务管理器-服务-开启

    2024年02月09日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包