首页 > 数据库 >11)MySQL编程基础

11)MySQL编程基础

时间:2023-05-29 18:14:20浏览次数:40  
标签:11 set age 编程 会话 user MySQL select

1、用户会话变量:

会话期间一直有效;但其他的客户机不能访问;一般情况下,用户会话变量的定义与赋值会同时进行;

 方法一:使用 set 命令定义用户会话变量,并为其赋值;

set @user_variable1=expre1 [,@user_variable2=expre2,...];

方法二:使用select语句定义用户会话变量,并为其赋值;

select @user_variable1:=expre1[,@user_variable2:=expre2,...];

或者:

select expre1,expre2,...into @user_variable1,@variable2,...;

 

1)set例子:

set @user_name='张三';
select @user_name;
set @user_name=100,@age=23;
select @user_name,@age;

 因为会话变量是弱类型的,所以可以赋值为任何类型;还支持运算;

set @age = @age+1;
select @age;

 

 2)select 例子:

select @user_name:='李四';

 对于有冒号的select,可以看到直接输出结果集;

 

select 24 into @age;
select @age;

对于select into,可以看到并没有输出结果集,需要手动调用显示;

 

 3)用户会话变量与SQL:

set @stucnt:=(select count(*) from studnet);
select @stucnt;

 

select @stucnt:=(select count(*) from student);

可以简化为:

select @stucnt:=count(*) from student;

 

2、局部变量:

declare 变量名 数据类型;

局部变量必须定义在 存储程序 中,且作用范围也只在 存储程序  中;

局部变量主要用于下面3种场合:

 

3、begin-end语句块:

begin-end格式如下:开始标签和结束标签名称必须相同;

[开始标签] begin
    [局部] 变量的声明;
    错误触发条件的声明;
    游标的声明;
    错误处理程序的声明;
    业务逻辑代码;
end [结束标签];

在MySQL语句中,单独使用begin-end语句块没有任何意义,只有将其封装到存储过程、函数、触发器以及事件等存储程序内部才有意义;

 

 4、重置命令结束标志:

begin-end语句块通常存在多条MySQL表达式,每条MySQL表达式使用“;”作为结束标记。避免这些表达式被拆开,需重置MySQL客户机的命令结束标记 delimiter ;

#启动重置结束标记
delimiter $$
#关闭结束标记
delimiter ;
delimiter $$
select * from student;
$$

可以看到这儿使用$$作为结束标记,即使输入了;仍然不能结束;只有以$$ 结尾,才算一条语句表达式;

 再输入终止结束标记后,封号又恢复了结束作用;

delimiter ;

 

标签:11,set,age,编程,会话,user,MySQL,select
From: https://www.cnblogs.com/xuan01/p/17441034.html

相关文章

  • MySQL之慢查询sql排查及优化
    前言sql语句优化的方式:1.尽量少join2.尽量少排序3.尽量避免select*4.尽量少or5.尽量用unionall代替union…(优化的方式有很多,这里就不一一举例了)当你避免这些问题的时候,为什么sql查询还是这么慢?排查慢查询sqlps:mysql版本为5.71.连接mysqlmysql-uroot-p2.查......
  • Mysql 字符集问题:utf8与utf8mb4
    UTF-8编码是一种变长的编码机制,可以用1~4个字节存储字符。MySQL中的utf8编码并不是真正的UTF-8,其最长只有3个字节。当遇到占4个字节的UTF-8编码,例如emoji字符或者复杂的汉字,会导致存储异常。从5.5.3开始,MySQL开始用utf8mb4编码来实现完整的UTF-8,其中mb4表示mo......
  • 如何将数据从MySQL/MongoDB中迁移至云开发数据库
    本篇文章从MySQL、MongoDB迁移到云开发数据库,其他数据库迁移也都大同小异~迁移大致分为以下几步?:从MySQL、MongoDB将数据库导出为JSON或CSV格式创建一个云开发环境到云开发数据库新建一个集合在集合内导入JSON或CSV格式文件Mysql迁移到云开发数据库为了方便,我们使用Na......
  • Apache Flume教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介Flume是Apache下面的一个分布式组件,它提供高效,可靠的收集,整合,传输日志数据的服务。Flume可以理解成一个管道,它连接数据的生产者和消费者,它从数据的生产者(Source)获取数据,保存在自己的缓存(Channel)中,然后通过Sink发送到消费者。它不对数据做保存和复杂的处理(可以做简单......
  • c++ 模版元编程-00
    本系列文章从零开始介绍C++模版元编程,需要有C++基础。函数模版template<typenameT>Tadd(Tconsta,Tconstb){returna+b;}autoa=add(42,21);autod=add<double>(41.0,21);//无法自动推导类型的时候可以显示的指定类型类模版template<typenameT>......
  • mysql 8 修改默认密码并修改密码策略
    1、使用默认密码登陆2、修改默认密码(必须修改默认密码)ALTERUSER'root'@'localhost'IDENTIFIEDBY'Mysql@23';3、修改默认密码策略SHOWVARIABLESLIKE'validate_password%';setglobalvalidate_password.policy=0;setglobalvalidate_password.lengt......
  • mysql之sql查询结果集小数保留
    客户要求,跟金额相关的数据,打印出来要保留两位小数,比如:13.2/13.200要显示为13.20;分析:首先查看数据库中的数据定义,均为decimal(12,2),直接通过数据库查询的结果也会保留两位小数,但是代码处理后,却会忽略掉最后一个“零”位。此处有两个解决方案:一、代码中处理,检测到为金额字......
  • FX110网:澳大利亚商人遇杀猪盘被骗30万美元
    近日,一位54岁的澳大利亚昆士兰商人遭遇杀猪盘,被骗走30万美元。这位名为保罗·里德(PaulReed)的受害者表示,他在LinkedIn账户上认识了一位女网友,对对方很有好感。“它有点像友谊,然后开始变得有点沉重。”在关系变得亲密后,她说她需要海外人士的帮助才能从理应属于她的银行账......
  • 简单MySQL例子演示MVCC
    一沈秋园,满庭霜落,云烟北桥夜连城MVCC是多版本并发控制的缩写,是一种数据库和编程语言中常用的并发控制方法。它通过保存数据的历史版本,实现对数据库的高效访问。MySQL中MVCC主要是通过行记录中的隐藏字段(隐藏主键row_id,事务IDtrx_id,回滚指针roll_pointer),undo_log(版本链),Rea......
  • docker部署ZeLog项目(Tomcat+MySQL+ZrLog)
    一.docker的安装1.1、在安装dockers之前,建议关闭Centos7.9防火墙[root@192~]#systemctlstopfirewalld[root@192~]#setenforce0 setenforce是Linux的selinux防火墙配置命令执行setenforce0表示临时关闭selinux防火墙1.2、通过yum在线安装Docker服务[root@localhos......