SQL Server 查询操作

        在上文中,简单介绍了数据库以及表格的建立,相信大家都迫不及待想查询其中添加数据,那么本文将带领大家去查询表中数据.

        注:中括号内容可无,尖括号起到区分作用,实际代码不写

一.查询

        建立数据库的目的是存储数据,查询数据,分析数据.查询是数据库的核心功能.SQL Server中提供SELECT 进行数据据库的查询操作,一般格式如下:

SELECT  [TOP x] [ALL|DISTINCT] <目标列表达式>[,<目标列表达式>]...

FROM <表名或视图名>[,<表名或视图名>]...

[WHERE <条件表达式>]

[GROUP BY <列名1>[HAVING<条件表达式>]

[ORDER BY <列名2>[ASC|DESC]];

         SELECT 语句的含义是,根据WHERE子句的条件表达式,从FROM字句指定的基本表或视图中查找满足条件的元组,再按照SELECT子句中的目标列表达式,选出元组中的属性值形成结果表.

        如果有TOP ,则将最后的结果表截取前X行进行输出.

        如果有GROUP子句,则将结果按照GROUP BY 后的<列名1>的值进行分组,该属性列值相等的元组为一组,每组产生结果表中的一条记录,通常搭配集函数使用.

        如果GROUP子句带HAVING短语,则只有满足指定条件的组才予输出.

        如果有ORDER子句,则结果表还需要按照<列2>的值进行升序(ASC)或降序(DESC)排序.

        SELECT语句不仅可以完成简单的单表查询,也可完成复杂的连接查询,嵌套查询.

下面以Departments,Employee,Salary三表为例,进行后续操作.

Departments

                                                                Employee 

Salary

二.单表查询

        单表查询是指仅涉及一个数据库的查询,例如选择一个表中的某些列值,选择一个表中的某些特定行等.

1.选择表中若干列

        选择表中的全部列或部分列,这类运算又称为投影.其变化方式主要表现在SELECT子句的<目标表达式>上.

         1) 查询指定列

        通过对目标表达式的选择,达到只输出所选目标的目的.

如在 Employee 表中,只对员工的姓名,性别,出生日期进行输出

select Name,Sex,Birthday
from Employee

         2) 查询全部列

        将表中的所有属性都选出来,可以有两种方法.一种是在SELECT关键字后列出所有列名,如果输出的列和定义的列顺序基本相同,可以简单地将<目标列表达式>自己指定为*.

如查询Departments所有属性

select *
from Departments

 

        3)查询经过计算的值 

        如在 Employee 表中输出员工的姓名,年龄(出生日期-当前日期)

GetDate() 可以获取当前时间,Date类型

Year()       可以用于Date类型数据,截取出其中的年份

在目标列表达式后可以 [ [as ]别名] 起别名

select top 6 Name,year(getdate())-year(Birthday) Age
from Employee

        

 2.选择表中的若干元组

        如果只想选择部分元组的全部或部分列,则还需要指定DISTINCT短语或指定WHERE子句.

        1) 消除取值重复的行

        两个本来并不完全相同的元组,投影到指定的某些列上后,可能变成完全相同的行.

        比如从  直接从 Employee 中选择所有的部门编号输出

        

  select DepartmentID
from Employee

 

显然,重复的部门号意义不大

select DISTINCT DepartmentID
from Employee

 

  • 24
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值