【MySQL】MySQL表的CRUD操作(基础)

表数据操作

添加数据(Create)

###全列添加
要给这张表的所有字段都添加内容
如果添加时不指定列,那么插入的值的顺序一定要和建表时的顺序保持一致。

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

在这里插入图片描述

多行全列插入

在这里插入图片描述

指定列添加

必须指定列,插入值的顺序必须和指定列的顺序保持一致!

insert into 表名(字段名,字段名)values(字段名对应内容,字段名对应内容)

在这里插入图片描述

查询数据(Retrieve)

全列查询

因为开发环境的数据一般不大,所以开发环境使用较多,生产环境谨慎使用

select * from 表名;

在这里插入图片描述
缺点:如果数据量大,就会消耗大量的带宽信息,并且传输速度很慢。并且查询范围太大。
可能影响索引的使用。

指定列查询

列名可随意修改,不影响查询结果。

select 列名[,列名] from 表名;

在这里插入图片描述

表达式查询

表达式查询操作不会修改表的原始数据。

select 列名,列操作 from 表名;

在这里插入图片描述

使用别名查询

使用别名查询操作不会修改表的原始数据。

select 列名 as 别名 from 表名;

在这里插入图片描述

去重(Distinct)

select distinct 列名 from 表名;

去重一列:
在这里插入图片描述
去重多列:
distinct去重多列时,可以使用多个字段联合去重,规则是所有的联合字段全部相同时才可以。在这里插入图片描述

排序(Order by)

升序(asc)

升序进行排序时,asc可省略,默认排序方式为升序排列

select * from 表名 order by 列名 asc;

在这里插入图片描述

降序(desc)
select * from 表名 order by 列名 desc;

在这里插入图片描述

多列排序
select1,列2 from 表名 order by2,列3 desc /asc

只有列2相同时,才会使用列3排序

条件查询

比较运算符:
逻辑运算符:
在这里插入图片描述
模糊查询:like
where 字段名 like ‘刘%’; 可以匹配任意长度字符。
where 字段名 like ‘刘_’;只能匹配一个字符长度。
%和_可以用在任意位置

-- % 匹配任意多个(包括 0 个)字符 
SELECT name FROM exam_result WHERE name LIKE '孙%';
-- 匹配到孙悟空、孙权 

-- _ 匹配严格的⼀个任意字符
 SELECT name FROM exam_result WHERE name LIKE '孙_';
 -- 匹配到孙权

where查询

select * from table_name where 、查询条件

where条件查询不能使用别名,可以在order by中使用
select * from 表名 where 条件查询

常见面试题: 为什么别名不能使用在where中,但可以使用在order by 中?
因为别名操作是在select阶段产生的,因此在select之前的阶段不能识别到别名。select之后的阶段可以。
MySQL的执行顺序:
from 阶段
where 阶段
group by 阶段 (分组查询)
having 阶段 (分组查询条件)
select 阶段
order by 阶段
limit 阶段 (分页查询)

逻辑运算符and的执行优先级是高于or的,因此如果在一个查询中既有and查询又有or查询,就需要给or查询添加括号,提升其优先级。

分页查询(limit)

查询某一个页面上的部分信息(截取部分行信息)

select 字段名 from 表名 [where  ......][order by ......]limit n;

限制查询n条;在这里插入图片描述
限制行数为50,如果超出范围,也不会报错。
在这里插入图片描述

select 字段名 from 表名 [where  ......][order by ......]limit s,n;

查询n条信息,跳过前s条。![在这里插入图片描述](https://img-blog.csdnimg.cn/d7a2bd16eaba4920817a22c1eebba1e9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP5ZiteW91,size_20,color_FFFFFF,t_70,g_se

```sql
select 字段名 from 表名 [where  ......][order by ......]limit n offset s;

查询n条信息,跳过前s条。
在这里插入图片描述

修改数据(Update)

update 表名 set 列名= ......  (列名= ......)

全部数据修改(单列)

在这里插入图片描述

部分数据修改(单列)

在这里插入图片描述

表达式修改

在这里插入图片描述

删除数据(Delete)

delete 删除(DML数据操纵语言)

delete from 表名 [where...... ][order by......][limit......];

在这里插入图片描述

drop 删除(DDL数据定义语言)

删除整张表,所有的行数据+表结构(不能添加where,order by,limit条件)

drop table 表名;

truncate删除(DDL数据定义语言)

truncate 表,(表名)

truncate不能加查询条件,用truncate 不会删除表结构,只会删除表中的所有数据。

drop ,delete,truncate的区别:
1.删除影响范围
drop(删除表结构+数据)>truncate (删除所有数据)>=delete (删除所有或部分数据)
2.查询条件:
delete可以添加where等查询条件,其他的删除指令是不可以的下。
3.命令类型:
drop属于DDL 删除后的数据不可以被恢复。
delete属于DML
执行原理:在InnoDB数据库引擎下,delete并不是真正的把数据删除掉了,给数据打上了一个删除标签,表示当前的数据已经被删除了。删除后的数据可以被恢复。
truncate属于DDL
执行原理:重新创建一个表,然后将原来的表结构删除。删除后的数据不可以被恢复。
4.数据恢复不同:delete的数据是可以被恢复的,但是truncate,drop删除的数据是不会被恢复的。
5.执行效率:drop > truncate>delete
6.truncate会重置自增列,而delete不会。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值