为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
与MySQL的零距离接触_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
  • 创建带有IN和OUT类型的参数: DELIMITER // CREATE PROCEDURE removeUserAndReturnUserNums(IN p_id INT UNSIGNED,OUT userNums INT UNSIGNED) //删除指定的id值对应的记录并返回剩余的id BEGIN DELETE FROM users WHERE id = p_id; SELECT count(id) FROM users INTO userNums; // INTO 含义就是将 SELECT 语句结果的表达式(id数量)返回到 userNums 变量中。 将SELECT结果的表达式放入到OUT变量,使用INTO END // DELIMITER ; CALL removeUserAndReturnUserNums(27,@nums);//第二个参数是返回值,不能设成定值,所以写成一个变量 SELELCT @nums;//结果:16 1.用户变量:以"@"开始,形式为"@变量名" eg.SET @i=7; 用户变量跟mysql客户端是绑定的,设置的变量,只对当前用户使用的客户端生效 2.全局变量:定义时,以如下两种形式出现,set GLOBAL 变量名 或者 set @@global.变量名 对所有客户端生效。只有具有super权限才可以设置全局变量 3.会话变量:只对连接的客户端有效。 4.局部变量:作用范围在begin到end语句块之间。在该语句块里设置的变量 declare语句专门用于定义局部变量。set语句是设置不同类型的变量,包括会话变量和全局变量
    查看全部
  • 1.创建带有INT类型参数的存储过程 DESC users;//降序显示数据库记录 DELIMITER // CREATE PROCEDURE removeUserByID(IN id INT UNSIGNED) BEGIN DELETE FROM users WHERE id = id; END // DELIMITER ; CALL removeUserById(3); //参数名称最好不要和表中的字段相同 SELECT * FROM users; //结果为记录全删除,系统将WHERE条件视为:字段id的值等于字段id的值时 我们认为第一个id为数据表中的id值,第二个id 为传递的参数。此例告诉我们参数名称最好不要和表中的字段相同 删除存储过程,重新插入记录,再重建存储过程 DELIMITER // CREATE PROCEDURE removeUserById(IN p_id INT UNSIGNED) BEGIN DELETE FROM users WHERE id = p_id; END // DELIMITER ; SELECT * FROM users; CALL removeUserById(22); SELECT * FROM users WHERE id = 22;//不存在id为22 的字段,已经删除 2.修改存储过程 //不能修改过程体 要修改过程体需删除存储过程,重新创建 ALTER PROCEDURE sp_name [characteristic] COMMENT 'string' |{CONTAINS SQL|NO SQL|READS SQL DATA|MODIFIES SQL DATA} |SQL SECURITY{DEFINER|INVOKER} 3.删除存储过程 DROP PROCEDURE [IF EXISTS] sp_name; DROP PROCEDUER removeUserById;
    查看全部
  • 存在MYSQL版本不同 group by 1055错误 只能这样呢 delete t1 from tdb_goods as t1 left join (select min(a.goods_id)goods_id,goods_name from tdb_goods a group by goods_name having count(goods_name)>1) t2 on t1.goods_name = t2.goods_name where t1.goods_id > t2.goods_id;
    查看全部
    0 采集 收起 来源:多表删除

    2018-03-22

  • 日期时间函数
    查看全部
  • 比较运算符与函数
    查看全部
  • 存在版本group by 1055 错误的 select min(a.goods_id)goods_id,goods_name from tdb_goods a group by goods_name having count(goods_name)>1;
    查看全部
    0 采集 收起 来源:多表删除

    2018-03-22

  • 数值运算符与函数
    查看全部
  • select a.goods_id,b.goods_name from tdb_goods a inner join (select a.goods_name,count(a.goods_name)geshu from tdb_goods a group by goods_name having count(goods_name)>1) b on a.goods_name = b.goods_name;
    查看全部
    0 采集 收起 来源:多表删除

    2018-03-22

  • 创建一个无参存储过程 举例:CREATE PROCEDURE sp1() SELECT VERSION(); 调用过程:CALL sp1(); 注:无参过程的调用可以不写小括号,例如上面的例子可以写成 CALL sp1
    查看全部
  • update tdb_goods a inner join tdb_goods_brands b on a.brand_name = b.brand_name inner join tdb_goods_cates c on a.goods_cate = c.goods_cate set a.goods_cate = c.cate_id, a.brand_name = b.brand_id
    查看全部
  • 1、存储过程语法结构分析 CREATE [DEFINER = {user|CURRENT_USER}]//定义时的用户,若是不写就默认为当前用户 PROCEDURE sp_name ([proc_parameter[,...]]) //可以带0到多个参数 sp_name存储过程的名字 [characteristic ...] routine_body 其中参数 proc_parameter: [IN|OUT|INOUT] param_name type IN, 表示该参数的值必须在调用存储过程时指定 OUT, 表示该参数的值可以被存储过程改变,并且可以返回 INOUT, 表示该参数的值调用时指定,并且可以被改变和返回 2.特性 COMMENT 'string' {CONTAINS SQL|NO SQL|READS SQL DATA|MODIFIES SQL DATA|SQL SECURITY{DEFINER|INVOKER} COMMENT:注释 CONTAINS SQL:包含SQL语句, 但不包含读或写数据的语句 NO SQL:不包含SQL语句 READS SQL DATA:包含读数据的语句 MODIFIES SQL DATA:包含写数据的语句 SQL SECURITY {DEFINER|INVOKER}指明谁有权限来执行 3.过程体 (1)过程体由合法的SQL语句构成; (2)过程体可以是任意SQL语句;对表格进行增删,连接,但是不能创建数据表<br> (3)过程体如果为复合结构则使用BEGIN...END语句 (4)复合结构可以使用条件、循环等控制语句
    查看全部
  • 输入SQL命令,MySQL引擎对命令进行分析,查看输入的语法是否正确,如果正确,再进行编译,编译成MySQL引擎可识别的命令,最后再进行执行,并将执行结果返回给客户端。 如果省略了语法分析和编译的阶段,则效率可提高。 存储过程:是SQL语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理(类似函数)。存储过程存储在数据库内,可以由应用程序调用执行,而且允许用户申明变量以及进行流程控制。存储过程可以接受输入类型的参数和输出类型的参数,并且可以存在多个返回值。只在第一次调用时进行语法分析和编译,以后的调用直接调用编译的结果,效率大大提高。 优点: 1、增强SQL语句的功能和灵活性:可以通过控制语句对流程进行控制和判断 2、实现较快的执行速度:客户端第一次调用存储过程时,MySQL引擎会对其进行语法分析、编译等操作,然后将编译结果存储到内存中,所以第一次和之前的效率一样,然而以后会直接调用内存中的编译结果,效率提高 3、减少网络流量:例如删除一个记录,我们原本要输入DELETE FROM xx WHERE ...; 要传输的字符较多,如果写成存储过程,就只要调用存储过程的名字和相应参数就行,传输的字符数量较少,所以减少了网络流量。
    查看全部
  • MySQL提示符
    查看全部
  • MySQL命令执行流程
    查看全部
  • mysql命令参数
    查看全部

举报

0/150
提交
取消
课程须知
要想学习本课程,你只需要知道数据库是个什么东东就足够了,是不是很easy?!
老师告诉你能学到什么?
1、MySQL安装与配置 2、数据类型 3、流程控制与运算符 4、DDL、DCL、DQL、DML 5、常用函数 6、表类型(存储引擎) 7、图形化工具
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!