欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL 从入门到跑路_01(实例实操)

程序员文章站 2024-03-21 18:24:22
...

MySQL 学习笔记_01(实例实操)

  • 登录

    • mysql -u root -p
  • 显示数据库

    • show databases;
  • 新建一个数据库

    • create databases DemoOne;
    • show 一下
    • MySQL 从入门到跑路_01(实例实操)
  • 使用数据库

    • use DemoOne DemoOne用做演示
    • MySQL 从入门到跑路_01(实例实操)
  • 添加表

    • 比如我现在要做一个学生的数据库。应该会有<学生序号><学生学号><学生姓名><学生年龄><学生性别><学生电话号码>

    • create table student_info(
      	id int NOT NULL,
        number bigint NOT NULL,
        name varchar(32) NOT NULL,
        age int NOT NULL,
        sex varchar(32) NOT NULL,
        phone bigint
      ) DEFAULT CHARSET=utf8;
      
    • MySQL 从入门到跑路_01(实例实操)

  • 查看表

    • 需要在选择数据库后才能够查看选择的数据库中的表,如果不确定自己是否选择了数据库。用select database();来查看。

    • show tables;

    • MySQL 从入门到跑路_01(实例实操)

    • 如果要查看表的结构,可以用desc [表名]

    • MySQL 从入门到跑路_01(实例实操)

    • 可以看见我上面的表中的数据age的数据格式出了问题,应该是int的因为现在还没有任何数据,可以删掉重建。

    • drop table student_info; 之后再新建一个即可。

    • 修改的话可以用alter table student_info modify age INT;

  • 插入数据

    • --insert 的格式
      insert into [表名]
      (字段1,字段2,字段3....,字段n)
      values
      (1,值2,值3.....,值n) --插入一个数据
      (1,值2,值3.....,值n) --如果需要插入多个数据,就这样
      (1,值2,值3.....,值n)
      (1,值2,值3.....,值n); --不要忘记分号
      
      
    • 随便插入一些数据

    • insert into student_info
      (id,number,name,age,sex,phone)
      values
      (1,12345601,"张一一",20,"男",10088),
      (2,12345602,"李二二",20,"女",10011),
      (3,12345603,"王三三",21,"男",10022),
      (4,12345604,"周思思",19,"女",10033),
      (5,13345609,"毛五五",21,"男",10055),
      (6,12345610,"陈六",19,"男",10023);
      
  • 查看之前插入的数据

    • select ... from [表名]

    • 比如select * from student_info;

      • 注意这里的 * 代表选择了所有字段。

      • MySQL 从入门到跑路_01(实例实操)

      • 如果要单选的话可以改,查看自己想要查看的数据。

      • select name from student_info;

      • MySQL 从入门到跑路_01(实例实操)

      • 如果说数据太多了还可以加上limit来查看前几个或者从哪开始查看下面的哪几个

        • --limit 的用法
          limit 4 -- 从0开始显示4个 (0,0+4=4]
          limit 2 3 --从2开始显示3个 (2,2+3=5]
          
        • MySQL 从入门到跑路_01(实例实操)

        • MySQL 从入门到跑路_01(实例实操)

  • 筛选数据

    • 筛选数据,可以用where来做。也可以将where,理解为if

    • 比如,我要查看性别为女的学生信息

      • select * from student_info where sex="女";
      • MySQL 从入门到跑路_01(实例实操)
    • 我要查看性别为女并且年龄大于19岁的

      • select * from student_info where sex="女" and age > 19;
      • MySQL 从入门到跑路_01(实例实操)
    • 我要找出这几个学生当中姓毛的同学

      • select * from student_info where name like "毛%";
      • MySQL 从入门到跑路_01(实例实操)
  • 操作数据

    • 排序

      • 通过年龄大小升序来排列

        • select * from student_info order by age;
        • MySQL 从入门到跑路_01(实例实操)
      • 通过年龄大小降序来排列

        • select * from student_info order by age desc;
        • MySQL 从入门到跑路_01(实例实操)
      • order by 默认是升序,在后面加上desc就可以设置为降序。

    • 找出学号在12345601和12345608之间的学生

      • select * from student_info where number between 12345601 and 12345608;
      • MySQL 从入门到跑路_01(实例实操)
  • 分组查询

    • 分组查询是将数据先进行分组,然后再进行操作

    • --分组用的是group by
      select 
      	...
      from 
      	...
      group by
      	...
      
    • 比如,我要不同性别的平均年龄

      • select sex,avg(age) from student_info group by sex;

      • MySQL 从入门到跑路_01(实例实操)

      • 那么如果我就是要查看女生的平均年龄,我不想查看男生的。

      • 就需要使用到having

      • select
        	sex,avg(age)
        from 
        	student_info
        group by
        	sex
        having
        	sex="女";
        
      • select sex,avg(age) from student_info group by sex having sex="女";

      • MySQL 从入门到跑路_01(实例实操)

      • having的意思是:在已经分组的查询结果中,再进行一个过滤。