SQL Server知识点回忆篇(四):case函数,索引,子查询,分页查询,视图,存储过程 1. CASE函数(相当于C#中的Switch) then '未成年人' else '成年人' end from tbUsers 2. 索引 index 聚集索引(物理):一个表只能有一个.创建一个表时,如果有主键,主键会自动创建聚集索引. 非聚集索引(逻辑):一个表可以有多个. 增加索引后,会增加额外的存储空间开销,降低了增加新纪录.修改.删除的效率. 建索引:索引应该建在经常查询时用到的列上,查询时
前几天看别人的代码中看到在字段中使用select子查询的方法,第一次见这种写法,然后研究了一下,记录下来 大概的形式是这样的: select a .*,(select b.another_field from b where a.id=b.aid) another_field from a where 1 limit 10; 下面还是以实例来说明,要不然不好理解,新建两张表,一张是商品表,另外一张是商品的评论表 商品表: CREATE TABLE `product` ( `id` int(11)
1.order by 默认按升序排列(asc/desc),多字段排序 order by 字段 排序方式,字段2 排序方式,..: 在分组排序中,排序是对分组后的结果进行排序,而不是在组中进行排序. select * from stu order by score desc,name asc;//优先score ,然后name排序 2.limit 在语句表示,截取记录的条数.一般和order by 配合使用(大数据下Limit使用) limit[offset][N] offset: 偏移量 N
UPDATE user SET pwd='123' WHERE id in ( SELECT id from user WHERE username = 'zx' ); 报错[Err] 1093 - You can't specify target table 'user' for update in FROM clause 我们可以写内连接达到同样的效果 : UPDATE USER aINNER JOIN USER b ON b.username = 'zx'AND a.id = b.i
if OBJECT_ID('tempdb..##t2') is not null drop table ##t2;create table ##t2( a int, b int, c datetime, d varchar(100), e varchar(100), f int, g int);select * from ##t2; update ##t2set f = t3.f,g = t3.gFROM ##t2,(select f.NID,count(s.NID) skuCount,sum(
复杂查询(下):子查询 8. 1 非关联子查询:返回的值可以被外部查询使用.子查询可以独立执行的(且仅执行一次). 8.1.1 单行单列子查询,子查询仅返回一个值,也称为标量子查询,采用单行比较运算符(>,<,=,<>,>=,<=) 例:内部SELECT子句只返回一行结果 SQL>select ename,salfrom empwhere sal > ( select sal from emp where ename='JONES')/例:和
子查询在一个select中出现多个嵌套查询语句 1.在where子句中使用子查询(一般返回"单行单列" "单行多列" "多行单列"(可以提供in.any.all )) 示例1:查找低于平均工资的雇员信息(返回单行单列) select * from emp where sal < (select avg(sal) from emp) 示例2:查找出公司最早雇佣的雇员信息(返回单行单列) select * from emp where hire