笔记杂集
MSSQL相关
//添加字段
alter table [数据库名].[dbo].[表名] add 字段名 int identity(1,1) not null 自增
//插入数据
INSERT INTO [test].[dbo].[test1]
([Title]
,[Content]
,[State]
)
VALUES
('aaa'
,'bbb'
,10
)
//循环插入5条数据
DECLARE @Title VARCHAR(50),@Content VARCHAR(50),@State int,@i int
SET @i=0
SET @Title ='C++'
SET @Content ='C语言'
SET @State =999
WHILE @i<5
BEGIN
INSERT INTO test3 ( Title , Content ,State)
VALUES ( @Title , @Content ,@State)
SET @i=@i+1
END
//删除前5条插入时间最早的数据
delete from test3 where id in(
select top 5 id from test3 order by CreatTime asc)
//分页显示该表第3页(每页10条记录)
select top 10 * from test3 where id not in (select top 20 id from test3 order by id asc)order by id asc
//将test3中自增列置为0
dbcc checkident('test3',reseed,0)
select * from test3
//强转为int类型
Convert.ToInt32(object类型数据)
DECLARE @username VARCHAR(50),@password VARCHAR(50),@sex VARCHAR(50),@i int
SET @i=0 SET @username = '张三'
SET @password = '12345' SET @sex = '男' WHILE @i<10000 BEGIN
INSERT INTO test5(username, password ,sex) VALUES(@username, @password, @sex)
SET @i = @i + 1
END
分页查询
SELECT TOP 页面大小 * FROM(SELECT Id,AddTime,ROW_NUMBER() OVER(ORDER BY id) Num from LawyerCase WHERE state=1)temp
WHERE temp.Num>(当前页数-1)*页面大小
Row_Number() OVER (ORDER BY salary desc) rank 根据salary排序,以rank作为一列显示(统计行)
@Html.Action("Welcome", "HelloWorld")用于嵌套页面
//判断文件夹是否存在,不存在创建
string TimePath = "C:/Users/Administrator/Desktop/aaa/"; if (!Directory.Exists(TimePath))//判断文件夹是否存在 { Directory.CreateDirectory(TimePath);//不存在则创建文件夹 }
索引创建删除
DROP INDEX inde_lawyerid ON articletable;//删除索引
ALTER TABLE articletable ADD INDEX inde_lawyerid(relationlawyerid);//创建索引
MySQL相关
mysql循环插入数据
create procedure test1()
begin
declare i int default 1;
while i < 10000
do
INSERT INTO lawyerclicklog(lawyerid,url,ADDTIME,site,click,pid,cid)
VALUES(i,'www.64365.com',NOW(),1,100,510000,510100);
set i=i+1;
end while;
END
call test1()
mysql 统计(case when 语句)
CASE表达式相当于一个条件判断的函数,判断某行是否满足某个条件。case里的else可省略,省略后默认为null值。其中end不能省略。语法结构如下
Case
when <判断表达式>then<表达式>
when <判断表达式>then<表达式>
when <判断表达式>then<表达式>
…
else <表达式>
end
SELECT CAST(PaymentTime AS DATE)AS Date, COUNT(*)AS Total ,SUM(CASE Status WHEN 1 THEN 1 ELSE 0 END) AS Deliver,SUM(CASE Status WHEN 2 THEN 1 ELSE 0 END)AS Deliverying,SUM(CASE Status WHEN 5 THEN 1 ELSE 0 END)AS Delivered, SUM(CASE Status WHEN Status=5 AND OverdueStatus=1 THEN 1 ELSE 0 END)AS OverDelivered,SUM(CASE Type WHEN 1 THEN 1 ELSE 0 END)AS Text,SUM(CASE Type WHEN 2 THEN 1 ELSE 0 END)AS Tel,SUM(CASE Type WHEN 3 THEN 1 ELSE 0 END)AS ProtocolTemplate,SUM(CASE Type WHEN 4 THEN 1 ELSE 0 END)AS Programme,SUM(CASE Type WHEN 5 THEN 1 ELSE 0 END)AS LegalInstrument,SUM(CASE Type WHEN 6 THEN 1 ELSE 0 END)AS Others FROM product_delivery WHERE DeliverUserId=1065 GROUP BY cast(PaymentTime AS DATE)//按(PaymentTime 分组统计)
Lambda表达式select()和where()的区别
where()返回对象类型 主要是过滤
select()返回bool类型 主要用于匹配
JQuery
$("对象名") 转换为JQuery对象
$("对象名").trigger("blur")触发失去焦点事件 trigger("select")触发选择事件
$.css('background-color', 'red')添加背景色为红色
高内聚低耦合
高内聚:尽可能类的每个成员方法只完成一件事(最大限度的聚合);
低耦合:减少类内部,一个成员方法调用另一个成员方法。
通过执行计划查看我们的SQL是否使用了索引
执行如下语句得到:
explain select * from users u where u.name = 'mysql测试'
字段说明:
l type列,连接类型。一个好的SQL语句至少要达到range级别。杜绝出现all级别。
l possible_keys: 表示查询时可能使用的索引。
l key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式。
l key_len列,索引长度。
l rows列,扫描行数。估算的找到所需的记录所需要读取的行数。
l extra列,详细说明。注意,常见的不太友好的值,如下:Using filesort,Using temporary。
从这里可以看出,我们使用了索引,因为name是加了索引的;
type说明:
1.ALL: 扫描全表
2.index: 扫描全部索引树
3.range: 扫描部分索引,索引范围扫描,对索引的扫描开始于某一点,返回匹配值域的行,常见于between、<、>等的查询
4.ref: 使用非唯一索引或非唯一索引前缀进行的查找
5.eq_ref:唯一性索引扫描,对于每个索引键,表中只有一条记录与之匹配。常见于主键或唯一索引扫描
6.const, system: 单表中最多有一个匹配行,查询起来非常迅速,例如根据主键或唯一索引查询。system是const类型的特例,当查询的表只有一行的情况下, 使用system。
Javascript闭包
目的:从函数外部读取局部变量(需要得到函数内的局部变量)
用处:最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
function f1(){
var n=999;
function f2(){
alert(n);
}
return f2;
}
var result=f1();
result(); // 999
生命周期
AddSingleton
不管你怎么刷新页面,guid都是一样,说明确实是单例的
AddScoped
每次刷 UI 的时候,guid都会变,而在同一个请求 (scope) 中 guid 是一样的
AddTransient
注入一次就 new 一次
依赖注入
依赖注入主要用来实现控制反转,解耦,不需要再new对象,只需要调用业务逻辑方法,依赖注入(DI)是一种设计模式,它可以消除编程代码之间的依赖性,因此可以很容易地管理和测试应用程序
好处:
(1) 减少依赖性
(2) 增强可重用性
(3) 增加代码的可测试性
(4) 增强代码的可读性
(5) 减少依赖性承载
控制反转
https://blog.csdn.net/weixin_40867255/article/details/91049459
IoC是有专门一个容器来创建这些对象,即由Ioc容器来控制对 象的创建
IoC很好的体现了面向对象设计法则之一—— 好莱坞法则:“别找我们,我们找你”;即由IoC容器帮对象找相应的依赖对象并注入,而不是由对象主动去找
HttpHandler与HttpModule
HttpHandler是针对一类型的文件,映射给指定的处理程序对请求进行出来(指定某一类型)。
任何一个请求都要经过注册过的HttpModule处理程序(部分类型,all)
ADO.NET中,DataSet和DataReader的区别
DataSet(断开式的):DataSet在读取数据的那一刻会与数据库进行连接,然后会一次性把数据库中所有的表以及数据读取到内存中,然后便断开数据库连接;
DataReader(连接式的): DataReader在读取数据时是从数据库中一行一行读取,每次只会从数据库中读取一行数据(类似于数据库游标的行为),直到读完最后一行之后,才断开数据库连接。
二叉树的先序、中序、后序遍历序列
二叉树的遍历主要有三种:
(1)先(根)序遍历(根左右)
(2)中(根)序遍历(左根右)
(3)后(根)序遍历(左右根)
先(根)序遍历(根左右):A B D H I E C F J G K L
中(根)序遍历(左根右) : H D I B E A J F C K G L
后(根)序遍历(左右根) : H I D E B J F K G L C A