慢慢整理,不定时更新

一、 SQL

SQL 常用语句可以参考我之前整理的一篇文章 地址

1、SQL的执行顺序

FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT -> ORDER BY -> TOP

-- 两张表

select stuname as 姓名,stuid as 学号,stuaddress as 家庭地址
from stuInfo where stuid in 
(select * from stuMarks)
-- 报错
-- Only one expression can be specified in the select list
-- when the subquery is not introduced with EXISTS
-- 解析
-- in (select * from stuMarks) 这里会报一个错误 因为这里用了in, 
-- 在in后面select必须只能有一个列组查, 
-- 但这里select 后面有 N 个列,所以会报错!

1.1 错误 : 当子查询未与 EXISTS 一起引入时,只能在选择列表中指定一个表达式。

1.2 原因:这里会报一个错误 因为这里用了in, 在in后面select必须只能由一个列组查, 但这里select 后面有 N 个列,所以会报错!

2、SQL Server 的聚簇索引与非聚簇索引区别

聚集索引:表中存储的数据按照索引的顺序存储,检索效率比普通索引高,但对数据新增/修改/删除的影响比较大。

非聚集索引:不影响表中的数据存储顺序,检索效率比聚集索引低,对数据新增/修改/删除的影响很小。
一张表只有一个聚簇索引,可有多个非聚簇索引。

区别:聚簇索引的顺序就是数据的物理存储顺序,一张表只能有一个聚簇索引 但可以有多个非聚簇索引, 非聚簇索引的索引顺序与数据物理排列顺序无关

适用范围:聚簇索引与非聚簇索引

3、两张表