MySQL表的增删改查(基础)

一、新增(Create)

1、单行数据,全列插入

语法

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

值与列相匹配

2、指定列插入

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

只插入其中的几列,其余被填充为默认值

3、一次插入多行

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

插入datetime 类型,有固定字符串如:

'2000-01-01 12:00:00'

插入当前时间:now()

二、删除(Delete)(危险操作)

delete from 表名 where 条件(order by/limit);

若where后面不指定条件,则是删除整个表

注:drop table 是删除整个表,表里的记录也删除了

delete 是删除表里的记录,表还在(但是空表)

三、修改(Update)(危险操作)

update 表名 set 列名 = 值 where 条件 (order by/limit);

此时的运算符"="代表的是赋值

若update后面不指定条件,则是对所有行进行修改

四、查询(Retrieve)

1、全列查询(危险操作)

select*from 表名 ;(该行为是一个危险操作,若表中的数据过于庞大,很可能导致占用内存过大而使数据库挂掉)

* 表示 "通配符" ,代表所有列

2、指定列查询

select 列名,列名...from 表名;

3、查询字段为表达式(一边查询,一边计算)

select 列名,列名+操作... from 表名;(该查询是列与列中的运算)

不会修改数据库中的数据,只是在临时结果中做了运算(null参与运算的结果还是null)

4、别名查询

select 表达式 as 别名 from 表名;

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

5、去重查询

select distinct 列名 from 表名;

distinct放于select之后

6、查询时排序(把行进行排序,仅针对临时数据)

select 列名 from 表名 order by 列名 asc(升序)/desc(降序) ;

若未标明,则默认为升序

不加order by 的数据顺序是不可靠的

7、条件查询(制定具体条件,根据条件对数据进行筛选)

select 列名 from 表名 where 条件;

比较运算符

逻辑运算符

注:

1、where条件可以使用表达式,但不能使用别名

2、and的优先级高于or,在同时使用时,需要使用小括号()包裹优先执行的部分

3、对null进行判定的时候,<=> 可以对两个列进行修饰,is null只能修饰一个列

8、分页查询(限制查询数量)

select 列名 from 表名 limit N offset M;

limit写在句子最后

select执行的顺序

1、遍历表中的每一个记录

2、将当前的纪录代入条件

3、如条件成立则保留,进行上述的表达式计算

4、有order by ,会在所有行被获取了以后(表达式已算完)再排序

相关推荐
llilian_1640 分钟前
IRIG-B码产生器立足用户痛点,提供精准授时解决方案
大数据·数据库·功能测试·单片机·嵌入式硬件·测试工具
zuoerjinshu6 小时前
sql实战解析-sum()over(partition by xx order by xx)
数据库·sql
NocoBase7 小时前
【2.0 教程】第 1 章:认识 NocoBase ,5 分钟跑起来
数据库·人工智能·开源·github·无代码
Hoshino.419 小时前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
Oueii10 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
未来龙皇小蓝11 小时前
【MySQL-索引调优】11:Group by相关概念
数据库·mysql·性能优化
2401_8318249611 小时前
使用Fabric自动化你的部署流程
jvm·数据库·python
njidf11 小时前
Python日志记录(Logging)最佳实践
jvm·数据库·python
twc82911 小时前
大模型生成 QA Pairs 提升 RAG 应用测试效率的实践
服务器·数据库·人工智能·windows·rag·大模型测试
@我漫长的孤独流浪11 小时前
Python编程核心知识点速览
开发语言·数据库·python