mysql学习一

Posted blackx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql学习一相关的知识,希望对你有一定的参考价值。

基础

数据库的命令:

  查看所有数据库: show databases;

   查看当前使用的数据库:select database();

  切换数据库:use 数据库名;

  创建数据库:create database 数据库名 charset=utf8;

  删除数据库:drop database 数据库名;

数据表的命令:

  查看所有的表:show tables;

  创建表:create table 表名(id int auto_increment primary key not null,...)

  删除表:drop table 表名;

  修改表:alter table 表名 add | change | drop 列;

数据的命令:

  查询:select * from 表名;

  增加:insert into 表名 values(...);

  修改:update 表名 set 字段=值 ...

  删除:delete from 表名;

  逻辑删除:在表中增加一个列,比如增加一个列名为isDelete的列,类型为bool类型,将需要删除的记录的该字段值修改为1,而不是正真删除该记录。查询时,只要查询isDelete=0的记录就可以了。

基本查询:

select * from 表名;

select 列名1,列名2,... from 表名;

distinct 关键字 消除重复的行

select distinct 列名1,列名2,... from 表名;

条件查询:

select * from 表名 where 条件;

模糊查询:

like:

%:表示任意多个字符

_:表示任意一个字符

select * from 表名 where 列名 like  ‘xx%x‘;

范围查询:

in:表示在一个非连续的范围内

  查询id为1或3或4的记录

  select * from 表名 where id in(1,3,4);

between ... and ... :表示在一个连续的范围内

  查询id在1到4之间的记录

  select * from 表名 where id between 1 and 4;

空判断:

  注意:null与‘‘(两个单引号之间什么都没有,表示一个空字符串)是不同的

  判断:is null

聚合:mysql中常用的5个聚合函数

  count(*):计算总行数,括号中写*或列名

    select count(*)  from 表名;

  max(列):表示求此列的最大值

    select  max(id) from 表名;

  min(列):表示求此列的最小值

    select min(id) from 表名;

  sum(列):表示求此列的和

    select sum(id) from 表名;

  avg(列):表示求此列的平均值

    select avg(id) from 表名;

分组:

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

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

  分组后的数据筛选:

    select 列1,列2,聚合 ... from 表名

    group by 列1,列2,列3...

    having 列1,...聚合...

  注意:having和where的区别:

    where:是对from后面指定的表进行数据筛选,属于对原始数据进行筛选

    having:表示对group by(分组后)的结果集进行筛选

    原始集---where--->结果集---group--->结果集---having--->

排序:

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

分页:

  select * from 表名 limit start,count

  表示从start开始,获取count条数据,start索引从0开始

  示例:

    已知:每页显示m条数据,当前显示第n页(n从1开始)

    求总页数:

      查询总条数p1

      使用p1除以m得到p2

      如果整除则p2为总页数

      如果不整除则p2+1为总页数

    求第n页的数据

    首先计算第n页数据的开始索引,计算方法如下:

    n  start

    1  0       第一页,从0开始

    2  m      第二页,从m开始

    3  (n-1)*m  第n页,从(n-1)*m开始  

    select * from 表名 limit (n-1)*m,m

基础总结:

  完整的select语句的写法:

  select distinct * from 表名

  where ...

  group by ... having ...

  order by ...

  limit start,count

  执行顺序:

    from 表名

    where ...

    group by ...

    select distinct *

    having ...

    order by ...

    limit start,count

高级:关系,视图,事务,索引

关系:

连接:

 

 

    

  

 
























以上是关于mysql学习一的主要内容,如果未能解决你的问题,请参考以下文章

数据库MYSQL学习系列一

MySQL数据库开发学习教程

MySQL学习

MySQL学习笔记六

MySQL深入学习--介绍

MYSQL进阶学习知识拓展一:MySQL 存储过程之游标!