MySQL学习笔记(三)

接下来介绍一下MySQL的查询语句

基本的查询语句:

查询表的所有数据并显示所有列

select * from tb;

查询表的所有数据并显示指定列 

select col1,col2,col5 from tb;

查询结果重命名

select sname as 'StudentName',uage as 'StudentAge' from stu;

将查询结果去重(DISTINCT)

select sname,uage,ugender DISTINCT from stu;

按条件查询数据表

select col1,col2,col3 from db where col4=???;

查询条件如果是某一字段非空的话

select * from stu where sname IS NOT NULL;

BETWEEN AND,查询年龄在18到25之间的学生

select * from stu where uage betwwen 18 and 25;

IN,查询cid是(1,2,3)中任何一个的学生

select * from stu where cid in(1,2,3);

模糊查询,很多时候我们的查询条件不是一个明确的值,而是具备某些特征的值,例如查找名字带有ter的学生,其中%代表任意个数的任意字符,_代表一个任意字符,例如以p开头的并且只含有两个字符可以表示为p_。

select * from stu where sname like'%ter%';

limit:限制输出的行数
用法:limit a,b;//a是从第几条语句开始(从0开始),b是到第几句结束,如果b为-1就是到最后
如果limit a;那就是输出前a条语句。

select * from db limit 5

排序查询:select 列名,...from表名 [where条件] order by 列名;

第一条是按照年龄降序排序,第二条是按照年龄升序排序。

select * from stu order by uage desc;
select * from stu order by uage asc;

 

分组查询:select 列名 from 表名 [where条件] group by 列名;

group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。
SELECT子句中的列名必须为分组列或列函数。列函数对于GROUP BY子句定义的每个组各返回一个结果。

在GROUP BY子句之后使用HAVING子句
可应用限定条件进行分组,以便系统仅对满足条件的组返回结果。为此,在GROUP BY子句后面包含一个HAVING子句。HAVING子句可包含一个或多个用AND和OR连接的谓词。

统计函数

COUNT(col):表示满足条件的数据元组中列col非空的元组的个数。

AVG():求平均值。

SUM():求和。

MAX():求最大值。

MIN():求最小值。

连接查询

基本的连接查询中分为内链接,左连接,右连接,外连接

内连接(第一个是普通的内连接,第二个是隐藏式的内连接)

select col1,tb1.col2,col3,tb2.col2 from tb1 inner join tb2 on tb1.col2=tb2.col2;
select col1,tb1.col2,col3,tb2.col2 from tb1,tb2 where tb1.col2=tb2.col2;

左连接

select col1,tb1.col2,col3,tb2.col2 from tb1 left join tb2 on tb1.col2=tb2.col2;

右连接

select col1,tb1.col2,col3,tb2.col2 from tb1 right join tb2 on tb1.col2=tb2.col2;

全连接

select col1,tb1.col2,col3,tb2.col2 from tb1 full join tb2 on tb1.col2=tb2.col2;

左外连接

SELECT col1,col2,tb1.col3,tb2.col2 FROM tb1 LEFT OUTER JOIN tb2 ON tb1.col3=tb2.col2;

右外连接

SELECT col1,col2,tb1.col3,tb2.col2 FROM tb1 right OUTER JOIN tb2 ON tb1.col3=tb2.col2;

全外连接

SELECT col1,col2,tb1.col3,tb2.col2 FROM tb1 full OUTER JOIN tb2 ON tb1.col3=tb2.col2;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值