MySQL-流程控制

发表于 MySQL 分类,标签: MySQL
-- 流程控制-- if语句-- 语法IF 条件表达式 THEN SQL 语句块 [ELSEIF 条件表达式2 THEN SQL 语句块2]... [ELSE SQL 语句块3]END IF;DELIMITER //CREATE PROCEDURE ifdemo(IN param INT)BEGINDECLARE var1 INT;SET var1 = param + 1;IF var1 > 5 THEN...

MySQL-变量的使用

发表于 MySQL 分类,标签: MySQL
-- 变量的定义DECLARE 变量名 [,..] 变量类型 [DEFAULT 值]-- 定义一个局部变量,该变量的作用范围只能在begin......end之中,也可以用在嵌套的块中-- 变量的定义必须卸载符合语句的开头,并且在任何其它语句的前面-- 变量的赋值-- 直接赋值SET 变量名 = 表达式值或者常量名[,....];-- 将查询结果赋值给变量(查询返回的结果只能有一行)SET 列名[,...] INTO 变量名 [,...] FROM 表名 WHERE 条件...-- 用户变量:是由客户端定义的变量。...

MySQL-删除存储过程和函数

发表于 MySQL 分类,标签: MySQL
-- 删除存储过程和函数-- 语法:-- 一次只能删除一个存储过程或者函数DROP {PROCEDURE|FUNCTION} [IF EXISTS] sp_name;DROP PROCEDURE proc1;DROP FUNCTION func1;DROP PROCEDURE IF EXISTS proc1;DROP FUNCTION IF EXISTS func2;...

MySQL-查看存数过程和函数

发表于 MySQL 分类,标签: MySQL
-- 查看存数过程和函数-- 语法:-- 查看存储过程和函数的定义SHOW CREATE {PROCEDURE|FUNCTION} sp_name;SHOW CREATE PROCEDURE proc1;SHOW CREATE FUNCTION func1;-- 查看存储过程和函数的定义SHOW {PROCEDURE|FUNCTION} STATUS [LIKE 'pattern'];SHOW PROCEDURE STATUS LIKE 'proc%';SELECT * FROM infor...

MySQL-自定义函数

