MySQL编程基础
本文是关于MySQL编程中的一些基础知识,包括变量和运算符、常用语句、函数。
一、变量与运算符
1.用户会话变量声明:SET @变量名 = 表达式;//即:用户会话变量无需提前定义,直接用赋值语句赋值,就算是定义了(也可用SELECT赋值语句赋值)
【无需指定类型,生命周期:关闭服务器链接前】
2.局部变量声明:DECLARE 变量名 数据类型;
【必须指定类型,生命周期:定义局部变量的小范围(类似于Java的{}内)】
3.运算符
(1)算术运算符:与Java相同
(2)比较运算符:大部分与Java相同。不同的地方:=(等于),<>(不等于【!=也是不等于】),<=>(相等或都为NULL),IS NULL(为空),BETWEEN … AND …(在区间内),IN(…)(在集合内),LIKE(模式匹配)
(3)逻辑运算符:与(AND,&&),或(OR,||),非(NOT,!),异或(XOR)
(4)位运算符:与Java相同
二、语句
1.赋值语句:
(1)SET:
SET 变量 = 表达式;
(2)SELECT:
SELECT 表达式 INTO 变量; //不产生结果集
SELECT 变量 := 表达式; //产生结果集
(3)可以同时给多个变量赋值,用逗号隔开。如:SET 变量1 = 表达式1, 变量2 = 表达式2, ……;
2.重置命令结束标记:DELIMITER。由于MySQL客户机的默认结束标记和语句的结束标记相同,都是分号,所以在写语句块的时候,为避免语句块被;拆开,应该在语句块前重设客户机结束标记,然后在语句块结束后改回原样:
DELIMITER $$
:将客户机结束标记设为$$
3.BEGIN-END语句块:将功能封装到存储过程、函数、触发器、事件等存储程序内部。
DELIMITER $$ //将客户机结束标记改为$$
BEGIN
要执行的功能代码;
END;
$$
DELIMITER ; //将客户机结束标记改回;
4.条件控制语句
(1)IF语句
IF 条件 THEN 语句块;
ELSE IF 条件 THEN 语句块;
……
ELSE 语句块;
END IF;
(2)CASE语句
CASE 表达式
WHEN 值1 THEN 语句块;
WHEN 值2 THEN 语句块;
……
ELSE 语句块;
END CASE;
5.循环语句
(1)WHILE-DO语句
WHILE 条件表达式 DO //继续循环的条件
循环体;
END WHILE;
(2)REPETE-UNTIL语句
REPEAT
循环体;
UNTIL 条件表达式 //跳出循环的条件
END REPEAT;
(3)LOOP语句
循环标签:LOOP
循环体;
IF 条件表达式 THEN LEAVE 循环标签; //跳出循环的条件
END IF;
END LOOP;
(4)LEAVE和ITERATE
类似于Java中的break和continue:LEAVE 循环标签;
或ITERATE 循环标签;
循环标签:给循环起的名字。在循环开始前加上,格式是:循环标签:
。
在循环结束语句后可以标记循环标签,比如:END WHILE 循环标签;
。
三、函数
1.自定义函数
DELIMITER $$
CREATE FUNCTION 函数名(参数1,参数2,…) RETURNS 返回值类型
[函数选项]
BEGIN
函数体;
RETURN 返回值;
END;
$$
DELIMITER ;
函数选项:需要时再详细了解。用的比较多的是NO SQL:函数体中不包含SQL语句
2.系统函数
(1)数学函数
(2)字符串函数
(3)日期和时间函数
①获取当前日期:CURDATE()
,CURRENT_DATE()
(YYYY-MM-DD)【可设置时区】
②获取当前时间:CURTIME()
,CURRENT_TIME()
(hh:mm:ss)【可设置时区】
③获取当前日期时间:NOW()
,CURRENT_TIMESTAMP()
,LOCALTIME()
,SYSDATE()
(YYYY-MM-DD hh:mm:ss)【可设置时区】
④时间戳转为日期时间:FROM_TIMESTAMP(TIMESTAMP)
(将指定时间戳的时间转为YYYY-MM-DD hh:mm:ss)【可设置时区】
⑤获取当前UTC日期/时间:UTC_DATE()
,UTC_TIME()
(分别是YYYY-MM-DD和hh:mm:ss)【不可设置时区】
⑥获取当前时间戳:UNIX_TIMESTAMP()
,UNIX_TIMESTAMP(DATETIME)
(从1970-01-01 00:00:00至当前时间/指定时间的秒数)【不可设置时区】
⑦获取时间的字段值(获取年月日等)
MySQL编程基础的更多相关文章
- Mysql学习笔记(七)mysql编程基础之自定义函数。
delimiter $$ create function fn_liangzifunction() returns int no sql begin ; return @row_no; end; $$ ...
- Vc数据库编程基础MySql数据库的表查询功能
Vc数据库编程基础MySql数据库的表查询功能 一丶简介 不管是任何数据库.都会有查询功能.而且是很重要的功能.上一讲知识简单的讲解了表的查询所有. 那么这次我们需要掌握的则是. 1.使用select ...
- Vc数据库编程基础MySql数据库的表增删改查数据
Vc数据库编程基础MySql数据库的表增删改查数据 一丶表操作命令 1.查看表中所有数据 select * from 表名 2.为表中所有的字段添加数据 insert into 表名( 字段1,字段2 ...
- Vc数据库编程基础MySql数据库的常见库命令.跟表操作命令
Vc数据库编程基础MySql数据库的常见操作 一丶数据库常见的库操作 1.1查看全部数据库 命令: show databases 1.2 创建数据库 命令: Create database 数据库名 ...
- [.net 面向对象编程基础] (20) LINQ使用
[.net 面向对象编程基础] (20) LINQ使用 通过上节LINQ的基础知识的学习,我们可以开始使用LINQ来进行内存数据的查询了,我们上节说了LINQ的定义为:Language Integr ...
- Vc数据库编程基础1
Vc数据库编程基础1 一丶数据库 什么是数据库 数据库简单连接就是存储数据的容器. 而库则是一组容器合成的东西. 也就是存储数据的.我们编程中常常会用到数据库. 什么是数据管理系统 数据库管理系统就是 ...
- 【转】Shell编程基础篇-下
[转]Shell编程基础篇-下 1.1 条件表达式 1.1.1 文件判断 常用文件测试操作符 常用文件测试操作符 说明 -d文件,d的全拼为directory 文件存在且为目录则为真,即测试表达式成立 ...
- SHELL脚本编程基础知识
SHELL脚本编程基础知识 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux之父Linus有一句话很经典:"Talk is cheap, show me the ...
- shell脚本编程基础介绍
Linux系统——shell脚本编程基础介绍 1.什么是shell 它是一个命令解释器,在linux/unix操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种操作输出的结果 ...
随机推荐
- [leetcode-500-Keyboard Row]
Given a List of words, return the words that can be typed using letters of alphabet on only one row' ...
- 【Android Developers Training】 39. 获取文件信息
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 一个用 js 实现点阵图的编辑器演示
这是个客户的需求,具体大概是可以在一个 24*8 的点阵图上自由绘制图形,然后数据的存储是按列依次记录,用0和1分别表示是否选中,最终串成一个字符串. 整体需求难度并不复杂,所以在写demo的时候就尽 ...
- 亲测有效!一种完美动态阈值白平衡算法 Java实现。
几年没发文了,重新拿起技术! 最近做图像处理,要自动处理颜色平衡问题,很多什么直方图优化之类的,都不完美.所以在博客园找到了这个前辈的文章. http://www.cnblogs.com/Images ...
- servlet+jsp导入Excel到mysql数据库
package khservlet; import java.io.FileInputStream;import java.io.IOException;import java.io.InputStr ...
- JS运动框架的封装过程(一)
给大家出一道题,从起点A走到目的地B,一共用了1000毫秒,每一次是30毫秒,请问你在这里面得到了哪些信息? 信息有哪些呢? 第一个,总时长是:1000毫秒 第二个,多久时间走一次?30毫秒 第三个, ...
- 使用jQuery操作 DOM
DOM操作分为三类: 1.DOM Core:任何一种支持DOM的编程语言都可以使用它,如getElementById() 2.HTML-DOM:用于处理HTML文档,如document.forms 3 ...
- c++数组易错点总结
c++数组 1.只有在定义数组是才能使用初始化,此后就不能使用了,也不能将一个数组赋给另一个数组 int cards[4] = { 3 , 6 , 8 , 10}; //ok int hands[4] ...
- 使用 electron 做个播放器
使用 electron 做个播放器 本文同步更新在:https://github.com/whxaxes/blog/issues/8 前言 虽然 electron 已经出来好长时间了,但是最近才玩了一 ...
- 【SqlServer系列】表连接
1 概述 1.1 已发布[SqlServer系列]文章 [SqlServer系列]MYSQL安装教程 [SqlServer系列]数据库三大范式 [SqlServer系列]表单查询 1.2 本篇 ...