mysql进阶(<( ̄︶ ̄)↗[GO!])


对mysql数据的进一步操作查询。

mysql的条件    使用where子句对表中的数据筛选,结果为true的行会出现在结果集中

语法: select * from  表名   where  条件; ( 在这里声明*代

消除重复行:  select   distincea  字段名    from   表名

模糊查询:是针对众多的数据中针对单条数据的快速查询方法   

like

%表示任意多个任意字符

_表示一个任意字符

语法:select   *   from  表名  where(条件)  字段名   like  ‘被查询的条件’

范围性的查询:有两种    1是:in 在一个非连续性的范围内查询

                                            2是: betwee (条件)and  (条件)  连续性的范围查询

mysql的运算优先级:小括号>not>比较运算>逻辑运算(and比or先运算,如果同时出现并希望先算or,需要结合()使用)

聚合:为了快速得到统计数据     count(*)表示计算总行数     max(列)表示求此列的最大值       min(列)表示求此列的最小值     sum(列)表示求此列的和     sum(列)表示求此列的和     avg(列)表示求此列的平均值 

按照字段分组,表示此字段相同的数据会被放到一个组中  分组后,只能查询出相同的数据列,对于有差异的数据列无法出现在结果集中    可以对分组后的数据进行统计,做聚合运算

语法:

select 列1,列2,聚合... from 表名 group by 列1,列2,列3...

分组后的数据筛选

语法:

select 列1,列2,聚合... from 表名  group by 列1,列2,列3...   having 列1,...聚合...

having后面的条件运算符与where的相同

排序  :为了方便查看数据,可以对数据进行排序

语法:

select * from 表名  order by  列1 asc|desc,列2 asc|desc,...

注:(默认按照列值从小到大排列

asc从小到大排列,即升序

desc从大到小排序,即降序)

获取部分行  :当数据量过大时,在一页中查看数据是一件非常麻烦的事情,这时候就用到了获取部分行

语法

select * from 表名   limit start,count

从start开始,获取count条数据

start索引从0开始

mysql关系:外键   如果一张表中有一个非主键的字段指向了别一张表中的主键,就将该字段叫做外键。(一张表中可以有多个外键。)

使用外键的前提:

 1. 表储存引擎必须是innodb,否则创建的外键无约束效果。

 2. 外键的列类型必须与父表的主键类型完全一致。

   3. 外键的名字不能重复。

   4. 已经存在数据的字段被设为外键时,必须保证字段中的数据与父表的主键数据对应起来。

链接查询: 当需要对有关系的多张表进行查询时,需要使用连接join

语法:select   属性  from  子表   inner  join  父表  on   子表.属性=父表.属性

连接查询分类如下:

表A inner join 表B:表A与表B匹配的行会出现在结果中

左链接: 表A left join 表B:表A与表B匹配的行会出现在结果中,外加表A中独有的数据,未对应的数据使用null填充

右链接:   表A right join 表B:表A与表B匹配的行会出现在结果中,外加表B中独有的数据,未对应的数据使用null填充

你可能感兴趣的:(mysql进阶(<( ̄︶ ̄)↗[GO!]))