Mysql基础2


清空一个表,自增id从1开始
truncate table 表名;

查询
select 列名 from 表名 where 条件 order by 列名 [desc|asc] limit 跳过条数,查多少条

AS 别名
列名 as 新列名 注意as可以省掉不写
NULL值查询
select * from table1 where 字段 is null;
组合列
select concat('No.',id) from stu;
去重复
select distinct 列名 from 表名; 注意:列名,只能跟一个
排序
select * from 表名 order by 列名1 asc,列名2 desc;
加工之后的信息排序
select concat('No.',id) from stu order by concat('No.',id);
常用函数
select concat('My','S','QL'); 连接
select lower('PHP'); 转小写
upper() 转大写
select replace('www.mysql.com','www','http://www'); 替换
update stu set name = replace( replace(name,'o','0') ,'i' ,'1'); 将name字段所有的o换为0,所有的i换为1

trim()
ltrim()
rtrim()
select abs(-5) 绝对值
select adddate('2013-02-28',1); 2013-03-01
select now();

通配符 "%" 任意 "_"单个
select * from stu where name like '张_';

正则 不支持 \w ...
select * from stu where name regexp '^a[a-z][a-z]$';

区间操作 [not] between ... and ...
select * from stu where age >=18 and age <=19;
select * from stu where age between 18 and 19;
select * from stu where age not between 18 and 19;

[not] in (值1,值2,...)

sum 求和
avg 平均
count(*) 计数
括号中可以是*,也可以列名
如果括号中是列名,则不会统计该列数据为null值的
max 最大值
select max(age) from stu;
min 最小值

*分组查询
一条语句得到男生和女生分别是多少人?
select sex,count(*) from stu group by sex; #分组后统计
注意:字段只能是用于分组的字段(group by 后的字段) 或聚合函数

按科目分组统计平均成绩

分组带排序
select sex,avg(age) as avg from stu group by sex order by avg desc;

*分组后筛选 having
按性别分组,求平均年龄大于等于6
select sex,avg(age) as avg from stu group by sex having avg>=6;
按性别分组,求平均年龄大于等于6,按平均年龄从大到小排列
select sex,avg(age) as avg from stu group by sex having avg>=6 order by avg desc;

where 与having可以同时出现,where在筛选之前就执行了,having是在分组之后才执行

显示人数超过15人的班级,按班级人数排序
select grade_id,count(*) from stu group by grade_id having count(*)>15 order by count(*) desc;
select grade_id,count(*) total from stu group by grade_id having total>15 order by total desc;

WHERE -> GROUP BY -> HAVING ->ORDER BY


成绩表
create table score (
id int auto_increment primary key,
stu_id int,
subject varchar(50) ,
score int
) engine=myisam default charset=utf8;

INSERT INTO score (stu_id,subject,score) values (1,'php',65),(1,'mysql',95),(1,'linux',80),(2,'php',50),(2,'mysql',70),(2,'linux',70);

统计及格总人数和及格人数的平均分
select subject, count(*),avg(score) from score where score>=70 group bysubject;
统计及格总人数和平均分在80以上


多个学员不低于90分的班级
select 班级 from 表名 where score >=90 group by 班级 having count(*)>1


显示:id,姓名,班级名称
select stu.id,stu.name,grade.name from stu,grade where stu.grade_id=grade.id;
显示:id,姓名,班级名称,age大于10的
select stu.id,stu.name,grade.name,age from stu,grade where stu.grade_id=grade.id and age>10;

select stu.id,stu.name,grade.name,age from stu
left join grade on grade.id=stu.grade_id
where age>10;

左联接
左表中的数据,全部出来,就算右表没,没有对应的数据
select stu.id,stu.name,grade.name,age from stu
left join grade on grade.id=stu.grade_id

右联接
select stu.id,stu.name,grade.name,age from stu
right join grade on grade.id=stu.grade_id

用右连接,实现和前面一样的效果
select stu.id,stu.name,grade.name,age from grade
right join stu on grade.id=stu.grade_id

内联 inner可以省掉
select stu.id,stu.name,grade.name,age from stu
inner join grade on grade.id=stu.grade_id
内联与这样结果相同: select * 表1,表2 where 条件


显示所有参加考试的男生的成绩
select score.*,stu.name from stu join score on score.stu_id=stu.id where sex=1;
select score.*,stu.name from stu ,score where stu.id=score.stu_id and sex=1;
先查男生的id,然后通过id列表,去成绩表中查询
select id from stu where sex=1; select * from score where stu_id in (1,6,8);
select * from score where stu_id in (select id from stu where sex=1);


查询科目及格人数和不及格人数:
科目 及格人数 不及格人数
phy 20 1
mysql 26 2

select subject,sum(case when score<60 then 1 else 0 end) as no,
sum(case when score>=60 then 1 else 0 end) pass
from score group by subject;


转载于:https://www.cnblogs.com/wicub/p/4322933.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406232.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 类访问控制(public/protected/private)

From: http://cnmtjp.blog.51cto.com/204390/36548 C中 public&#xff0c;protected&#xff0c; private 访问标号小结第一&#xff1a;private, public, protected 访问标号的访问范围。private&#xff1a;只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问&…

