《MySQL》增删查改(基础)

《MySQL》增删查改(基础)

文章目录

  • 《MySQL》增删查改(基础)
    • 前言:
      • 1. 增(插入信息)
    • 2. 查(查询数据)
      • 全部查询
      • 指定列查询
      • 表达式查询
      • 求值查询
      • 别名查询
      • 去重查询
      • 排序查询
      • 条件查询
      • 模糊查询
      • 分页查询
    • SQL中的运算符:(一般用于条件查询)
    • 3.改
    • 4.删
    • 总结

前言:

本章主要讲解基本的增删查改的基础与细节

这里的增删查改都是在表上进行操作.

1. 增(插入信息)

insert into 表名(表信息) values(,,......),(,,......);

第一种方式:直接插入(单行数据+多列插入)

这里由于没有指定表的信息,所以必须插入一份这个表的所有元素的对应值

例如:为学生表插入一个学生信息

//创建一个表
create table student(
 id int,
 name varchar(20),
 age int
);
insert into student values(1,"李白",18);

第二种方式:多组插入(多行数据+多列插入)

插入多份这个表的所有元素的对应值

insert into student values(2,"白居易",18),(3,"李商隐",19),(4,"杜浦",16);

第三种方式:指定插入(单行数据+指定列插入)

指定表的元素进行插入

insert into student(id) values(5);

对于其他没有被插入的数据,会有一个默认值.

第四种方式:指定插入(多行数据+指定列插入)

insert into student(id) values(5),(6),(7);

2. 查(查询数据)

第一种方式: 简单查询

  1. 全部查询

    select * from 表名;
    

    例如:查询上述学生表的全部数据:

    select * from student;
    

    《MySQL》增删查改(基础)_第1张图片

  2. 指定列查询

    select id from student;
    

    《MySQL》增删查改(基础)_第2张图片

  3. 表达式查询

    select 10 from student;
    

    《MySQL》增删查改(基础)_第3张图片

    在这里意义不大,只对特定场景有意义

  4. 求值查询

    select age+10 from student;
    

    《MySQL》增删查改(基础)_第4张图片

    注意:

    这里的age+10并不会改变数据在硬盘中的存储,只是把age+10以后的数据以临时表的方式呈现出来

  5. 别名查询

    利用as关键字为所要查询的内容起一个别名

    select id+age as total from student;
    

    《MySQL》增删查改(基础)_第5张图片

  6. 去重查询

    select distinct (去重列) from (表名);
    

    查询去除名字相同的表:

    select distinct name from student;
    

    《MySQL》增删查改(基础)_第6张图片

    同样的,这里也不会改变表的值,还是以临时表的形式呈现

  7. 排序查询

    查询的过程中,对查询到的结果进行排序(依然只是以临时表的形式呈现,不会改变磁盘中的数据)

    select 列名 from 表名 order by 列名 asc/desc;
    

    asc以升序排序 默认不写也是以asc

    desc以降序排序

    《MySQL》增删查改(基础)_第7张图片
    例如:查询年龄排序:

    select * from student order by age desc;
    select * from student order by age;
    

    《MySQL》增删查改(基础)_第8张图片

    也可以使用别名进行查询:

select id+age as total from student order by total; 

《MySQL》增删查改(基础)_第9张图片

也可以使用多个列进行排序,先以第一个列为标准,如果第一列不分上下的时候,就以第二列作为标准.依次类推

