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

与MySQL的零距离接触

平然 学生
难度入门
时长 8小时29分
  • 字符函数
    查看全部
    0 采集 收起 来源:MySQL 字符函数

    2017-09-15

  • DELIMITER // CREATE PROCEDURE R1(IN P_ID INT UNSIGNED,OUT TESTID INT UNSIGNED) 删除用户并返回用户总数 BEGIN DELETE FROM test1 WHERE ID = P_ID; SELECT count(ID) FROM test1 INTO TESTID; END // CALL R1(3,@NUMS);@NUMS代表的就是变量 select @NUMS; 1.用户变量:以"@"开始,形式为"@变量名" 用户变量跟mysql客户端是绑定的,设置的变量,只对当前用户使用的客户端生效 可用 set @变量名=值 来创建变量并赋值(多次使用只是会覆盖,而不是报错),如果是调用存储过程时,给out的变量传入一个@变量,也相当于创建用户变量并传入,在存储过程内被赋值 2.全局变量:定义时,以如下两种形式出现,set GLOBAL 变量名 或者 set @@global.变量名 对所有客户端生效。只有具有super权限才可以设置全局变量 3.会话变量:只对连接的客户端有效。 4.局部变量:作用范围在begin到end语句块之间。在该语句块里设置的变量 declare语句专门用于定义局部变量(必须位于句首,即begin之下的第一行)。 如DECLARE 变量名 数据类型 set语句可以为各种变量赋值,即set 变量=变量值
    查看全部
  • 添加单列 ALTER TABLE tbl_name ADD col_name column_definition [FIRST | AFTER col_name]; 添加多列 ALTER TABLE tbl_name ADD (col_name column_definition,.....); 删除列 ALTER TABLE tbl_name DROP col_name ; 删除多列 ALTER TABLE tbl_name DROP col_name1,DROP col_name2,... ;
    查看全部
  • 外键约束的参照操作 FOREIGN KEY (参照列) REFERENCES 外表(外键列) ON DELETE CASCADE; 删除记录 DELETE FROM provinces WHERE id=3;
    查看全部
  • 外键约束要求 FOREIGN KEY (参照列) REFERENCES 外表(外键列); 主键创建的同时自动添加索引 SHOW INDEXES FROM tb_name\G;
    查看全部
  • 通过id删除记录的存储过程: DELIMITER //; CREATE PROCEDURE removeuserbyid(IN p_id INT UNSIGNED) BEGIN DELETE FROM users WHERE id=p_id;参数的名字不能和表中的名字一样,既id=id否则系统会认为是一样,造成记录全部被删除; END // CALL removeuserbyid(3); 删除 DROP FUNCTION IF EXISTS 存储过程名称; DROP PROCEDURE sp;
    查看全部
  • 创建存储过程: CREATE PROCEDURE sp1() SELECT VERSION() 调用存储过程: 用CALL sp1();调用 call sp_name([参数]); call sp_name; 第一个是带参数,第二个不带参数,区别是封装的过程没有参数的话小括号带有或不带有都可以,但是存储过程带有参数的话,那么小括号就不能省略
    查看全部
  • 默认约束
    查看全部
  • 唯一约束
    查看全部
  • 主键约束 PRIMARY KEY;
    查看全部
  • MySQL自动编号
    查看全部
    0 采集 收起 来源:MySQL自动编号

    2017-09-15

  • 1、存储过程语法结构分析 CREATE [DEFINER = {user|CURRENT_USER}]//定义时的用户,若是不写就默认为当前用户 PROCEDURE sp_name ([proc_parameter[,...]]) //可以带0到多个参数 sp_name存储过程的名字,每个参数要先声明是IN/OUT/INOUT类型,再声明名字和数据类型 [characteristic ...] 过程体 其中proc_parameter: [IN|OUT|INOUT] param_name type IN, 表示该参数的值必须在调用存储过程时指定(外部传入过程的值,只能被使用,如果被修改,对外部没有影响)---只进不出 OUT, 表示该参数的值可以被存储过程改变,并且可以返回(外部传入过程的变量,可以被赋值(赋值会一直有效,但重启客户端后无效),但在存储过程内部,初始值为null,无论其本身是否有值) INOUT, 表示该参数的值调用时指定,并且可以被改变和返回(和OUT类似,但区别是OUT不论是否有值,在存储过程内部初始值都是null,而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语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理。**存储过程存储在数据库内,可以由应用程序调用执行,而且允许用户声明变量以及进行流程控制,存储过程可以接收参数,可以接收输入类型的参数,也可以接收输出类型的参数,并且可以存在多个返回值。通过这个简单的介绍我们可以发现,存储过程的效率要比我们单一的执行SQL语句的效率要高,原因在于我们以前假设这两个SQL语句,Mysql的引擎会对这两个语句逐一的进行语法分析,逐一的进行编译再逐一的去执行,而我们采用了存储过程之后,只有在第一次才进行语法分析和编译,以后我们客户端再去调用直接调用编译的结果就可以了,这样就直接省略了两个环节,效率比以前要好。 可以没有或有多个返回值(指的是select返回结果集,内部不能使用RETURN) 1、MySQL通过存储过程(预编译),可以避免重复语法分析和编译,提高执行效率 2、存储过程: (1)是SQL语句与控制语句的【预编译集合】,以【一个名称存储】作为【一个单元处理】 (2)优点: · 增强了语句的功能和灵活性:可以通过控制语句对流程进行控制和判断 · 实现较快的执行速度,只在【第一次调用时进行语法分析和编译】 ,以后直接从内存中得到结果 · 减少网络流量
    查看全部
  • 查找记录 SELECT exp.. FROM tbl_name;
    查看全部

举报

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

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