设为首页 收藏本站
查看: 686|回复: 0

[经验分享] mysql 常用查询

[复制链接]

尚未签到

发表于 2016-9-21 09:05:19 | 显示全部楼层 |阅读模式
  1,查询学员中,年龄在20以上的男女生比例
  数据表如下:

--
-- 表的结构 `students`
--
CREATE TABLE IF NOT EXISTS `students` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`sex` tinyint(4) NOT NULL DEFAULT '1',
`age` int(4) NOT NULL DEFAULT '20',
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ;
--
-- 转存表中的数据 `students`
--
INSERT INTO `students` (`id`, `sex`, `age`) VALUES(1, 1, 18);
INSERT INTO `students` (`id`, `sex`, `age`) VALUES(2, 0, 36);
INSERT INTO `students` (`id`, `sex`, `age`) VALUES(3, 1, 15);
INSERT INTO `students` (`id`, `sex`, `age`) VALUES(4, 0, 16);
INSERT INTO `students` (`id`, `sex`, `age`) VALUES(5, 0, 23);
INSERT INTO `students` (`id`, `sex`, `age`) VALUES(6, 1, 26);
INSERT INTO `students` (`id`, `sex`, `age`) VALUES(7, 0, 23);
INSERT INTO `students` (`id`, `sex`, `age`) VALUES(8, 1, 30);
INSERT INTO `students` (`id`, `sex`, `age`) VALUES(9, 0, 19);
INSERT INTO `students` (`id`, `sex`, `age`) VALUES(10, 1, 26);
INSERT INTO `students` (`id`, `sex`, `age`) VALUES(11, 1, 30);
INSERT INTO `students` (`id`, `sex`, `age`) VALUES(12, 1, 19);
  

--
--查询语句
--
SELECT sex AS `性别` , cast( sum( IF( age >20, 1, 0 ) ) / count( * ) *100 AS decimal( 5, 2 ) ) AS `比例`
FROM students
GROUP BY sex
  2,从学生表中,同步用户表数据
  数据表如下:

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `student`
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`code` varchar(50) DEFAULT NULL,
`name` varchar(50) DEFAULT NULL,
`age` tinyint(1) DEFAULT NULL,
`class` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('1', '002', 'lifang', '12', 'A3');
INSERT INTO `student` VALUES ('2', '003', 'zhangqi', '23', 'A2');
INSERT INTO `student` VALUES ('3', '012', 'libing', '34', 'S2');
INSERT INTO `student` VALUES ('4', '014', 'zhangbin', '32', 'S2');
INSERT INTO `student` VALUES ('5', '323', 'lili', '23', 'B3');
INSERT INTO `student` VALUES ('6', '056', 'ali', '34', 'B4');
INSERT INTO `student` VALUES ('7', '331', 'wangfang', '33', 'S3');
-- ----------------------------
-- Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`loginname` varchar(50) DEFAULT NULL,
`password` varchar(50) DEFAULT NULL,
`code` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', 'lifang', '123456', '002');
INSERT INTO `user` VALUES ('2', 'zhangqi', '123456', '003');
INSERT INTO `user` VALUES ('3', 'libing', '123456', '012');
  插入新学生数据到用户表:

INSERT INTO `user`(`code`,`loginname`,`password`) SELECT  code,name,'123456' FROM `student` WHERE name NOT IN(SELECT loginname FROM `user`)
  更新用户表登陆名:

