分号不能少;分号不能少;分号不能少;重要的事情说3遍

Insert或者Update的数据包含反斜杠\的时候需要进行转义\\,例:insert into tablename(id,name) values(1,'刘\\一哥'); -- 保存到数据库后就是 1 刘\一哥

一、变量申明(非常重要)

1.带@的变量不需要申明直接使用

select columnname into @V_ColumnName from tablename Limit 0,1;

select @V_ColumnName;

2.变量申明必须放在最前面,包括申明游标(如果游标是基于临时表的循环也是一样的,先申明游标,在后面创建循环的临时表);

3.存储过程中的变量申明不能使用@

例:Declare V_ID1,V_ID2 INT Default 0;

4.变量的命名千万不要和字段名称一致,否则MySQL数据库会把字段当成是变量;比如可以在前面加上V_,例:V_ColumnName

二、MySQL不支持匿名块

例如:

DECLARE V_ColumnName varchar(50);
select columnname into V_ColumnName from tablename LIMIT 0,1;

select V_ColumnName; -- 会报错,是不是很奇怪?明明没有语法错误吧,新手会这些问题搞得郁闷到死

这种语句在MySQL中是不能执行的,如果要执行就必须放到存储过程或函数中;

三、存储过程的调用

call procedure_name(参数1,参数2……);

如果有OUT参数,例如:Create Procedure SP_TEST(IN Param1 int, OUT Param2 int)

call SP_TEST(1,@Param2);

select @Param2;

四、临时表

不需要#号,#在MySQL是单行注释符,在存储过程中使用临时表必须先判断是否存在,否则同一进程中第二次执行存储过程就会提示表已经存在了

例:DROP TEMPORARY TABLE IF EXISTS tmptable;

Create TEMPORARY TABLE tmptable(……);

五、IF语句

IF ... THEN ... ELSEIF ... THEN ... ELSE ... END IF;

记住千万不要闲得蛋疼给它加BEGIN END就对了;

六、视图

不能在视图中使用子查询,例:select * from (select * from xxx) as x;  --会报错的

如果实在需要这样做,就创建2个视图进行嵌套;

七、数据库内部函数

1.类型转换函数:MySQL和MSSQL的类型转换函数名称都是CAST和CONVERT,但CONVERT函数的参数有些不太一致;

MSSQL的语法如下:

CAST ( expression AS data_type [ ( length ) ] )

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

MySQL的语法如下:

CAST ( expression AS data_type ( length ) );

CONVERT ( expression , data_type ( length ) );

但MYSQL中的类型转换函数有一些限制,type只能是以下几种类型:

  • BINARY[(N)]
  • CHAR[(N)]
  • DATE
  • DATETIME
  • DECIMAL[(M[,D])]
  • SIGNED [INTEGER]
  • TIME
  • UNSIGNED [INTEGER]

使用的时候需要注意,诸如:SELECT CAST(0 AS INT); -- 这种写法是行不通的,给我乖乖改成--> SELECT CAST(0 AS SIGNED);

2.获取字符串长度函数

MYSQL中的CHAR_LENGTH()等同MSSQL中的LEN();

MYSQL中的LENGTH()等同MSSQL中的DATA_LENGTH();

未完待续……

最新文章

  1. java遍历给定目录,树形结构输出所有文件,包括子目录中的文件
  2. Ext.js的store里放model,还是field?
  3. X509 证书生成
  4. poj1274(匈牙利算法)
  5. blockdev命令和blkid命令
  6. android- Auto Monitor Logcat
  7. Ogre内存池的使用和说明
  8. 九度OJ 题目1534:数组中第K小的数字(二分解)
  9. android -上传文件到服务器
  10. javaScript事件绑定
  11. django Forbidden
  12. Android自定义控件及自定义属性
  13. 自动化测试基础篇--Selenium select下拉框
  14. HTML 页面自动刷新
  15. ElasticSearch6(三)-- Java API实现简单的增删改查
  16. python基础①
  17. 原生js模仿下拉刷新功能
  18. USB速率识别
  19. DBA_Oracle Erp R12系统文件结构(概念)
  20. 第九周个人PSP

热门文章

  1. AspNetCore容器化(Docker)部署(三) —— Docker Compose容器编排
  2. 从prototype beandefinition 谈 spring 的关闭流程和 prototype 的特性
  3. Mac OS 终端强化美化:iterm2 + zsh + oh~my~zsh 设置教程
  4. 数据结构( Pyhon 语言描述 ) — —第10章:树
  5. C++基本数据类型占字节数
  6. 使用VS2015编写驱动时出现的部分错误以及解决方法
  7. Knockout v3.4.0 中文版教程-7-计算监控-依赖跟踪如何工作
  8. 45个有用的JavaScript技巧
  9. [uiautomator篇][11]wifi
  10. SQLSERVER 差异备份、全备份