SQL Server 入门查询(上)

子集
SQL是为关系数据库服务的,对于SQL查询,是指从数据库中取出数据的子集(查询的结果)

 

两种思路,同一种结果
1.关系代数法
关系代数法的思路就是将数据库进行分步操作,重视过程‘怎么做’
SELECT name FROM dbo.student_table WHERE age >11
上面语句用关系代数法可翻译为:对student_table表进行操作,取年龄大于11的学生姓名

 

2.关系演算法
关系演算法注重‘想要什么’,上面语句可以翻译为:我想要所有年龄大于11的学生姓名

 

单表查询
单表查询是所有查询表的中间状态,即使是多个表的复杂联合查询,也可以抽象为单表查询

 

选择列的子集
根据上面子集的概念,选择列就是通过在SELECT语句后面加上要查询的列名实现的

 

选择行的子集
选择行的子集就是在SQL语句的WHERE子句添加限制条件,当WHERE子句的表达式为‘true’,也就是满足条件,相应的行的子集就会返回
WHERE子句的表达式分为两种,使用逻辑运算符的表达式和比较运算符的表达式
比较运算符:大于> ,小于<,等于=,大于或等于>=,小于或等于<=,不等于<>,返回布尔类型,结果为true/false
逻辑运算符:将两个布尔类型的值进行连接,并返回一个新的布尔值,是在比较运算符的表达式上进行连接的。一般有和AND,或OR,非NOT

 

运算符之间有优先级 
比较运算符 > AND > OR/NOT
运算符可以通过添加括号‘()’来改变优先级

 

很特别的NULL
数据库中存在NULL值的子集,使用WHERE条件过滤之后,NULL值的子集将不会被返回,上面说到,WHERE表达式返回的是布尔值true/false,而存在第三种情况就是NULL(未知),所以SQL提供了IS NULL/IS NOT NULL这个表达式

 

排序结果
上面讲的是查询的思想,查询出来的子集可以用ORDER BY 排序,ORDER BY 子句是SQL查询语句中最后的子句,后面不能再添加其他子句了
ORDER BY  子句分为降序(ASC)和升序(DESC),如果不指定关键字,则默认为升序(从小到大ASC),ORDER BY 是根据排序的子集的数据类型决定的,分为三种可以进行排序 
1.字符
2.数字
3.时间
字符按照字母表排序,数字根据值大小排序,日期时间根据时间线排序

 

视图
视图可以看成是一个保存的虚拟表,从代码上看是一个SELECT语句,从逻辑上看是一个虚拟表,实际上视图并不存储实际数据
CREATE VIEW view_name
AS
    SELECT col1_name ,col2_name ,... FROM table_name
GO
优点:1.简化查询 
          2.隐藏了底层表的结构,增加数据的保密性

 

去重
去除重复的数据集,比如:我想知道班级里所有学生年龄情况,必定有一些人是相同年纪的,这时候就可以去重得到不同情况的年龄
SQL使用关键字DISTINCT来实现
SELECT DISTINCT col_name FROM table_name

 

聚合函数
所谓聚合,就是将同一列的多个值聚合为一个,比如:学生中年纪最大的值可以用MAX(age),平均年纪AVG(age)等等.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值