美文网首页
MySQL(一)

MySQL(一)

作者: w_wm_m | 来源:发表于2018-10-23 21:57 被阅读0次

    常用

    1.创建数据库

    create database dbname charset=utf8;
    

    2.显示所有的数据库

    show databases;
    

    3.选择要使用的数据库

    use dbname;
    

    4.删除一个数据库

    drop database dbname;
    

    5.显示当前数据库中所有的表

    show tables;
    

    6.创建表

    create table students(
    id int auto_increment primary key not null,
    name varchar(10) not null,
    gender bit default 1,
    birthday datetime,
    isdelete bit default 0);
    

    对于MySQL来说默认的搜索引擎为InnoDB,字符编码方式默认为数据库的字符编码

    7.查看表结构

    desc tablename;
    

    8.修改表结构

    alter table tablename add/change/drop 字段名 类型;
    

    9.删除表

    drop table tablename;
    

    10.重命名表

    rename table 原表名 to 新表名;
    

    11.显示如何创建表的语句

    show create table tablename;
    

    插入数据

    1.全列插入

    insert into tablename  values(...);
    

    2.缺省加入

    insert into tablename (字段1,字段2,字段3) values(值1,值2,值3);
    

    3.同时插入多条数据

    insert into tablename values(...),(...)....;//全列
    
    insert into tablename (字段1,字段2,字段3) values (值1,值2,值3)
    ,(值1,值2,值3)...  //缺省
    

    修改(更新)数据

    update tablename 某字段=某值,... where 条件;
    

    删除数据

    delete from students where id=5;
    

    查询数据

    1.基本查询

    select * from tablename where id > 5;//查询id大于5的所有信息
    
    select id,name from tablename where id > 5;//查询id大于5,并将其id和name进行展示
    

    2.distinct

    select distinct gender from students;//将得到的结果集去掉重复的
    
    select distinct gender,id from students;//组合不重复即可
    

    3.模糊查询

    select * from students where name like "黄%";//查询姓黄的学生的所有信息
    

    like关键字【%表示一个或多个任意字符,_表示一个任意字符】

    4.范围查询

    select * from students where id in (1,3,8);//不连续
    
    select * from students where id between 3 and 8;//连续
    

    5.判空

    select * from students where birthday is null;//birthday字段为空的所有信息,is not null不为空
    

    6.聚合函数
    count():表示计算总行数,括号内写字段名,即列名,但是对于同一表来说结果相同,所有一般使用代替,count()。
    max(列):求此列的最大值。
    min(列):求此列的最小值。
    sum(列):求此列的和。
    avg(列):求此列的平均值。

    select count(*) from students where isdelete=0;
    

    7.分组

    select gender,count(*) from students group by gender;//将表中的student以gender分组并统计数量。
    

    8.筛选

    select gender,count(*) as rs from students group by gender having rs>2;//将结果集中的count()记为rs,并筛选出rs大于2的。
    

    having与where:

    where与having.png

    简言之就是,where与having所筛选的数据集不同,where是对原始集进行筛选,而having是对分组之后的结果集进行筛选。

    9.排序

    select * from students order by id desc;//以id降序排列展示student的所有信息
    

    默认以升序排列,升序关键字(asc),降序关键字(desc)。

    10.分页

    select * from students limit start,n;//从第start条数据开始查询n条所有学生的信息
    

    总结

    select distinct 列名
    from 表名
    where 条件
    group by 列名 having...
    order by 列名
    limit start,n;
    

    相关文章

      网友评论

          本文标题:MySQL(一)

          本文链接:https://www.haomeiwen.com/subject/kqqkzftx.html