SQL:@变量声明与运用

1.DDL

CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号',
  `createDate` datetime DEFAULT NULL,
  `userName` varchar(20) DEFAULT NULL,
  `pwd` varchar(36) DEFAULT NULL,
  `phone` varchar(11) DEFAULT NULL,
  `age` tinyint(3) unsigned DEFAULT NULL,
  `sex` char(2) DEFAULT '男',
  `introduce` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
 
CREATE TABLE `result` (
  `rid` int(11) NOT NULL AUTO_INCREMENT COMMENT '成绩编号',
  `testName` varchar(255) DEFAULT NULL COMMENT '测试名称',
  `score` double(4,2) DEFAULT NULL COMMENT '成绩',
  `studentId` int(11) DEFAULT NULL COMMENT '学生id',
  PRIMARY KEY (`rid`),
  KEY `studentId` (`studentId`),
  CONSTRAINT `result_ibfk_1` FOREIGN KEY (`studentId`) REFERENCES `student` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

2.DML

insert into student values(0,'2024-02-25 10:10:10','赵灵儿','123',
'15612345678',16,'女','逍遥哥哥,你终于找到我了。');
insert into student values(0,'2024-02-25 10:10:10','王语嫣','123',
'15612345678',17,'女','慕容复,我和你不共戴天。');
insert into student values(0,'2024-02-25 10:10:10','龙姑娘','123',
'15612345678',22,'女','我想过过过儿过过的日子。');
insert into student values(0,'2024-02-25 10:10:10','杨过','123',
'15612345678',18,'男','一遇杨过误终身。');
insert into student values(0,'2024-02-25 10:10:10','杨逍','123',
'15612345678',27,'男','杨过跟程英的大儿子。');
insert into student (userName,age,introduce)values('黄衣女子',26,'杨过与龙姑娘的大女儿。');
 
insert into result values(0,'政治',96,1);
insert into result values(0,'地理',86,5);
insert into result values(0,'政治',77,3);
insert into result values(0,'英语',99,3);
insert into result values(0,'历史',22,6);
insert into result values(0,'化学',69,2);
insert into result values(0,'Java',79,5);
insert into result values(0,'Java',67,6);
insert into result values(0,'政治',97,2);
insert into result values(0,'物理',76,6);
insert into result values(0,'物理',82,2);
insert into result values(0,'化学',56,4);

3.DQL

1.赋值与声明

# MySQL 变量的定义与使用
# 一、标识符命名规范
#1、字母加数字,但不允许使用数字开头
#2、不允许使用关键字或保留字
#3、符号只可以使用_或$
#二、变量的声明
#set 用于声明变量,upset声明修改的表,set是声明修改的列。
set @userName='小可爱';
set @userName:='玛卡巴卡';
#查询
select @userName as '名称';

2.赋值并查询

#赋值并查询
select @userName:='胡西迪西' as '赋值并查询,先赋值,后查询。';

 3.定义并四则运算

# MySQL变量的四则运算以及取模运算。
# 定义多个变量在一条语句中,需要使用,作为分隔符
set @x=5,@y=7,@dx=3.1425,@dy=6.678;
select @x + @y as '四则运算';
select @x - @y as '四则运算';
select @x * @y as '四则运算';
select @x / @y as '四则运算';#除法默认保留4位有效数字
select @x % @y as '四则运算·倒模运算';
#浮点数运算
#查询结果都是0
select @dx + @dy as '四则运算';
select @dx - @dy as '四则运算';
select @dx * @dy as '四则运算';
select @dx / @dy as '四则运算';#除法默认保留4位有效数字
select @dx % @dy as '四则运算·倒模运算';
#避免0的出现
set @result1= @dx + @dy;
set @result2= @dx - @dy;
set @result3= @dx * @dy;
set @result4= @dx / @dy;
set @result5= @dx % @dy;
select @result1,@result2,@result3,@result4,@result5;
#保留2位有效数字
#查询表格
select round(@result2,2) as '第一种显示方法';
#查询表格,用公式也可查询
select round(@dx - @dy,2) as '第二种显示方法';

4.定义并关系运算

#关系运算符(<,>,=,!,not)与逻辑运算符(&,and,|,or)
set @x=7,@y=5;
#正确返回TRUE,实际返回1,false=0
select @x>=@y as 'TRUE',@x<@y as 'FALSE';
select @x=@y;#判断两个数值是否相等无需使用(==)号,使用(=)号即可。
#逻辑运算符
select TRUE AND TRUE;
select FALSE OR TRUE;

5.变量查询表

#使用变量参与实际的查询(增删改)操作
set @userName='龙姑娘';
set @age=17;
select * from student where userName=@userName or age=@age;
#多个同列信息查询in
set @userName='龙姑娘,王语嫣,赵灵儿';
select * from student where userName in(@userName);
#此类型的逗号查询不了
select @userName;#无法识别关键字以及符号
set @userName='龙姑娘';
set @userName='王语嫣';
set @userName='赵灵儿';
select * from student where userName in(@userName1,@userName2,@userName3,)
#此类型的逗号才可查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值