活到老,学到老,还有三分未学到。

笔记杂集

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

 

posted @ 2021-04-20 10:59  欧琪study  阅读(100)  评论(0编辑  收藏  举报