MySQL练习

首先,我们先创建和添加相应的表和数据:

CREATE TABLE `student` (
  `sid` int(6) NOT NULL AUTO_INCREMENT,
  `sname` varchar(12) DEFAULT NULL,
  `sage` int(3) DEFAULT NULL,
  `sex` varchar(2) DEFAULT NULL,
  `score` double(6,0) DEFAULT NULL,
  `sclass` int(6) DEFAULT NULL,
  `sbirthday` date DEFAULT NULL,
  PRIMARY KEY (`sid`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8;

添加相应的数据:
INSERT INTO `student` VALUES ('1', '张三', '15', '男', '99', '1', '2021-01-08');
INSERT INTO `student` VALUES ('2', '李四', '16', '女', '56', '1', '2021-01-01');
INSERT INTO `student` VALUES ('3', '王五', '17', '男', '98', '1', '2020-12-01');
INSERT INTO `student` VALUES ('4', '赵六', '16', '男', '56', '1', '2021-01-29');
INSERT INTO `student` VALUES ('5', '田七', '18', '女', '100', '2', '2021-02-03');
INSERT INTO `student` VALUES ('6', '孙八', '19', '男', '91', '2', '2021-02-04');
INSERT INTO `student` VALUES ('7', '柳九', '20', '男', '96', '2', '2021-05-06');
INSERT INTO `student` VALUES ('8', '张楚岚', '21', '男', '100', '2', '2021-02-10');
INSERT INTO `student` VALUES ('9', '张灵玉', '21', '男', '94', '2', '2021-06-10');
INSERT INTO `student` VALUES ('10', '冯宝宝', '17', '女', null, '3', '2021-01-22');
INSERT INTO `student` VALUES ('11', '张之维', '27', '男', '94', '3', '2021-01-24');
INSERT INTO `student` VALUES ('12', '夏禾', '26', '男', '94', '3', '2020-06-18');
INSERT INTO `student` VALUES ('13', '大脸妹', '16', '女', '11', '4', '2020-11-26');
INSERT INTO `student` VALUES ('14', '妹钱啊', '18', '男', '86', '4', '2020-11-11');
INSERT INTO `student` VALUES ('15', '大黄', '4', '男', '12', '5', '2020-11-04');
INSERT INTO `student` VALUES ('16', '猪八戒', '5', '男', '25', '5', '2020-11-05');
INSERT INTO `student` VALUES ('17', '唐僧', '31', '男', '66', '5', '2020-12-11');
INSERT INTO `student` VALUES ('18', '孙悟空', '30', '男', '77', '5', '2021-07-15');
INSERT INTO `student` VALUES ('19', '沙僧', '29', '男', '89', '5', '2021-05-12');
INSERT INTO `student` VALUES ('20', '白骨精', '59', '女', '56', '5', '2020-02-27');

一: 获取所有年龄小于18.并且名字中有’妹’的,所有 ‘‘女生’’ 的信息 .

SELECT * FROM student WHERE sage < 18 AND sname LIKE '%妹%' AND sex ='女';

二: 获取所有学生的总人数,平均分,最低分,最高分 .

SELECT COUNT(*) 总人数, AVG(score) 平均分,MIN(score) 最低分, MAX(score) 最高分 FROM student;

三: 获取所有参加考试的学生的总人数和参加考试的学生的平均分和所有学生的平均分 .

SELECT COUNT(score) 总人数,AVG(IF(ISNULL(score)= 1,'缺考',score)) 所有人的平均分,AVG(score) 参加的平均分 FROM student;

四: 获取所有学生的自我介绍信息,我叫xxx,今年xx岁,明年xx岁,考了xx分,我是成年人/未成年人 .

SELECT sname,sage 今年 ,sage+1 明年 ,score 考了,IF(sage >= 18,'成年人','未成年人') '我是成年人/未成年人' FROM student;

五: 获取5月份生日的学生的个数 .

SELECT COUNT(sbirthday) FROM student WHERE MONTH(sbirthday)= 05;

六: 获取本月生日的学生的个数 .

SELECT COUNT(sbirthday) FROM student WHERE MONTH(sbirthday)=EXTRACT(MONTH FROM NOW());

七: 获取年龄在18到22岁之间的学生的信息 .

SELECT * FROM student WHERE sage BETWEEN 18 AND 22;

八: 获取第 6 ~ 10 条的所有学生的信息 .

SELECT * FROM student LIMIT 5,5;

九: 把所有女生,并且年龄 < 20 的学生分数 +1 .

UPDATE student SET sage = sage+1 WHERE sex ='女' AND sage > 20;

十: 把所有成绩为 “NULL” 的学生,分数设置为 100 .

UPDATE student SET score = 100 WHERE score IS NULL;

对表的操作

一: 删除默个列 .

alter table 表名 drop 列名

二: 添加一个列, 列类型固定长度为4的字符串 .

alter table 表名
add 添加的列名 VARCHAR(4) NOT NULL DEFAULT 0 COMMENT '添加的列';

三: 修改列名 A 为 B .

alter table 表名 change `A列名` `B列名` VARCHAR(20);

四: 修改 A 列的类型为 char(4) .

alter table 表名 modify 列名 char(4);

五: 修改表名 .

alter table 表名 rename to 新表明;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小郑要做干饭人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值