select * from student order by id desc,age;
  1. 条件查询

    我们可以自定义按照我们的想法查询到我们想要的数据.只需要给足足够的条件即可,

    可以理解为对查询结果进行遍历,如果满足条件则显示,不满足条件则不显示

    语法为:

    select * from 表名 where 条件;
    

    查询年龄小于18的学生:

    select * from student where age<18;
    

    《MySQL》增删查改(基础)_第10张图片

    想要真正学会条件查询,需要理解sql中的运算符.

  2. 模糊查询

    即我们查询的结果不需要十分准确,只要满足一部分特征即可.

    模糊查询需要使用到通配符:

    %: 可以表示任意个任意字符

    _: 可以表示一个任意字符

    使用like关键字:

    select * from 表名 wherelike 模糊条件
    

    查找姓李的同学:

    select * from student where name like "李%";
    

    《MySQL》增删查改(基础)_第11张图片

  3. 分页查询

    当我们在实际工作中接触的表十分大时,分页查询可以使得我们不需要长久地等待机器显示出所有的数据,可以只显示其中的几行.

    我们需要明确的是,select 查询本来就是一个比较危险的操作,在一份超级大表数据面前,即使加上where 条件依然可能把数据库弄挂,所以在查询数据建议多使用分页查询,防止意外情况导致的数据库崩溃.

    语法为

    查询n条数据,从m行开始查询

    select * from 表名 limit N offset M;
    

    查询从学生表第二行开始的三行数据:

    select * from 表名 limit 3 offset 2;
    

    《MySQL》增删查改(基础)_第12张图片

当然select 不止以上操作,还有更加复杂的操作.上面是最基础基本的查询操作.

SQL中的运算符:(一般用于条件查询)

  1. / > < <= >=

    基础的大于小于,大于等于,小于等于.

  2. =

    等于, 对null不安全,无法比较一个值到底是不是null,null = null 的结果不是true,而是null.

  3. <=>

    等于,对null 安全,可以比较出一个值是否为null, null = null 的结果是true

  4. != <>

    不等于

  5. between a1 and a2

    范围匹配,表示在[a1,a2],注意为闭区间,若a1<=value<=a2,则返回true

  6. in (option)

    数值匹配,如果数字在option集合中的任意一个,则返回true

  7. is null

    判断是否为null,是则返回true,不是则返回flase

  8. is not null

    判断是否为null,是则返回flase,不是则返回true

  9. like

    模糊匹配

  10. and

    多个条件必须都为true,最终返回结果才为true

  11. or

    多个条件中只要有一个为true,最终结果就为true

  12. not

    条件为true,结果为flase

3.改

语法:

update 表名 set 列名 =,列名 =.......where 字句

例如: 创建学生成绩表并插入学生成绩信息:

create table exam_result (
 id int ,
 name varchar(20),
 chinese decimal (3 , 1),
 math decimal (3 , 1),
 english decimal (3 , 1)
);
insert into exam_result (id,name, chinese, math, english) VALUES
 (1 , '李一' , 67 , 98 , 56),
 (2 , '李二' , 87.5 , 78 , 77),
 (3 , '李三' , 88 , 98.5 , 90),
 (4 , '李四' , 82 , 84 , 67),
 ( 5 ,'李五' , 55.5 , 85 , 45),
 (6 , '李六' , 70 , 73 , 78.5),
 (7 , '李七' , 75 , 65 , 30);

例子1:将李一的数学成绩改为80;

update exam_result set math = 80 where name = "李一";

《MySQL》增删查改(基础)_第13张图片

例子2:将李二的数学成绩改为80,语文成绩改为90;

update exam_result set math = 80,chinese = 90 where name = "李二";

《MySQL》增删查改(基础)_第14张图片

例子3:将总成绩的前三名同学的数学成绩减30分 (limit作为限制条件)

update exam_result set math = math - 30 order by chinese + math + english limit 3;

修改操作也是十分危险的操作,一旦修改,数据将无法回复,只能通过备份重置数据

4.删

语法

delete from 表名 where 字句

例如 : 删除名字为李四的成绩

delete from exam_result where name = "李四";

执行完这条语句后:
《MySQL》增删查改(基础)_第15张图片

一样十分危险,一旦删除数据无法恢复,只能通过备份了.

总结

mysql基础的增删查改是十分重要的,mysql的学习不能停留在表面,而要通过不断地练习sql语句去熟系,并学会灵活运用.

你可能感兴趣的:(MySQL学习,mysql,数据库,sql)