MySQL~表的增删改查(详细易懂)

 目录

1.CRUD

2.新增(Create)

(1). 单行数据 + 全列插入

(2). 多行数据 + 指定列插入

3. 查询(Retrieve)

(1). 全列查询

(2). 指定列查询

(3). 查询字段为表达式

(4). 别名

(5). 去重:DISTINCT

(6). 排序:ORDER BY

(7). (重要)条件查询:WHERE

1).基本查询

2).范围查询

3).模糊查询:LIKE

4).NULL 的查询:IS [NOT] NULL

(8). 日期的使用和查询

(9). 分页查询:LIMIT(MySQL专用)

eg:用分页查询选出语文成绩第二的同学

4. 修改(Update)

5. 删除(Delete)

6. 内容重点总结

(1).如何删除表中Id最大的值

(2).正常总结


1.CRUD

  1. 注释:在SQL中可以使用“--空格+描述”来表示注释说明
  2. CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写。

2.新增(Create)

语法:

举例:

(1). 单行数据 + 全列插入

(2). 多行数据 + 指定列插入

1.数据库里面的字符串是单引号

2.数据库一般要有唯一字段来进行表的标识,在java里面如果为了和数据库对应的话,那也需要有这么一个属性

3.以后写,尽量只使用指定列插入的写法,因为如果你不指定列插入,以后你的表要是增加了一个字段,那之前的语句就会报错了

4.注释语法:--空格


3. 查询(Retrieve)

语法:

(1). 全列查询

(2). 指定列查询

(3). 查询字段为表达式

查询的字段为表达式时,他会查询以后,自己进行计算再输出

(4). 别名

为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称。

语法: 

  • Tips:别名“总分”前面可以加上as
  • 注:这里可以看到,我们这里显示的数据是数据库返回给我们的结果集。相当于我们这里的黑框框是客户端,数据库是服务端

(5). 去重:DISTINCT

使用DISTINCT关键字对某列数据进行去重:

distinct放在需要指定的字段前面,且只能加上一个字段

(6). 排序:ORDER BY

Java排序:(1)算法排序 (2)java比较接口进行排序

语法:

1. 没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序

2. NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面

3. 使用表达式及别名排序

4. 可以对多个字段进行排序,排序优先级随书写顺序

5.order by 一般和limit一起使用,用来选取前三的元素。

(7). (重要)条件查询:WHERE

比较运算符:

这里面的比较运算符和java里面的比较运算符不太一样

  1. = 是比较运算符了,表示判断相等,不再是java里面的==了
  2. 等于只要知道 = 就可以,不等于只要知道 != 就行

逻辑运算符:

1).基本查询

  • 注意WHERE条件可以使用表达式,但不能使用别名。

2).范围查询

 --BETWEEN ... AND ...

--IN

3).模糊查询:LIKE

  1. % 匹配的是0个或多个字符,比如只有一个‘孙’,那只有‘孙%’能匹配出来
  2. _ 匹配的是一个字符

4).NULL 的查询:IS [NOT] NULL

(8). 日期的使用和查询

1.创建含有日期的表

  1. 这里要给日期设置一个默认值,不过我自己那里不用设置默认值好像也可以。
  2. 设置默认值就设置为null就可以了

2.mysql默认的日期格式:yyyy-MM-dd HH:mm:ss

插入含日期的数据

3.查询日期字段

和其他字段一样,查询的时候也可以between-and。

4.

(9). 分页查询:LIMIT(MySQL专用)

语法:

  1. s表示的是偏移量(就是先偏移几个),n表示的是筛选结果的条数
  2. 第二个LIMIT s,n表示筛选n条结果,从第s条数据开始
  3. 第三个LIMIT n OFFSET s表示筛选n条结果,从第s条数据开始
  4. 这里也不是要建议第三种,第二种也可以,看你哪个用的比较顺,一个是先s后n,另一个是先n后s,本人建议第三种,因为没有s的时候就是LIMIT n
  5. Order by一般和limit一起使用

eg:用分页查询选出语文成绩第二的同学

select * from exam_result order by chinese desc limit 1 offset 1


4. 修改(Update)

语法:

  1. 在set的时候,如果值的长度超过了建表时给定的长度,会报错。
  2. 比如最后的set chinese = chinese * 2;就可能会报错
  3. 如果不加上where,order by等筛选条件,那就是整列元素的值全部修改

5. 删除(Delete)

语法:

注意delete from table_name,后面什么都不加,那就是整张表删除了,一定要注意。要加上where,order by,limit等


6. 内容重点总结

(1).如何删除表中Id最大的值

mysql中You can't specify target table for update in FROM clause错误的意思是说,不能先select出同一表中的某些值,再update这个表(在同一语句中)。

错误:

 正确:

(2).正常总结

新增:

查询:

修改:

删除:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值