show variables; --查看所有系统变量select@@autocommit--会话级别的修改set autocommit=0;set @@autocommit=0;--全局修改set global autocommit=0;--自定义变量set @变量名=值 set @name=‘张三‘ set @age := 18

--从表中获取数据赋值给变量 , 会话级别select number,name from my_account where id=1into @number,@age;

#触发器

事先为某张表绑定一段代码,当表中某些内容发生改变的时候(增删改),系统会自动触发代码,执行

触发器:事件类型、触发时间、触发对象

事件类型:增删改insert、delete、update

触发时间:before、after

触发对象:表中的每一条记录

一张表中只有拥有一种触发时间的一种类型的触发器:最多一张表能有6个触发器--创建触发器

语法:1、临时修改语句结束符

delimiter 自定义符号:后续代码中只有碰到自定义符号才算结束

create trigger 触发器名字 触发时间 事件类型 on 表名foreach row

begin

end

delimiter;

create table my_goods(

idintprimary key auto_increment,

name varchar(20) not null,

pricedecimal(10,2) default 1,

invint comment ‘库存数量‘)charset utf8;

insert into my_goods values(null,‘iphone6s‘,5288,100),(null,‘三星‘,5288,200);

create table my_order(

idintprimary key auto_increment,

g_idint not null comment ‘商品ID‘,

g_numberint comment ‘商品数量‘)charset utf8;

delimiter $$

create trigger after_order after insert on my_orderforeach row

begin

update my_goodsset inv = inv -1 where id=2;

end

$$

delimiter ;--有空格

show triggers;--查看所有触发器

show triggers\G;

show create trigger 触发器名字

show create trigger after_order

所有触发器都会保存到information_schema.triggers\G表中--使用触发器

insert into my_order values(null,1,2);--触发器删除

drop trigger after_order;--触发器记录

不管触发器是否触发了,只要当某种操作准备执行,系统就会将当前要操作的记录的当前状态和即将执行之后的状态给分别保留下来,供触发器使用;其中,要操作的当前状态保存到old中,操作之后可能形态保存给new

delimiter $$

create trigger after_order after insert on my_orderforeach row

begin

update my_goodsset inv = inv - new.g_number where id= new.g_id;

end

$$

delimiter ;--有空格

insert into my_order values(null,1,2);--库存判断

delimiter%%create trigger before_order before insert on my_orderforeach row

beginselect inv from my_goods where id=new.g_id into @inv;if @inv < new.g_number then

insert into XXX values(XXX);

endif;

end%%delimiter ;

insert into my_order values(null,1,20000);--循环结构

while循环(没有for循环)while 条件判断 doendwhile;

循环控制:在循环内部控制循环判断和控制

iterate:迭代,类似continue,后面的代码不执行,循环重新来过

leave:离开,类似break,整个循环接收

使用方式:iterate/leave 循环名字--定义循环名字

循环名字:while 条件 do

--循环体--循环控制

iterate/leave 循环名字

endwhile;

#函数(系统函数、自定义函数)

将一段代码块封装到一个结构中,在需要执行代码块的时候,调用结构执行即可(代码复用)--系统函数

mysql中,字符串的基本操作单位

substring:字符串截取(字符为单位)

char_length:字符长度

length:字节长度

instr:判断字符串是否在某个具体的字符串中存在,存在返回位置

lpad:左填充,将字符串按照某个指定的填充方式,填充到指定长度(字符)

insert:替换,找到目标位置,指定长度的字符串,替换成目标字符串

strcmp:字符串比较set @cn=‘世界你好‘;set @en=‘hello world‘;select substring(@cn,1,1);select substring(@en,1,1);selectchar_length(@cn),char_length(@en),length(@cn),length(@en);select instr(@cn,‘界‘); -- 0代表没有找到select lpad(@cn,20,‘欢迎‘);select insert(@en,3,3,‘y‘); --第三个位置,变3个set @f=‘hello‘;set @s=‘hey‘;set @t=‘HEY‘;select strcmp(@f,@s),strcmp(@s,@t),strcmp(@s,@f); --不区分大小写--自定义函数

create function 函数名([形参列表])returns 数据类型

begin--函数体

end

create function displayl() returnsint

return 100;select displayl(); --函数调用

show create function displayl\G;

修改函数&删除函数

函数只能先删除后新增,不能修改

drop function 函数名;

drop function desplayl;

函数参数

形参、实参

delimiter $$

create function desplayl(int_1int) returns intbeginset @i=1;set @res=0;while @i <= int_1 do

set @res = @res + @i; -- 没有+= ++

set @i = @i + 1;

endwhile;return@res;

end

$$

delimiter ;13340323263

select desplayl(10);select @res,@i; --在函数内部用@定义的变量在函数外部也可以访问--作用域

全局变量可以在任何地方使用;局部变量只能在函数内部使用

全局变量:使用set关键字定义,使用@符号标志

局部变量:使用declare关键字声明,没有@符号,所有的局部变量的声明,必须在函数体开始之前

delimiter $$

