- 简介
-SQL Server是Microsoft开发的一个关系数据库管理系统(RDBMS),现在是世界上最常用的数据库之一。
-关系数据库=多张表+各表之间的关系
-SQL Server是一个高度可扩展的产品,可以从一个单一的笔记本电脑上运行的任何东西或以高倍云服务器网络,或在两者之间任何东西(需要满足相关的软件和硬件要求)。
学习完数据库后我们可以:
-查询SQL Server数据库中表的数据。
-创建数据库对象,例如表,视图,存储过程,用户定义的函数,触发器。
-有效管理SQL Server数据库
简单的说,数据库是用来存放数据的一个容器。比如,我们家里的冰箱是用来存放食物的。同样的,数据库是存放数据的地方。有了数据库我们可以直接查找数据。
- 查询数据
数据库是存储数据库中所有数据的对象。在表中,数据按行和列格式逻辑组织,类似于Excel。
在表中,每行代表一个唯一记录,每列记录中的一个字段。
SQL Server使用模式对表和其他数据库对象进行逻辑分组。
要从表中查询数据,要使用select语句。以下是select语句的最基本形式:
上面语法中,
-StudentName指定要在select句子中查询数据的逗号分隔列的列表。
-PW_Student是在from句子指定表源及其模式名称
处理select语句时,SQL Server首先处理from句子,然后处理select句子,即使select句子首先出现在查询中也是一样。
查询语句中可以使用一个或多个表,表之间使用逗号(,)分割,并使用where语句来设定查询条件。
Select命令可以读取一条或多条记录。
-使用星号(*)代替其他字段,select语句会返回表的所有字段数据。
-使用where语句来包含任何条件
-使用limit属性设定返回的记录数
-通过offset指定select语句开始查询的数据偏移量,默认为0.
- 对数据进行排序
使用select语句从表中查询数据时,不保证结果集中的行顺序。这意味着SQL Sever可以返回具有未指定行顺序的结果集。
保证结果集中的行已排序的方法是使用order by句子。
例:
在上面语法中,
-AchievementID指定要对查询结果集进行排序的列名或表达式。如果指定多个列,则结果集按第一列排序,然后该排序结果按第二列排序,以此类推,order by句子中出现的列必须对应于选择列表中的列或from句子中指定的表中定义的列。
-可在AchievementID后面加上desc进行倒序排序,即将结果集从最高值排序到最低值,如果为明确指定asc或desc,默认使用asc顺序排序,此外,NULL被视为 最低值。
处理具有order by语句时,order by句子是最后处理的一个句子。
- 按升序对结果集进行排序
根据成绩ID按升序对成绩列表进行排序
- 按降序对结果集进行排列
根据成绩按降序排序
select AchievementID,Achievement,EnTime
from PW_Achievement
order by Achievement desc,
- 按多列对结果集进行排序
以下语句检索成绩ID,成绩,提交时间,首先按成绩进行倒序排序,然后按提交时间排序。
select AchievementID,Achievement,EnTime
from PW_Achievement
order by Achievement desc,
EnTime;
- 按不在选择列表中的列对结果集进行排序
注意:StTime列在PW_Achievement表中定义。 如果不是,那么查询将无效。
可以通过选择列表中未显示的列对结果进行排序。例如:以下语句按StTime对客户进行排序,即使StTime列未显示在选择列表中。
select AchievementID,Achievement,EnTime
from PW_Achievement
order by StTime;
5.按表达式对结果集进行排序
Len()函数返回字符串的字符数。
以下语句使用order by句子中的len()函数来检索按名字长度排序学生列表。
select studentID,StudentName
from PW_Student
order by LEN(StudentName) desc;
6.按列的序数位置排序
SQL Server允许根据选择列表中显示的列的序号位置对结果集进行排序,
以下语句按学生姓名对学生列表进行排序,但他没有显式指定列名,而是使用列的序号位置。
select studentID,StudentName
from PW_Student
order by 2 desc;
查询数据并对结果集进行指定的顺序排序,可以让我们更直观清晰地了解数据。