首页 > 代码库 > Mysql 基础语法3
Mysql 基础语法3
一,其他数据操作(高级操作)
蠕虫复制(insert into 表名(字段列表) select *|字段列表 from 表名)
主键重复:insert into 表名(字段列表)values(值列表)on duplicate key update 字段1=值1,字段2=值2…… replace into 表名(字段列表) values(值列表)
删除和修改的时候都可以加上order by和limit子句
select选项(all,distinct,缺省值是all)
别名:字段|表达式|表名|子查询
二,五子句
where:
1. where的语法和流程
2. Mysql运算符(关系运算符,逻辑运算符、between and、in和not in)
3. where子句的其他形式:空值查询(is[not] null),模糊查询(like、通配符_和%)
4.where子句的本质是将数据从磁盘筛选到内存中,而having子句是将内存中的数据再次进行筛选
5.where子句后面不能使用统计函数,但是having子句可以,因为只有在内存中的数据才能直接参与运 算
b.group by子句:分组统计查询语句,往往就是配合着统计函数(聚合函数)一起使用
1. 多字段分组
2. 统计函数:max、min、sum、avg、count
3. 统计函数可以单独使用,此时相当于把整个表分成一组
4.回溯统计(向上统计),with rollup
c.having子句
d.order by子句:根据某个字段进行排序,也可以多字段排序(升序asc,也是默认值,降序desc)
e.limit子句:limitoffset,length,其中偏移量是从0开始,如果省略就默认为0!分页的原理是: limit ($pageNum - 1) * $rowsPerPage,$rowsPerPage
三,联合查询
关键字:union,union选项是all和distinct,缺省值是distinct
应用场景:
1,当业务逻辑出现冲突或者很难在同一个select语句中实现的时候,需要对业务逻辑进行拆分,用多个select语句单独实现然后再联合到一起;
2,当一个表的数据量比较大的时候(尤其是超过1000w),往往需要对表进行“水平分割”(此时多张表的结构是一样是,只是存放的数据不一样),此时如果要查询数据,往往是多个表分别查询然后再联合到一起
Mysql 基础语法3