#if函数(条件,返回值1,返回值2)
SELECT IF(10>5,‘大‘,‘小‘)
SELECT last_name,commission_pct,IF(commission_pct IS NULL,‘不存在‘,‘有‘) 别名 from employee; #case函数
(等值)
1.case +要判断的变量或表达式when 常量1+then+要输出的信息1;when 常量2+then+要输出的信息2;...else 要显示的值;end
/*
部门号=30,1.1倍工资
部门号=40,1.2倍工资
部门号=50,1.3倍工资
其他,原工资
*/
SELECT salary 原始工资,department_i...
if 函数:if else 的效果
SELECT IF(10<5,‘大‘,‘小‘); #第一个表达式为真则返回第二个参数否则返回第三个
#案例:
SELECT last_name,commission_pct,IF(commission_pct IS NULL,‘没奖金‘,‘有奖金‘)
FROM employees;case函数: 类似于switch case 的效果#案例:查询员工的工资部门号=30,工资为1.1倍;40,1.2倍;50,1.3倍;其他部门为原工资SELECT salary AS 原始工资,department_id,CASE department_id
WHEN 30 THEN salary*1...
视图触发器事务存储过程内置函数流程控制索引视图1、什么是视图? 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可2、为什么要用视图? 如果要频繁使用一张虚拟表,可以不用重复查询3、如何用视图create view teacher2course as
select * from teacher inner join course on teacher.tid = course.teacher_id;强调
1、在硬盘中,视图只有表结构文件,没有表数据文件
2、视图通常是用于查询,尽量不要修改视图中的数...
视图1.什么是视图?
视图就是通过查询得到的一张虚拟表,然后保存下来,下次可直接使用
2.为什么要使用视图?
如果要频繁使用一张虚拟表,可以不用重复查询
3.如何使用视图?
create view 表1_表2 as
select * from 表1 inner join 表2 on 条件;
例:create view teacher_course asselect * from teacher inner join course on teacher.tid = course.teacher_id;
强调:
1.在硬盘中,视图只有表结构文件,没有表数据文件
2.视图通常是用于查...
Navicatpymysql模块连接、执行sql、关闭(游标)execute() 之 slq注入增、删、改、查视图触发器存储过程函数流程控制Navicat
Navicat是一套快速、可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。
我们在终端操作MySQL没有自动提示,也...
CREATE PROCEDURE p12 (IN parameter1 INT)2 BEGIN3 DECLARE variable1 INT;4 SET variable1 = parameter1 + 1;5 IF variable1 = 0 THEN6 INSERT INTO t VALUES (17);7 END IF;8 IF parameter1 = 0 THEN9 UPDATE t SET s1 = s1 + 1;
10 ELSE
11 UPDATE t SET s1 = s1 + 2;
12 END IF;
13 END; //2. CASE指令 1 CREATE PROCEDURE p13 (IN parameter1 INT)2 BEGIN3 DECLARE...
示例:
循环结构
while循环
语法:
????while 表达式 do
????????-- 循环体
????end while;示例:
????需一个数的累加和
注意:
????对任何变量的更改必须使用set,没有自操作运算符
Mysql 流程控制标签:本文系统来源:http://www.cnblogs.com/nyxd/p/5359799.html
从3306备份数据库,还原到3307数据库上,通过shell脚本的for in流程控制实现
#!/bin/bash
my_date=`date +%Y%m%d`
my_time=`date +%H%M`
my_date_yesterday=`date +%Y%m%d --date=‘1 days ago‘`
echo "----------------------------------------------------"
echo "$my_date $my_time"
backup_dir="/data/backup3307/${my_date}"
mkdir -p ${backup_dir}
echo "db backup dir: ${backup_dir}"
DBS="data1 data2 data3 ...
1.标签语句
[begin_label:] BEGIN[statement_list]
END [end_label][begin_label:] LOOPstatement_list
END LOOP [end_label][begin_label:] REPEATstatement_list
UNTIL search_condition
END REPEAT [end_label][begin_label:] WHILE search_condition DOstatement_list
END WHILE [end_label]标签label可以加在begin...end语句以及loop,repeat和while语句上
语句中通过iterate和leave来控制流程,iterate表示返回指定标签位置,...
触发器
事务
存储过程
流程控制一、视图
视图是由查询结果构成的一张虚拟表,和真实的表一样,带有名称的列和行数据
强调:视图是永久存储的,但是视图存储的不是数据,只是一条sql语句
视图的特点:视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系。
视图是由基本表(实表)产生的表(虚表)。
视图的建立和删除不影响基本表。
对视图内容的更新(添加、删除和修改)直接影响基本表。
当视图来自多个基本表时,...
视图就是通过查询得到一张虚拟表,然后保存下来,下次用的直接使用即可。使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的 SQL 语句了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的 SQL 过分依赖数据库中的视图,即强耦合,那就意味着扩展 SQL 极为不便,因此并不推荐使用。-- 1.
-- 视图是一个虚拟表(非正式存...
----------------------------
-- Procedure structure for `proc_adder`
-- ----------------------------
DROP PROCEDURE IF EXISTS `proc_adder`;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_adder`(IN a int, IN b int, OUT sum int)
BEGIN#Routine body goes here...DECLARE c int;if a is null then set a = 0; end if;if b is null then set b = 0;end if;set sum = a + b;
END
$$
DELIMITER ;SET @...
#两张有关系的表
mysql> select * from course;
+-----+--------+------------+
| cid | cname | teacher_id |
+-----+--------+------------+
| 1 | 生物 | 1 |
| 2 | 物理 | 2 |
| 3 | 体育 | 3 |
| 4 | 美术 | 2 |
+-----+--------+------------+
4 rows in set (0.00 sec)mysql> select * from teacher;
+-----+-----------------+
| tid | tname |
+-----+--...
注意与存储过程的区别,mysql内置的函数只能在sql语句中使用!
参考博客:http://www.cnblogs.com/linhaifeng/articles/7495918.html#_label2CREATE TABLE blog (id INT PRIMARY KEY auto_increment,NAME CHAR (32),sub_time datetime
);
?
INSERT INTO blog (NAME, sub_time)
VALUES(‘第1篇‘,‘2015-03-01 11:31:21‘),(‘第2篇‘,‘2015-03-11 16:31:21‘),(‘第3篇‘,‘2016-07-01 10:21:31‘),(‘第4篇‘,‘2016-07-22 09:23...
10>5,‘大‘,‘小‘)
SELECT last_name,commission_pct,IF(commission_pct IS NULL,‘不存在‘,‘有‘) 别名 from employee; #case函数
(等值)
1.case +要判断的变量或表达式when 常量1+then+要输出的信息1;when 常量2+then+要输出的信息2;...else 要显示的值;end
/*
部门号=30,1.1倍工资
部门号=40,1.2倍工资
部门号=50,1.3倍工资
其他,原工资
*/
SELECT salary 原始工资,department_id,
CASE department_id
WHEN 30 THEN salary...