-
字符函数:
查看全部 -
关于函数体
查看全部 -
自定义函数的两个必要条件:参数,返回值
查看全部 -
<span >1.连接 MySQL在SELECT语句、多表更新、多表删除语句中支持JOIN操作。 语法结构 table reference A {[INNER|CROSS] JOIN | {LEFT|RIGHT} [OUTER] JOIN} table_reference B ON condition_expr 2.数据表参照 table_reference tbl_name [[AS] alias] | table_subquery [AS] alias 数据表可以使用tbl_name AS alias_name 或 tbl_name alias_name赋予别名。 table_subquery可以作为子查询使用在FROM子句中,这样的子查询必须为其赋予别名。</span>查看全部
-
查看创建的函数和存储过程:SHOW FUNCTION STATUS;
SHOW PROCEDURE STATUS;
查看全部 -
DESC tbl_name;查看表结构,和show columns from tbl_name;一样
MySQL中的ROW_COUNT()函数可以返回前一个SQL进行UPDATE,DELETE,INSERT操作所影响的记录总数。
查看全部 -
create procedure removeUserByIdReturnNums(in u_id int unsigned,out nums int unsigned)
-> begin
-> delete from user where id = u_id;
-> select count(id) from user into nums;
-> end
-> //
SELECT count(id) FROM users INTO userNums; INTO是将查询结果的表达式传给userNums这个参数。
在begin end之间通过DECLARE创建的变量为局部变量,只在begin end中有效。
用SELECT @,SELECT.... INTO ...和SET @... 创建的变量为用户变量,在当前客户端上均有效。
call removeUserByIdReturnNums(27,@nums)
查看全部 -
DELIMITER //
CREATE PROCEDURE removeUserById(IN id INT UNSIGNED)
->BEGINE
->DELETE FROE users WHERE id=id; 我们认为第一个id指的是字段名称,第二个id指的是需要指定的参数,但是MySQL数据库认为这两个id都是字段,因此会删除全部记录。因此需注意,参数名不可以和记录名相同。将参数的id都改为p_id。
->END
修改存储过程只能修改几个简单的选项,例如注释,内容的类型等。并不能修改过程体。如要修改过程体,则将原来的过程删除,然后重新创建。
删除存储过程:DROP PROCEDURE [IF EXISTS] sp_name;
查看全部 -
调用存储过程:CALL sp_name([parameter[,...]]);
CALL sp_name[()];
存储过程在封装时没有参数的话,小括号可以省略。
查看全部 -
创建存储过程
CREATE [ DEFINER = { user | CURRENT_USER } ] PROCEDURE sp_name ( [ proc_parameter[,...]]) [ characteristic ...] routine_body;
proc_parameter: [ IN | OUT | INOUT ] param_name type
其中,sp_name 存储过程名。proc_parameter 参数,可以没有。
DEFINER =user|CURRENT_USER表示创建者,若这句话省略的话,就默认为登陆到MySQL客户端的用户
IN;该参数的值必须在存储过程时指定。
OUT;该参数的值可以被存储过程改变,并且可以返回
INOUT;改参数在调用时指定,并且可以被改变和返回
特性:
CONTAINS SQL : 包含SQL语句,但不包含读写数据的语句
NO SQL : 不包含SQL语句
READS SQL DATA : 包含读数据的语句
MODIFIES SQL DATA :包含写数据的语句
SQL SECURITY { DEFINER | INVOKER } 指明谁有权限来执行
过程体:只能对数据表、库进行增删改查
查看全部 -
替大家总结一下:declare可以声明变量,比如 declare @a int,只不过声明全局变量可以省略declare,而在begin--end里面声明需要用declare,而且要放在第一行(而不是老师说的用declare声明的就是局部变量)
你们肯定会赞我的,但是赞我又收不到通知。真是打击积极性转自评论区
查看全部 -
可以对全部记录做分组,也可以对部分记录做分组 对部分记录进行分组 就需要使用having
查看全部 -
不习惯指定位置
查看全部 -
分组时可以指定列名,列的位置和升序或降序
查看全部 -
select 查询表达式的顺序将影响结果集的顺序
字段集的别名也将影响结果集的别名
查看全部
举报