MySQL表的增删改查

一、新增数据

1.全列插入

表示所有字段都要插入值,且插入的顺序是表定义时的顺序

语法:insert into 表名 values(字段1 要插入的值,字段二要插入的值,...)

(整形会设置一个默认长度)

根据上面创建的表来全列插入:

 2.指定列插入

语法:insert into 表名(要插入的字段1,要插入的字段2,...)values (要插入的值1,要插入的值2,...)

只插入需要的数据,其他没有插入的字段就是null

2.1插入多行数据

(1)执行多条insert语句;

(2)执行一条;

语法:

insert into 表名 (要插入的字段1,要插入的字段2,...) values

(要插入的值1,要插入的值2,...),

(要插入的值1,要插入的值2,...);

二、查询数据

1.各种查询操作

  • 查询该表所有字段,所有数据(自己查数据用,写代码不要用)

select * from 表名;

  • 查询给定的字段

select 查询列1,查询列2 from 表名;

  • 查询的字段可以进行计算(字段是数值型)

  •  字符串:MySQL中字符串拼接不能使用+,需要使用concat(str1,str2,...)函数

正确语法:

表或字段别名:如果查询字段进行了计算等操作,查询返回的字段就不是数据库定义的字段名,此时一般要使用别名

也可以写成如下,都是使用别名:

select id as i,username as u, amount*2  as a from student;

  • 表的别名:

select ... from 表名 [as] 表的别名;

字段要指定为--->表的别名.字段名

  • 别名的作用:
  • (1)简洁一点;
  • (2)规则一点(进行计算就不规则了);
  • (3)可能需要查询多张表的数据,及多张表的字段(可能有重复的字段),此时可以从别名来进行区分;
  • 日期的操作

year(日期的值),month(日期的值),day(日期的值)

(日期的运算操作要使用复杂的函数)

2.去重操作

distinct

对下列表进行去重

(1)只去重一列--->id列

(2)去重两列(这两列结合起来去重)--->id和username

3.排序操作

  • 单列排序

操作结果(按照id排序):

 可能会出现字段相同时,排序不是我们希望的

  • 多列排序

按多个字段顺序来排序,先按第一个字段来排序,如果第一个字段相同才按照第二个,以此类推。如果第一个字段没有相同的,后面的就没用;

asc--->升序(可以忽略不写);desc--->降序; 

select id,username,amount from student order by id,amount desc;--->先按照id排好序,再根据amount升序/降序;

注意事项:

(1)排序可以是多个字段

但是需要前面的字段值相同,后面的字段才会排序;

(2)null:升序最前,降序最后

 (3)排序的字段,也可以使用表达式计算或者别名

4.条件查询

创建一个成绩表:

  • 查询英语成绩小于60的

 若要查询表中为空的数据--->select * from 表名 where 字段名 is null;

                                        --->select * from student where birthday is null;

若使用比较运算符(=),会返回空的结果集;

  • 范围匹配:

语法:字段名 between 起始值 and 结束值

 上述语法等同于:

逻辑运算符:

and--->与;(Java中的&&)

or--->或;(Java中的||)

not--->非;(Java中的!)

  • in-->匹配小括号中的任意一个就可以返回:

 where条件查询,可以是有多个条件进行逻辑运算,是一整个条件的结果来返回查询结果集

  • 模糊匹配--->like

%--->匹配多个字符;_--->匹配一个字符

(以某个字符开头,以孙开头)

匹配中间的字符:

匹配最后一个字符:

(注意以上查询方法的%的位置 )

孙后跟两个下划线,则查询到孙悟空;跟一个下划线则查询到孙权;

遍历所有数据,对于每条数据来说,所有条件执行的结果为true就会包含在结果集中,如果为false就不包含。

  • 分页查询:limit

一般来说,一个查询结果集的行数时确定的,给定每页的数量进行分页,就可以确定页数。

数据库中的实现,不是按页数来实现的,时按起始的索引+每页的数量

limit s,n --->从整个结果集进行过滤,从下标s开始,找n条(每行数据下标从0开始,找下标s)

结果集顺序不同,分页的结果就可能不同;

分页是按照最终结果集再进行分页,如果有条件过滤,那是以条件过滤后的结果集再进行分页;

三、修改数据

关键字:update

  • update 表名 set 字段1=要修改的值1,字段2=要修改的值2,...  where 条件 order by...

update修改操作是可以修改多条数据的,如果只要修改某一条或者每一部分数据那么要给定条件,如果不加条件那么就会修改整个表的数据。

修改需要谨慎操作!!!(建议先把update替换成select语句,先看是不是想要修改的数据)

四、删除操作

  • delete from 表名 where 条件 order by...

按照条件过滤后的结果全部删除,如果没有条件就是全表删除。所以建议:要删除某些条件,但条件复杂是,一定先使用select验证

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值