发表于 MySQL 分类,标签: MySQL
-- 创建和调用函数-- 创建语法:-- create function 函数名(参数列表) return 返回值类型-- [特性...] 函数体-- 函数的参数形式:参数类型DELIMITER $$CREATE FUNCTION 函数名(参数列表) RETURNS 返回值类型BEGIN-- 有效的SQL语句...END $$DELIMITER ;-- 示例DELIMITER $$CREATE FUNCTION func1(s CHAR(20)) RETURNS CHAR(50...

MySQL-存储过程

发表于 MySQL 分类,标签: MySQL
-- 存储过程和函数介绍-- 存储过程和函数是实现经过编译并存储在数据库中的一段sql语句的集合。-- 存储过程和函数的区别:-- 函数必须有返回值,而存储过程没有。-- 存储过程的参数可以是in,out,inout类型;函数的参数只能是in。-- 存储过程的优点:-- 存储过程只在创建时进行编译,sql语句没执行一次就编译一次,所以使用存储过程可提高数据库执行速度。-- 简化复杂操作,结合事务仪器封装。-- 复用性-- 安全性高,可指定存储过程的使用权。-- 创建和调用存储过程-- 用MySql客户端delimiter命令来把语句定界符从;变为//。这就允许用在程序体中的;定界符被传递到服务器而不是被MySql自己来解...

MySQL-子查询

发表于 MySQL 分类,标签: MySQL
-- 子查询-- 某些情况下,当进行查询的时候,需要的条件是另外一个select语句的结果,这个时候就要用到子查询。-- 为了给主查询(外部查询)提供数据而首先执行的查询(内部查询)被叫做子查询。-- 用于子查询的关键字主要包括:IN,NOT IN,EXISTS,NOT EXISTS,=,>,<,<>等-- 一般说子查询的效率低于连接查询。表连接都可以用子查询替换,但是反过来就不一定--  (就是说连接查询能干的事,子查询全能干,但是子查询能干的事,连接查询不一定能干)SELECT * FROM emp WHERE salary IN (SELECT salary&n...

MySQL-外链接

发表于 MySQL 分类,标签: MySQL
-- 2.外连接-- 语法SELECT ... FROM join_table (LEFT|RIGHT|FULL) [OUTER] JOIN join_table2 ON join_condtion WHERE where_definition-- 不仅列出与连接条件想匹配的行,还列出左表(左外连接)、右表(右外连接)或两个表(全外连接)中所有符合where过滤条件的数据行。-- 外连接分类-- 左外连接(left[outer]join)-- 右外连接(LEFT[OUTER]JOIN)-- 全外连接(FULL[OUTER]JOIN)-- 5.1版本MySql暂时还...

MySQL-内连接

发表于 MySQL 分类,标签: MySQL
-- 1.内连接-- 语法SELECT ... FROM join_table [INNER] JOIN join_table2 [ON join_condition] WHERE where_definition-- 只列出这些连接表中与连接条件相匹配的数据行。SELECT * FROM emp INNER JOIN dept ON emp.dept_id = dept.id;   -- 标准完整写法SELECT * FROM emp,dept WHERE&n...

MySQL-外键

发表于 MySQL 分类,标签: MySQL
CREATE TABLE dept( id INT PRIMARY KEY AUTO_INCREMENT, ren_name VARCHAR(50) NOT NULL, description VARCHAR(100));CREATE TABLE emp( id INT PRIMARY KEY AUTO_INCREMENT, ren_name VARCHAR(50) NOT NULL, gender CHAR(2) NOT NULL, salary&nb...

MySQL-基础日期时间函数

发表于 MySQL 分类,标签: MySQL
SELECT DAYOFWEEK('2015-08-14');  -- 范围1-7,周日=1SELECT DAYOFYEAR('2015-08-14');SELECT DAYOFMONTH('2015-08-14');SELECT DAY('2015-08-14');SELECT DATE_FORMAT('2015-08-01 12:46:11','%H%i%S') a,DATE_FORMAT('2015-08-01 12:46:11','%H:%i:%S') b,DATE_FORMAT('2015-08-01&nbs...

MySQL-字符串处理函数

发表于 MySQL 分类,标签: MySQL
-- 1、CHAR_LENGTH(exp1,exp2) 返回值为字符创的长度,长度的单位为字符,一个汉字也是一个字符。SELECT CHAR_LENGTH('vince_小白');SELECT ren_name,CHAR_LENGTH(ren_name) FROM test_table;-- 2、FORMAT(X,D) 将数字X以四舍五入的方式保留小数点后D位,并将结果以字符创的形式返回。--  D为0,则返回结果不带小数点,或者不含小数部分。SELECT FORMAT(1231321.564564,4);SELECT FORMAT(1231321.564564,5);SELECT FORMAT(1231321.5...

MySQL-IF语句用法

发表于 MySQL 分类,标签: MySQL
SELECT IF(1>2,'yes','no');--  ifnull,如果第一个值不为空,则返回第一个值,为空则返回第二个值SELECT IFNULL('bushikong',2);SELECT IFNULL(NULL,2);SELECT IFNULL(NULL,0);-- 如果两个值相等返回null,不相等返回第一个值SELECT NULLIF(1,2);...

MySQL-case语句用法

发表于 MySQL 分类,标签: MySQL
SELECT CASE 1 WHEN 1 THEN '男人' WHEN 2 THEN '女人' END;SELECT CASE 1 WHEN 1 THEN '男人' WHEN 2 THEN '女人' END AS result;SELECT CASE 2 WHEN 1 THEN '男人' WHEN 2 THEN '女人' END AS...

MySQL-聚合函数

发表于 MySQL 分类,标签: MySQL
SELECT AVG(age) FROM test_table;    -- 平均值SELECT COUNT(*) FROM test_table;     -- 包含null值SELECT COUNT(sid) FROM test_table;   -- 不包含null值SELECT MIN(age) AS 最小值,MAX(age) AS 最大值 FROM test_table;    --  最小最大值SE...