create function desplay2(int_1int) returns intbegin

declare iint default 1;

declare resint default 0;

mywhile:while i <= int_1 do

if i % 5 =0thenset i=i+1;

iterate mywhile;

endif;set res = res +i;set i=i+1;

endwhile;returnres;

end

$$

delimiter ;--存储过程

是一种没有返回值的函数

create procedure 过程名字([参数列表])

begin--过程体

end

create procedure pro1()select * from my_account; --var cpro_id = "u6292429";

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:http://www.cnblogs.com/walkerr/p/7289770.html

mysql制空快捷键_mysql数据库常用操作相关推荐

  1. mysql数据基本指令_mysql数据库常用命令(详细)

    mysql数据库常用命令(详细) *************************************************** windows下mysql的启动与停止 启动MYSQL服务 n ...

  2. mysql数据库技巧_MySQL数据库常用操作和技巧

    MySQL数据库可以说是DBA们最常见和常用的数据库之一,MySQL的广泛应用,也使更多的人加入到学习它的行列之中.下面是老MySQL DBA总结的MySQL数据库最常见和最常使用的一些经验和技巧,分 ...

  3. 数据库mysql常用操作_mysql数据库常用操作

    目前最流行的数据库: oracle.mysql.sqlserver.db2.sqline --:单行注释 #:也是单行注释 /* 注释内容*/:多行注释 mysql -uroot -p密码:登录mys ...

  4. MySQL数据库常用操作(20221211)

    记录:360 场景:MySQL数据库常用操作,启动.重启.停止MySQL服务:创建用户.数据库.表.主键.索引.注释等.配置远程可连接.配置环境变量.常用系统表操作.常用命令行操作.表的增删改查等操作 ...

  5. 数据库常用操作语句总结

    数据库常用操作语句总结 一.基础 1.select 语句 2.select distinct 语句 3.where 子句 4.and 和 or 运算符 5.order by 语句 6.insert i ...

  6. 数据库常用操作之删除重复数据且仅保留一条

    数据库常用操作之删除重复数据且仅保留一条 单字段操作 查询全部重复的数据 MySQL实现 Oracle实现 查询表中重复数据(id最小除外) MySQL实现 删除表中多余重复数据并且只留1条 MySQ ...

  7. Oracle 数据库常用操作语句大全

    原文:Oracle 数据库常用操作语句大全 一.Oracle数据库操作 1.创建数据库      create database databasename 2.删除数据库      drop data ...

  8. 数据库常用操作,会持续更新

    数据库常用操作,会持续更新 1.DDL-数据库操作show databases; 查询所有数据库 create database 数据库名: 创建数据库 use 数据库名: 进入所选的数据库中 sel ...

  9. YII2 数据库常用操作案例

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.YII2 数据库常用操作案例 1.关于分页 50.查询当月生日的客户 前言 提示:这里可以添加本文要记录的大概内容 ...

最新文章

  1. 【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群(第二步)(4)...
  2. 转贴: OpenGL开发库的组成
  3. MapReduce_自学过程(一)
  4. Java 8:CompletableFuture的权威指南
  5. ASP.NET Core真实管道详解[2]:Server是如何完成针对请求的监听、接收与响应的【上】
  6. 互联网金融数据分析-笔记
  7. JDK8新特性(四)之方法引用
  8. python局域网收集数据_Python实现扫描局域网活动ip
  9. 如何用计算机打出字,两个字中间的点怎么打出来?
  10. 今天听得好多老的电影的配乐啊
  11. 使用PIL包给图片增加水印
  12. Ubuntu 20.04 离线安装podman
  13. 计算机网络宽带越大 网速越快,100M宽带, 网速却很慢, 测速只有60M? 一分钟学会解决办法...
  14. 代码最少的网页瀑布流效果
  15. Python爬虫的urllib.error.HTTPError: HTTP Error 418错误
  16. 动态规划:求解金矿问题
  17. 【React+TS】从零开始搭建react+typescript+router+redux+less+pxToVw自适应+sass+axios反向代理+别名@+Antd-mobile
  18. week6-Word Embedding
  19. 阿尔伯塔大学计算机专业世界排名,[阿尔伯塔大学]计算机/计算机工程专业
  20. 软件设计师数据结构之线性结构复习小结

热门文章

  1. 经纬度定义、经纬度格式、GDAL中地理坐标转换及地理坐标屏幕显示
  2. LeetCode 46.全排列
  3. 小程序页面传值、页面与组件通信方式总结
  4. SOCKET的 10035错误
  5. C++:使用高斯-勒让德正交估计柯西主值 (CPV) 某些奇异积分(附完整源码)
  6. jQuery——遍历
  7. oracle查看视图定义语句_oracle视图详解
  8. Excel中VLOOKUP函数的详细用法(灰常有用,求加精!求加精!)
  9. 解决failed to solve with frontend dockerfile.v0: failed to create LLB definition: unexpected status co
  10. 实践报告抽象类java_java抽象类不能实例化实践是检验真理的唯一标准