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的锁

Mvc4_mvc4跟mysql语法的更多相关文章

  1. MYSQL 语法大全自己总结的

    mysql语法大全 --------数据链接---------------------数据库服务启动net start mysql --关闭服务net stop mysql --登录 -u,-p后面不 ...

  2. 学习mysql语法--基础篇(一)

      前  言  mysql  mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分:    一.创建用户,创建数据库,给 ...

  3. 学习mysql语法--基础篇(二)

      前  言  mysql  mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分: [SQL语句的组成]   DML ...

  4. mysql语法之case when then与列转行

    mysql语法中case when then与列转行的使用场景非常丰富. case语句类似java中条件分支语句的作用,可以类比java中的switch语句或者if语句来学习. 其语法如下: case ...

  5. mongo 与 传统mysql语法对比

    MongoDB语法                                  MySql语法 db.test.find({'name':'foobar'})<==> select ...

  6. Mongodb与mysql语法比较

    Mongodb与mysql语法比较   mongodb与mysql命令对比 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由 ...

  7. mongodb linux基本启动 基础增删改 mysql语法的对比

    一.主流数据源类型 还存在自定义数据源以及REST接口数据,共6中数据源. 二.linux下启动连接数据库 进去mongodb的目录启动服务:mongo --host 192.168.320.826 ...

  8. mysql 基础篇5(mysql语法---数据)

    6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...

  9. MongoDB(五)mongo语法和mysql语法对比学习

    我们总是在对比中看到自己的优点和缺点,对于mongodb来说也是一样,对比学习让我们尽快的掌握关于mongodb的基础知识. mongodb与MySQL命令对比 关系型数据库一般是由数据库(datab ...

随机推荐

  1. Sql Server 中如果使用TransactionScope开启一个分布式事务,使用该事务两个并发的连接会互相死锁吗

    提问: 如果使用TransactionScope开启一个分布式事务,使用该事务两个并发的连接会互相死锁吗? 如果在.Net中用TransactionScope开启一个事务. 然后在该事务范围内启动两个 ...

  2. oracl数据库中的substr()函数的用法

    substr:字符串截取. 1.substr:(字符串 | 列 ,开始点):从开始一直截取到结尾. select substr(zym,2) from bqh4 2.substr:(字符串 | 列 , ...

  3. Android高级_第三方下载工具Volley

    Volley下载主要应用于下载文本数据和图片数据两个方向,下面分别介绍: 一.使用Volley开启下载,首先要做的是导包和添加权限: (1)在build.gradle文件中导入依赖包:compile ...

  4. JDK5新特性之 可变参数的方法

    可变参数的方法:不知道这个方法该定义多少个参数 注意: > 参数实际上是数组 > 必须写在参数列表最后一个 package cn.itcast.day24.varparam; import ...

  5. MySQL生产环境下的主从复制启动项

    MySQL的复制参数除了我们之前搭建主从时遇到的那几个之外,还有以下两个: 1.log-slave-updates 这个参数用来配置从库上是否启动了二进制日志的功能,默认是不开启的,如果开启了那么从库 ...

  6. MySQL日常运维操作---持续更新

    1.查看当前连接数: 这些参数都是什么意思呢? Threads_cached ##mysql管理的线程池中还有多少可以被复用的资源 Threads_connected ##打开的连接数 Threads ...

  7. 题解 P1550 【[USACO08OCT]打井Watering Hole】

    题面(翻译有点问题,最后一句话) 农民John 决定将水引入到他的n(1<=n<=300)个牧场.他准备通过挖若 干井,并在各块田中修筑水道来连通各块田地以供水.在第i 号田中挖一口井需要 ...

  8. Java多线程学习笔记之三内存屏障与Java内存模型

    基本内存屏障 处理器支持那种内存重排序,就会提供能够禁止相应内存重排序的的指令,这些指令就被成为基本内存屏障:StroeLoad屏障.StroeLoad屏障.LoadLoad屏障.LoadStore屏 ...

  9. jQuery 实现复选框的全选与反选

    <script> //实现全选与反选 $(".allAndNotAll").click(function () { if ($(this).prop("che ...

  10. PHP错误提示的关闭方法详解

    关闭PHP错误脚本提示是程序上线了必须做的一件事情,就是不管程序怎么报错我们都不能让错误日志在服务器上给大家看到,下面我来总结两种关闭PHP错误脚本提示的具体方法     最简单的办法就是直接在php ...