UPDATE `user` AS a LEFT JOIN `student` b ON a.`code` = b.`code` SET a.`loginname` = b.`name` WHERE a.`code` = b.`code`

  
3,查询树型中所有子结点id
  表及数据

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `folder`
-- ----------------------------
DROP TABLE IF EXISTS `folder`;
CREATE TABLE `folder` (
`folder_id` int(11) NOT NULL AUTO_INCREMENT,
`pid` int(11) DEFAULT NULL,
`folder_name` varchar(100) DEFAULT NULL,
`userid` int(11) DEFAULT NULL,
`level` tinyint(1) DEFAULT '1' COMMENT '文件夹层级',
`del_flag` tinyint(1) DEFAULT '0' COMMENT '删除标记 1=删除, 0=未删除',
`updated` int(10) DEFAULT NULL,
`created` int(10) DEFAULT NULL,
PRIMARY KEY (`folder_id`),
KEY `pid` (`pid`),
KEY `userid` (`userid`,`del_flag`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=93 DEFAULT CHARSET=utf8 COMMENT='资源文件夹表';
-- ----------------------------
-- Records of folder
-- ----------------------------
INSERT INTO `folder` VALUES ('1', '3', 'jjjjj', '33609', '4', '0', '1450663708', '1450663708');
INSERT INTO `folder` VALUES ('2', '3', 'jjjooiooo', '33609', '4', '0', '1450663712', '1450663712');
INSERT INTO `folder` VALUES ('3', '45', 'oiuiouoiuio', '33609', '3', '0', '1450663715', '1450663715');
INSERT INTO `folder` VALUES ('4', '16', 'ssss', '33635', '2', '0', '1450664103', '1450664103');
INSERT INTO `folder` VALUES ('5', '4', 'ddddd', '33635', '3', '0', '1450664107', '1450664107');
INSERT INTO `folder` VALUES ('6', '0', 'jhk', '288523', '1', '1', '1450664630', '1450664265');
INSERT INTO `folder` VALUES ('7', '1', 'jkhjkhjkh', '33609', '5', '0', '1450664780', '1450664780');
INSERT INTO `folder` VALUES ('8', '0', 'fdsf', '288523', '1', '1', '1450683058', '1450665908');
INSERT INTO `folder` VALUES ('9', '0', 'aaaaaaa', '33635', '1', '0', '1450666624', '1450666624');
INSERT INTO `folder` VALUES ('10', '9', 'a-b', '33635', '2', '0', '1450666641', '1450666641');
INSERT INTO `folder` VALUES ('11', '10', 'a-b-c', '33635', '5', '0', '1450666655', '1450666655');
INSERT INTO `folder` VALUES ('13', '9', 'a---b', '33635', '2', '0', '1450667744', '1450667744');
INSERT INTO `folder` VALUES ('14', '13', 'a---c', '33635', '5', '0', '1450667756', '1450667756');
INSERT INTO `folder` VALUES ('15', '15', 'vvvvvvvvvv', '33635', '1', '0', '1450667829', '1450667829');
INSERT INTO `folder` VALUES ('16', '0', 'qqqqq', '33635', '1', '0', '1450668448', '1450668448');
INSERT INTO `folder` VALUES ('17', '16', 'wwwwwwwwww', '33635', '2', '0', '1450668456', '1450668456');
INSERT INTO `folder` VALUES ('18', '0', 'hh', '287621', '1', '0', '1450839598', '1450669229');
INSERT INTO `folder` VALUES ('19', '0', 'fdsffsfd', '288523', '1', '1', '1450684428', '1450683188');
INSERT INTO `folder` VALUES ('20', '0', 'fsdf', '288523', '1', '1', '1450751544', '1450684434');
INSERT INTO `folder` VALUES ('21', '0', 'dsf', '288523', '1', '1', '1450684513', '1450684440');
INSERT INTO `folder` VALUES ('22', '0', 'dsfds', '288523', '1', '1', '1450751547', '1450684529');
INSERT INTO `folder` VALUES ('23', '0', 'uyg', '33609', '1', '1', '1450687847', '1450685531');
INSERT INTO `folder` VALUES ('24', '0', 'yuguyyu', '33609', '1', '1', '1450687847', '1450685533');
INSERT INTO `folder` VALUES ('25', '0', 'uygygugyug', '33609', '1', '1', '1450687786', '1450685537');
INSERT INTO `folder` VALUES ('26', '0', 'ugyuuyyu', '33609', '1', '1', '1450685548', '1450685540');
  方法

CREATE  FUNCTION `getFolderChildrenIds`(p int) RETURNS varchar(1000) CHARSET utf8
BEGIN
DECLARE sTempChd VARCHAR(4000);
DECLARE sTemp VARCHAR(4000);
set sTemp = '';
SET sTempChd = cast(p as char);
WHILE sTempChd is not NULL DO
if sTemp  != '' then
set sTemp = CONCAT(sTemp,',',sTempChd);
ELSE
set sTemp = sTempChd;
end if;
SELECT group_concat(folder_id) INTO sTempChd FROM tbl_resource_folder where FIND_IN_SET(pid,sTempChd) > 0;
END WHILE;
return sTemp;
END
  
  sql中使用

select * from tbl_resource_folder where FIND_IN_SET(folder_id,(select getFolderChildrenIds(9)));
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-275237-1-1.html 上篇帖子: mysql date处理 下篇帖子: [转]MySQL 行号
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表