vue监听浏览器原生返回按钮,进行路由转跳

vue监听浏览器原生返回按钮&#xff0c;进行路由转跳

WORD关于论文格式设置

现今的论文格式要求越来越无语,封面页 摘要页 目录页 正文页,封面页 摘要页 不能有页眉页脚 目录页 要求倒是不算高,整出个目录就行 正文页 页眉无所谓,但是页脚要显示页码 1 不设置就好,但是有时候设置了页眉又删除了的话,会出现一个横线,这个横线是由 页眉 的样式所定义的,这…

自身经历第二次面试(阿里)

自我介绍 1、哈希表及其实现机制 2、C的三个特征及其解释 3、抽象与接口的区别 4、设计模式 转载于:https://www.cnblogs.com/Vae1990Silence/p/4330577.html

秒杀系统 mysql_秒杀系统-介绍

秒杀系统秒杀系统其实是针对库存做的系统。用户成功秒杀商品&#xff0c;对于我们系统的操作就是减库存和记录用户的购买明细。用户的购买明细包括记录谁购买成功、购买成功的时间和付款信息。而对于减库存操作&#xff0c;需要考虑到以下两个问题&#xff1a;(1)若是用户成功秒…

MOSS中自定义WebService

(转http://tech.ddvip.com/2008-10/122527111786701.html&#xff0c;更详细见msdn&#xff1a;http://msdn.microsoft.com/zh-cn/library/ms464040.aspx) MOSS中已经提供的webservice都放在虚拟目录_vti_bin中&#xff0c;对应的物理目录为c:Program FilesCommon FilesMicroso…

C语言排序算法总结

From: http://www.diybl.com/course/6_system/linux/Linuxjs/20091028/180420.html 排序算法一直都是让我头疼的算法。为了全面掌握排序算法&#xff0c;我就整理了常用的排序算法。 首先我们来了解一些基本概念&#xff1a; &#xff08;1&#xff09;稳定排序和非稳定排序 简…

js计算数组中每个元素出现的次数(2种方法)

js计算数组中每个元素出现的次数&#xff08;2种方法&#xff09; js动态生成唯一id Javascript生成全局唯一标识符&#xff08;GUID,UUID&#xff09;的方法

执行execute时对象名 retime_record 无效_MyBatis 的执行流程怎么可以讲的这么透彻

前言MyBatis可能很多人都一直在用&#xff0c;但是MyBatis的SQL执行流程可能并不是所有人都清楚了&#xff0c;那么既然进来了&#xff0c;通读本文你将收获如下&#xff1a;1、Mapper接口和映射文件是如何进行绑定的2、MyBatis中SQL语句的执行流程3、自定义MyBatis中的参数设置…

iOS统计项目的代码总行数

如果要统计ios开发代码&#xff0c;包括头文件的&#xff0c;CD到项目目录下&#xff0c;命令如下 ① 列出每个文件的行数 find . -name "*.m" -or -name "*.h" -or -name "*.xib" -or -name "*.c" |xargs wc -l ② 列出代码行数总和f…

C/C++中预编译#,##,#error作用

From: http://bluefairy218.blog.163.com/blog/static/313917532008456397524/ #是生成字符串&#xff1a; #define a(x) #x a(bc) > "bc" ##是连接&#xff1a; #define a(x) abc##x a(123) > abc123 #error是生成…

WCF安全之ASP.NET兼容模式

本文是利用ASP.NET兼容模式实现WCF安全的一个完整示例&#xff0c;其中用到了ASP.NET的Forms身份验证及Membership&#xff0c;并启用了角色管理。 由于整套安全方案完全利用ASP.NET相关功能实现&#xff0c;而未用到WCF安全策略相关的包括WCF身份验证、WCF授权及WCF传输安全等…

javase基础复习攻略《七》

容器是什么&#xff1f;通俗的讲容器指可以装其它东西的器皿&#xff0c;前面我们提到的数组便是容器的一种&#xff0c;容器的概念在JAVA中便可以理解为用来存储其它对象的器皿。本篇就让我们一起来认识一下JAVA为我们提供的容器类。 1、容器API&#xff1a; J2SDK提供的容器A…

mysql2000数据库四合一_MSSQL2000四合一

MSSQL2000四合一是包含了MS Sql Server 2000 DEVELOPER、ENTERPRISE、PERSONAL、STANDARD 四个版本。在解压目录下有 SQL2000-KB884525-SP4-x86-CHS.EXE 这是SQL 2000 的 sp4 补丁。记录安装完后一定要安装上。个人版、企业版、专业版、开发版SQL Server 2000 是 Microsoft .NE…

数据库的种类

From:http://www.job168.com/info/read_87955.html 数据库的种类 大型数据库有&#xff1a;Oracle、Sybase、DB2、SQL server 小型数据库有&#xff1a;Access、MySQL、BD2等。 2007年4月29日消息&#xff0c;国外媒体报道&#xff0c;据权威调研机构IDC初步数据显示&#x…