mysql简单的增删改查

这篇博客详细介绍了MySQL的基本操作,包括增(insert):直接插入数据、使用set子句插入;删(delete):单表删除、多表删除;改(update):单表修改、多表修改;查(select):普通查询,如部分列查询、定义列别名、消除重复行、使用where子句、模式匹配like、比较范围between以及空值比较。
摘要由CSDN通过智能技术生成

增(insert)

  1. 直接插入单行数据:

    格式:insert into "表名" values (值1、值2、值3。。。) 
    

    这中方法是当需要给全部列都插入数据时使用

  2. 对应列名插入单行数据:

    格式:
    insert into book(列名1、列名2、列名3。。。)
    values(值1、值2、值3。。。)
    

    这种发放用于只给对应列添加数据,没有给出的字段系统将用默认值代替

  3. set子句插入单行数据:

    格式:insert into book set 列名1='值1'   列名2='值2'   列名3='值3'。。。
    

    效果和上面的方法一样

删(delete)

  1. 单表内容删除:
    格式:delete from '表名'  where 姓名='张三'
    
    where后面跟着的是限定条件,符合条件的便会被删除
  2. 多表内容删除:
    格式:delete from '表名1,表名2,表名3。。。'  where 姓名='张三'
    
    可以一次性删除多个表中的对应数据

改(update)

  1. 单表数据修改:
    格式:updata 表名 set 列名1=表达式1, 列名2=表达式2, 列名3=表达式3。。。
    
  2. 多表数据修改:
    格式:updata 表1,表2。。。 set 列名1=表达式1, 列名2=表达式2, 列名3=表达式3。。。
    

查(select)

先建立一个表。名为:personnel
内容:在这里插入图片描述


普通查询

  1. 部分列查询:

    格式:select 列1,列2.。。。 from 表
    

    例:select 姓名,年龄 from personnel
    在这里插入图片描述

  2. 全表查询:

    格式:select * from 表
    

    例:select * from personnel
    在这里插入图片描述

定义列别名

利用as可以将查询的列名给定义一个别的名字。替换成别名后,查询的表中,标题显示的便是别名。 格式:列名 [AS] 别名

格式:select 列名1 as 别名1 , 列名2 as 别名2 , 。。。from  表名

例:select 姓名 as name , 年龄 as age from personnel
在这里插入图片描述

当自定义的别名中含有空格时,必须使用引号将其括起来

格式:select 姓名 as 'personal name' , 年龄 as 'your age' from 表名

例子:select 姓名 as 'personal name' , 年龄 as 'personal age' from personnel
在这里插入图片描述

注意:别名不能在where子句中使用,因为,执行where代码时,可能尚未确定列值。
如:select 姓名 as name , 年龄 as age from personal where name='张三'此句语法是错误的,别名出现在了where子句中。

替换查询结果中的数据

作用:在查询时,如果我们需要得到的不是具体的数据,而是一个概念。
比如说,如上表中,我需要将查询出来的内容中,不同年龄显示为青年、中年、老年而不是具体的年龄数字

格式:
		case
			when 条件1 then 表达式1
			when 条件2 then 表达式2
			。。。
			else 表达式n
		end [as 别名]

例:

select 姓名 as 'name' ,
	case 
		when 年龄 <= 20 then '青年'
		when 年龄 >20 and 年龄<=50 then '中年'
		else '老年'
	end as age
from personnel

在这里插入图片描述

计算列值

在使用select语句查询时,在结果中可以输出对列值计算后的值。
例:select 姓名 as name , 年龄*2 as age from personnel
此处 年龄*2 也可以换成函数操作
在这里插入图片描述

消除结果集中的重复行

使用 distinct 关键字即可
select distinct 姓名,年龄 from personnel

where子句

作用:用于限定查询结果
AND:select distinct 姓名,年龄 from personnel where 年龄>20 and 年龄<40
在这里插入图片描述
OR:select distinct 姓名,年龄 from personnel where 年龄>40 or 姓名='张三'
在这里插入图片描述
注意:and优先级大于or
where中还有一个特殊的运算符:<=>
此运算符专门用来比较空值的

模式匹配like

给上述表中添加几行数据
在这里插入图片描述

格式:select * from 表名 where 列名 [not] like '_%'
not是可选的,当使用not时,结果值取反
	
_代表单个字符,%代表多个字符。一般情况下使用这两个特殊符号进行模糊查询

例1 下划线:select 姓名,年龄 from personnel where 姓名 like '张_'
在这里插入图片描述
例2 百分号:select 姓名,年龄 from personnel where 姓名 like '张%'
在这里插入图片描述
例3 字符中间值:select 姓名,年龄 from personnel where 姓名 like '%老%'
在这里插入图片描述

比较范围between
格式:select * from 表名 where [not]between 值1 and 值2
not是可选的,当使用not时,结果值取反

例:select 姓名,年龄 from personnel where 年龄 between 20 and 40
在这里插入图片描述
上例等同于:select 姓名,年龄 from personnel where 年龄>=20 and 年龄<=40

加not关键字
例:select 姓名,年龄 from personnel where 年龄 not between 20 and 40
在这里插入图片描述

空值比较
格式:select * from personnel where 列名 is [not] null
表达式为null时,返回true,反之为false
not是可选的,当使用not时,结果值取反

例:select * from personnel where 年龄 is null
因为每一行的年龄都不为null,所以没有记录
在这里插入图片描述
加not:select * from personnel where 年龄 is not null
在这里插入图片描述

多表查询等高级查询请看另一篇博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值