一、SQL简介
SQL语言是集DDL、DML和DCL于一体的数据库语言
*DDL是数据定义语言,常用的关键字有:Create(创建一个表)、Alter(修改一个表)、Drop(删除一个表)
*DML是数据操纵语言,常用的关键字有:Insert(插入)、Delete(删除)、Update(修改)、Select(选择)
*DCL是数据权限控制语言,常用的关键字有:Grant(授予)、Revoke(取消)
二、数据查询
select * from
查询 所有 来自
三、对数据进行排序
1、order by percent desc asc
排序 百分之多少 降序(倒叙):从最高值排序到最低值 升序(顺序):从最低值排序到最高值
2、len(函数:可以计算出字符串有多少个字符)
长度
- 分页查询
1、offset…rows fetch next…rows only num pagesize top size
跳过多少行 匹配到多少行 第几页 每页多少条 顶部 每一页有多少行
- offset 和 fetch 子句必须与 order by子句一起使用
五、限制返回行数
1、with ties : 用于返回更多行,其值与有限结果集中的最后一行匹配。 请注意,with ties可能会导致返回的行2、数多于在表达式中指定的行数。(也就是说它返回的值会和最后一行一样,而且可能返回的会很多)
六、过滤数据
1、 distinct:去重操作
2、where:从表中获取满足一行或多个条件的行
3、and:查找满足两个条件的行(是一个逻辑运算符,用于组合两个布尔表达式)
4、or:查找满足两个条件中的任何一个的行(是一个逻辑运算符,用于组合两个布尔表达式)
5、and和or一起使用时,首先评估and且和and接近的or的表达式会一起连用得出结果
6、between:作为两个值之间的查询
7、数值类型的不用写单引号,字符串类型的要写单引号
8、in运算符等效于多个or运算符
9、like :模糊查询
(1)百分比通配符(%):查找零个或多个字符的字符串
(2)下划线通配符( _ ):查找单个字符
(3)方括号通配符([ ]):[ABC] 表示单个字符,结果必须是列表中指定的字符之一
(4)(not like):去除掉
(5)(^): 去除掉,例如:‘[^A-C]’
六、表连接
A、内连接:内连接是SQL Server中最常用的连接之一。 内部联接子句用于查询来自两个或多个相关表的数据。
B、左连接:left join子句用于查询来自多个表的数据。它返回左表中的所有行和右表中的匹配行。
C、右连接:right join子句组合来自两个或多个表的数据。 right join开始从右表中选择数据并与左表中的行匹配。
D、交叉连接:cross join连接两个或多个不相关的表。
E、自链接:自联接用于将表连接到自身(同一个表)。 它对于查询分层数据或比较同一个表中的行很有用。
F、全外链接:full outer join当左表或右表中存在匹配项时,该命令将返回所有行。
七、分组数据、
Group by从字面意义上理解就是根据“by”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理。
- group by子句和聚合函数
group by子句通常与聚合函数一起用于统计数据
- SQL Server Having子句
Having子句通常与[group by]子句一起使用,以根据指定的条件列表过滤分组。
- 子查询
- 、子查询是嵌套在另一个语句(如:[select],[insert],[update]或[delete])中的查询。
- 、嵌套子查询:子查询可以嵌套在另一个子查询中。 SQL Server最多支持32个嵌套级别。
- 相关子查询也称为重复子查询:相关子查询是使用外部查询的值的[子查询]。 换句话说,它取决于外部查询的值。 由于这种依赖性,相关子查询不能作为简单子查询独立执行。
- 运算符
- 、Sxists运算符是一个逻辑运算符,用于检查子查询是否返回任何行。 如果子查询返回一行或多行,则sxists运算符返回true。
- 、any运算符是一个逻辑运算符,它将标量值与子查询返回的单列值集进行比较。
- 、all运算符是一个逻辑运算符,它将标量值与子查询返回的单列值列表进行比较。