MySQL的一些语法总结

初学MySQL,今天遇到了一个问题,然后汇总了一下MySQL的一些语法

1. date和datetime类型是不同的

date只记录日期(包括年月日),datetime记录日期和时间(包括年月日时分秒)

注:这一点和sql server 不同

2. NOW()函数和SYSDATE()函数也是不同的

NOW()函数 记录操作开始时间(在操作的任意阶段都是一样,无论操作中间停留了多长时间),SYSDATE()函数 记录实时时间(在操作的任意阶段都不一样)

3. 删除数据的语法

DELETE FROM table_name WHERE .....

4. int后面的长度表示什么

不知道有没有像我一样,每次设置长度时都很纠结的,相信看完这篇文章你不会再纠结 http://www.cnblogs.com/echo-something/archive/2012/08/26/mysql_int.html

5. 事物的使用语法

START TRANSACTION;
......
COMMIT;

6. GROUP BY

SQL写法

SELECT COUNT(*), NAME, AGE
FROM tablename a
GROUP BY NAME,AGE
ORDER BY id DESC

MySQL写法

SELECT COUNT(*), NAME, AGE
FROM tablename a
GROUP BY AGE
ORDER BY id DESC

这里可以看出一点区别,SELECT语句里面的除了函数,在SQL中需要全部列出来(即NAME,AGE字段),而MySQL中则不需要全部列出来

7. if else 使用方法

IF search_condition THEN statement_list
[ELSEIF search_condition THEN statement_list] ...
[ELSE statement_list]

示例:

-- p_oper 1#添加,2#修改,3#删除
IF (p_oper = 1) THEN
-- 添加收货地址
INSERT INTO tbname
(address, contacter, phone, cid, state)
VALUES
(p_address, p_contacter, p_phone, p_cid, p_state);
ELSEIF (p_oper = 2) THEN
-- 修改收货地址
UPDATE
tbname
SET
address = p_address,
contacter = p_contacter,
phone = p_phone,
state = p_state,
updatetime = CURRENT_TIMESTAMP,
deleted = p_deleted
WHERE
mcaid = p_mcaid;
ELSEIF (p_oper = 3) THEN
-- 删除收货地址
UPDATE
tbname
SET
deleted = p_deleted
WHERE
mcaid = p_mcaid;
END IF;

8. 变量使用

DECLARE startrow INT DEFAULT 0;		-- 从第几行开始查询
DECLARE pagecount INT DEFAULT 10; -- 一页多少条
IF(p_pagenum > 0) THEN -- 计算起始条数
SET startrow = p_pagenum * pagecount;
END IF;
IF (p_cid > 0) THEN
SELECT
*
FROM
tablename
WHERE
......
ORDER BY
createtime DESC
LIMIT
startrow, pagecount;
END IF;

MySQL参考手册:http://dev.mysql.com/doc/refman/5.1/zh/stored-procedures.html

MySQL错误大全:http://www.cnblogs.com/xugang/articles/882943.html

上一篇:python--内置模块02


下一篇:iOS 页面间传值 之 单例传值 , block 传值