DDL和DML
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;
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);
#MySQL变量的定义与使用
#一、标识符命名规范
#1、以字母或下划线开头,不能以数字开头
#2、不允许使用关键字或保留字
#3、只允许使用_和$作为标识符,不允许使用其他符号
#变量的定义方法
#set# 我们在updata语句中使用过set,updata声明修改表,set声明修改列
set @userName='小哈妮';
set @userName='小可爱';
#查询中赋值
select @userName:='海绵宝宝';
select @userName as '名称';
#一句话定义多个变量,使用【,】进行区分
set @userName1='玛卡巴卡',@userName2='汤不利多',@userName3='胡西蒂希';
select @userName1,@userName2,@userName3;
#MySQL变量的四则运算以及取模操作
set @x=5;@y=0;@dx=0.1;@dy=5.65;
select @x + @y;
select @x - @y;
select @x * @y;
select @x / @y;#除数不能为0,如果为0则返回null,保留4位小数
select @x % @y;#除数不能为0
#在浮点数运算时返回的结果会补充很多的0,需要消除这些无用的0
set @result1 = @dx + @dy;
set @result2 = @dx - @dy;
set @result3 = @dx * @dy;
set @result4 = @dx / @dy;#除数不能为0,如果为0则返回null,保留4位小数
set @result5 = @dx % @dy;#除数不能为0
select @result1,@result2,@result3,@result4,@result5;
select ROUND(select @dx / @ dy ,2)#无法使用
#关系运算符与逻辑运算符
set @x=5,@y=7;
select @x <= @y;#关系运算返回的是0与1,其中0代表false,1代表true
select @x > @y;
select @x = @y;#判断是否相等使用(=)一个等号,无需(==)
#逻辑运算符·and (&)以及or(|)
select TRUE and TRUE;
select FALSE OR TRUE;
# 变量在SQL当中的使用
set @userName1='龙姑娘';
set @age=16;
select * from student where userName= or age=@age;
#需要进行多个信息查询的时候变量不能使用字符串拼接,因为无法识别,或关键字
set @userName1='龙姑娘';
set @userName2='赵灵儿';
select * from student where userName in (@userName1,@userName2)