SQL Server基础教学 sql分页查询每页10条数据

2022-08-10 15:45:27 浏览数 (1)

在上一篇文章中简单介绍了C语言上机实现:九九乘法表、百鸡问题、求圆的面积、判断年份是否是闰年和数组的排序。现在简单介绍一下程序(BS构架)的大致工作:客户端请求→后台处理查询数据库并返回数据→客户端接收返回数据并展示给用户,今天我们主要讲数据库基础常用的知识点。

首先学习之前必须安装SQL Server,我用的是2014你们可以根据自己电脑配置安装,安装教程百度很多这里就不详细介绍,安装完成之后我们打开SQL Server 2014 Management Studio。为了你们能看得清楚我用中文新建的一个成绩库分别建了几张表。

建表sql如下,将下来代码分别在新建查询中执行:

一、班级表

CREATE TABLE [dbo].[班级表](

[班号] [char](8) NOT NULL,

[班名] [nvarchar](20) NULL,

[专业] [nvarchar](10) NULL,

[班主任] [nchar](10) NULL,

[系号] [char](4) NULL,

CONSTRAINT [PK_班级表] PRIMARY KEY CLUSTERED

(

[班号] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE= OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON[PRIMARY]

GO

一、学生表

CREATE TABLE [dbo].[班级表](

[班号] [char](8) NOT NULL,

[班名] [nvarchar](20) NULL,

[专业] [nvarchar](10) NULL,

[班主任] [nchar](10) NULL,

[系号] [char](4) NULL,

CONSTRAINT [PK_班级表] PRIMARY KEY CLUSTERED

(

[班号] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE= OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON[PRIMARY]

GO

三、成绩表

CREATE TABLE [dbo].[成绩表](

[学号] [char](10) NOT NULL,

[课程号] [nchar](8) NOT NULL,

[成绩] [numeric](5, 1) NULL,

CONSTRAINT [PK_成绩表] PRIMARY KEY CLUSTERED

(

[学号] ASC,

[课程号] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE= OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON[PRIMARY]

GO

一、查询所以班级

select * from 班级表 --查询所有表

二、查询班级号为01002

select * from 班级表 where班号='01002' --01002的数据

三、按照班号,班名,系号分组

select 班号,班名,系号 from班级表 Group by 班号,班名,系号 --分组

四、多表联合查询:查询成绩不及格的

select *from[dbo].[学生表] where 学号 in( select 学号 from [dbo].[成绩表] where 成绩<60)

五、按照成绩高低降序排序和升序排序

select * from 成绩表 order by 成绩 desc --降序排序

select * from 成绩表 order by 成绩 asc --升序排序

六、删除000101的学生

delete [dbo].[成绩表] where学号='000101' --不带条件删除全部

七、插入学生,学号为10010、姓名为小三、性别为男、出生日期为1984-10-01、班号为10120 、系号为d002 、专业为语文的学生

INSERT INTO 学生表(学号,姓名,性别,出生日期,班号,系号,专业) VALUES ('10010', '小三','男','1984-10-01','10120','d002','语文')

八、更新学号为10010将专业改为:数学

UPDATE学生表 SET专业='数学' WHERE 学号 = '10010'

九、预留给你们思考问题:分页查询,每页10条数据,并查出所有姓刘的学生,并按出身日期排序,并查出数据总数。

小结:数据库无非就是增删改查,最难的应该是查询,这里有很多条件限制,对于数据库设计不合理时影响到后面我们的代码编写逻辑和代码量,数据量越大数据查询效率也就越慢。第九个问题你们是否思考出来了呢?我给大家一个实例吧!下一篇讲解使用C# SQL开发只有属于自己的网站。

select top 10 *,(selectcount(1) from 学生表 where 1=1 and 姓名 like '%刘%') as Count from (SELECT ROW_NUMBER() OVER(ORDER BY 学号) AS RowNumber,*FROM 学生表) as A where1=1 and 姓名 like '%刘%'and RowNumber > 10 *(1 - 1) ORDER BY 出生日期 DESC

0 人点赞