MySQL学习
目录
select语句
select
语句的基本格式为:
select <要查询的列名> from <表名> where <限制条件>;
- 限制条件中可以有数学符号比如(>,>=,<,<=,=)
- 限制条件中可以使用条件逻辑关系(<条件1>or<条件2>,<条件1>and<条件2>)
-
select <列名> from <表名> where A or B;
-
select <列名> from <表名> where A and B;
- 限制条件也可以使用关键字
in
或者not in
查询是否在列表中 -
select <列名> from <表名> where <列名> in A;
-
select <列名> from <表名> where <列名> not in A;
- 限定条件中也可以使用
like
关键字来进行模糊查找,其中通配符是%
和_
,%
代表不限定后面有几个字符,_
代表后面限定一个字符 -
select <列名> from <表名> where <列名> like 'A%';
(A是字符)
对结果排序
为了使结果更加顺眼,我们可以在进行输出时对某一个特定的列进行排序,使用关键字order by
,普通情况是升序排序,也可以使用关键字asc
和desc
指定升序或者倒序。asc
是升序desc
是倒序
select <列名1>,<列名2>... from <表名> order by <列名1>... asc
升序
select <列名1>,<列名2>... from <表名> order by <列名2>... desc
降序
内置函数
有5个内置函数
函数名 | 作用 |
---|---|
count | 计数 |
sum | 求和 |
avg | 求平均值 |
max | 求最大值 |
min | 求最小值 |
count
可以对任何的数据类型进行计数,sum
和avg
只能用于数值类型的东西进行计算,min
和max
可以用于数值,字符串和日期时间的数据类型。
select max(<列名>),min(<列名>) from <表名>
可以用as
去更改名字
select max(<列名>) as max,min(<列名>) as min from <表名>
子查询
有的时候需要查询多个表格才能知道所需要的数据,那样我们可以用子查询。
select <列名1>,count(<列名2>) as <其他名字> from <表名> group by <列名> having <列名> in ( select <列名> from <表名> where <限定条件>...... )
第二个select
语句返回一个集合,第一个select
语句查询第二个语句select
查询返回的集合,在集合中使用in
进行判断
having
后面接限定条件,和where
类似,但是having
后面是对于分组后的数据进行查询
连接查询
在查询多个表的时候,子查询只是对于一个表才有用,而对于多个表,就得进行连接查询。可以使用join
进行连接。
select <列名1>,<列名2>,<列名3>... from <表名1>,<表名2>... where <限定条件> order by <列名>...
这其中的一种写法,另一种写法是利用join on
关键字
select <列名1>,<列名2>,<列名3>... from <表名1> join <表名2> on <限定条件> order by <列名?>