• Mvc4_mvc4跟mysql语法


    mvc4:
    子页面:@section A{}
    母页面:@RenderSection("A",false)
    false:别的页面没有定义为A的Section的话 也没事,layout不管了
    true:没有A的话会报错

    @Html.Partial("A"):有返回值,返回到页面,然后拼接输出
    @{Html.RenderPartial("A")}:没有返回值,直接向Response输出结果

    [ChildActionOnly] //子行为
    public ActionResult Msg()
    {
    return PartialView("Msg", DateTime.Now);
    }
    @Html.Action("Msg")有返回值,返回到页面,然后拼接输出
    @{Html.RenderAction("Msg")}没有返回值,直接向Response输出结果

    使用@helper xx(int b){}关键字在View中创建函数并且调用:@xx(10)


    mysql:
    自增列:auto_increment
    获取日期:now()
    支持:limit m,n(从m位置开始取n位),当order by 和 limit同时使用,可能出错,建议内部
    order by 外面limit
    调用存储过程:call procName(xx)
    存储内容部区分大小写,但表名跟字段名区分大小写
    mysql都以;结尾
    声明存储过程:delimiter // create procedure procName(xx) begin xxx end;
    所有的declare语句必须在所有的执行语句之前,游标除外
    存储过程里面不用;结尾 delimiter // 变为//结尾
    声明局部变量:declare _a int default 100;
    用户变量:用户状态的整个生命周期有效,即一个用户的会话周期内有效,不需要提前声明,可直接
    使用 @符号;set @num =100;
    系统变量:整个系统可见; 使用@@符号。set @@num=100;
    全局变量:整个系统可见;使用@@Global符号 set @@global.num=100;
    在查询中给变量赋值用 into 或者= select max(id) into @a from A /select max(id) =@a from A
    Mysql可以给代码块命名,并用leave跳出代码块,代码块以begin关键字开始,以end关键字结束,代
    码块名和begin之间有:号 例》
    _code:BEGIN
    SET @num=101;
    IF(@num>100) THEN
    LEAVE _code;
    END IF;
    SELECT @num; #不会执行
    END _code;
    Mysql的IF语句,例》

    IF (@num>0) THEN
    ...
    ELSEIF(@num>1) THEN
    ...
    ELSE
    ...
    END IF;
    判断为空:isnull()
    时间函数:adddate(now(),3);返回当前时间加三天后的时间
    addtime(now(),'yyyy-mm-dd hh:mm:ss')返回当前时间加后面的时间的时间
    datediff('2001-1-1','2002-1-1')返回俩个时间相差的天数
    timestampdiff(YEAR/MONTH/DAY/HOUR/MINUTE/SECOND/..,'2001-1-1','2002-1-1')返回
    俩个时间的差,单位可选
    循环:loop 循环没有判断需要自己写leave 例》
    _code:LOOP
    IF(@num>100) THEN
    LEAVE _code; #跳出循环
    END IF;
    SELECT @num;
    END LOOP _code;
    字符串查找函数: position(substr in str) 返回substr在str中第一个出息的位置,从一开始
    数据类型转换:cast(x as type) convert(x type) type只可以为:
    char,date,time,datetime,decimal,signed,unsigend,其他不支持
    事务:start trasaction..commit;
    Mysql通过PREPARE关键字执行拼接的SQL,这时存储SQL字符串的变量必须为用户变量,不能用局部变
    量,例:
    SET @s='select * from Meta where metaId=?;';
    SET @id=100;
    #声明预编译sql
    PREPARE ps FROM @s;

    #执行预编译sql
    EXECUTE ps USING @id; #using调用参数

    #销毁预编译sql
    DEALLOCATE PREPARE ps;

    游标:Mysql游标,mysql中使用LOOP循环游标比较方便
    嵌套游标使用时,嵌套的游标的标识需在嵌套游标之前重置例》
    DECLARE _id INT;
    DECLARE _done BOOL DEFAULT FALSE; #初始化游标标识
    #声明游标
    DECLARE cs CURSOR FOR
    SELECT uid FROM users;
    #声明游标事件在发生not found事件时的处理代码
    DECLARE CONTINUE HANDLER FOR NOT FOUND
    SET _done=TRUE;
    OPEN cs;
    _cs:LOOP
    #读取游标
    FETCH cs INTO _id;
    #根据游标标识判断是否跳出游标
    IF(_done) THEN
    LEAVE _cs;
    END IF;
    BEGIN
    ... #游标中的处理代码
    END;
    #重置游标标识,因为循环中有select时,not found事件会被激发
    #但是这不是真的是游标终止的事件,而是select发生的事件
    #所以,需要重置循环标识
    SET _done=FALSE;
    END LOOP _cs;
    CLOSE cs; #关闭游标
    Mysql锁

    锁是针对不同请求对同一资源的操作而进行的限定

    使用锁,GET_LOCK('锁名', 等待的时间),1、成功开启;0、等待超时;NULL、发生错误
    例:SELECT GET_LOCK('mylock', 10); ——开启一个名为mylock的锁,开启的超时时间为10秒

    判断锁是否被释放,IS_FREE_LOCK('锁名'),1、已经被释放;0、未被释放
    例:SELECT IS_FREE_LOCK('mylock'); ——判断锁mylock释放已经被释放

    释放锁,RELEASE_LOCK('锁名'),1、成功释放;0、释放不成功;NULL、不存在该锁
    例:SELECT RELEASE_LOCK('mylock'); ——释放锁名为mylock的锁

  • 相关阅读:
    Python中的下划线(转)
    全面Python小抄(转)
    Python函数参数默认值的陷阱和原理深究(转)
    Python中的默认参数(转)
    PEP8 Python 编码规范整理(Python)
    PEP8中文翻译(转)
    这次面试就差不多了,你有什么问题需要问我呢?(转)
    MySQL事务隔离级别,锁(转)
    Web安全学习图径——系列课程推荐
    盗墓笔记—阿里旺旺ActiveX控件imageMan.dll栈溢出漏洞研究
  • 原文地址:https://www.cnblogs.com/ingstyle/p/4329120.html
Copyright © 2020-2023  润新知