MYSQL----表的增删改查

总括:

1.新增(Create)

复制代码
insert into 表名[(字段1,字段2....)] values (值,值,......);

1.值需要对应前面字段的顺序

2.字符串类型的值用英文的单引号''包裹

3.可以不写字段,但是要在values列表中按表中定义的字段的顺序设置相应的值

4.对于表中设置排序的字段,在省略字段的情况下,需要写出来,对于指定了字段的时候不需要写

5.一条insert into语句在values部分可以跟很多个values组

手动设置新数据库的编码集

2.查询(reteieve)

2.1全列查询

复制代码
select*from 表名;

2.2指定列查询

复制代码
select 列名,列名,[列名]...from 表名;

2.3给指定列的值加10分

2.4列与列之间进行计算:

计算学生的总分:

2.6给表达式取别名

1.在列的后面空格加上别名

2.若别名中有空格,需要加上单引号

3.给结果集中的字段起别名语法:select 列名as别名, 列名as别名, 列名as别名......from 表名;,as可有可无

4.我们的表里本来没有总分这一列,所以通过表达式查询出来的结果集是通过一个临时表返回给我们的,执行完之后临时表就删除了

3.去重:distinct

复制代码
select distinct 列名 from 表名;

查询成绩发现英语成绩有3个70分

使用distinct后,只保留了一条英语成绩为70

只有跟在distinct后面的字段全部相同时,才能去重,有一个字段不同都不能去重,distinct要跟在select后面,不能跟在字段后面

4.排序 order by

排序规则:

1.升序:ASC(默认是升序)

2.降序:desc

复制代码
select 列名 from 表名 order by 列名[ASC|DESC];

按数学升序排序:

升序排序时,order by后的asc可以省略


按数学降序排序:

无论是升序还是降序排序,null的值永远是最小的

排序时可以使用别名:

可以对多个字段进行排序,排序的优先级与书写顺序有关

先按数学降序,语文升序,英语升序排列

5.条件查询(where)

比较运算符:

|-------------------|---------------------------------------------------|
| 运算符 | 说明 |
| >,>=,<,<= | 大于,大于等于,小于,小于等于 |
| = | 等于,null不安全,例如null=null的结果是null,mysql中的=既是判断也是赋值 |
| <=> | 等于,null安全,例如null<=>null的结果是true(1),专门针对null来做判断 |
| !=,<> | 不等于 |
| between a0 and a1 | 范围匹配,a0,a1,如果a0<=value<=a1,返回true(1) |
| in(option,.....) | 如果是option中的任意一个,返回true(1) |
| is null | 针对null的判断,如果是null返回true,否则返回false |
| is not null | 针对null的判断,如果不是null返回true,是null返回false |
| like | 模糊匹配。%表示任意多哥(包括0个)任意字符;_表示一个字符 |

逻辑运算符:

|-----|----------------------------------|
| 运算符 | 说明 |
| and | 多个条件必须都为true才为true,相当于java中的&& |
| or | 任意一个条件为true,结果为true,类似java中的|| |
| not | 条件为true,结果为false,类似java中的! |

使用where条件的语法:

复制代码
select *from 表名 where 列名/表达式 运算符 条件;

where后的语句不能使用别名:

1.如果要在数据中查询某些数据,首先要确定表,先执行from

2.在查询的过程中要根据指定的条件把符合条件的数据过滤出来,这是执行的就是where,在执行where条件是,别名还没被定义

3.执行select后面指定的列,这些列是需要加入到最终的结果集中

4.排序操作,根据order by子句中指定的列名和排序规则进行最后的排序

例1:数学成绩大于80,降序排序

例2:数学成绩在40到70之间,降序排序

例3:姓曹的成绩

6.分页查询(limit)

分页查询可以控制一次查询的记录条数

复制代码
select ........from 表名[where....][order by.....]limit n;

n表示一次要查询的条数

复制代码
select ........from 表名[where....][order by.....]limit s,n;

s表示从第几条数据开始,n表示读几条数据

复制代码
select ........from 表名[where....][order by.....]limit n offset s;

s表示从第几条数据开始,n表示读几条数据

7.修改(update)

复制代码
uodate 表名 set column=expr [,column=expr....][where.....][order by.....][limit....];

哪个列=什么值

例1:将王五的数学成绩修改为100

math=math-30,mysql支持这样的写法

math-=30,mysql不支持

8.删除(delete)

复制代码
delete from 表名 [where....][order by....][limit....];

例1:删除曹孟德的数据

如果不加where条件,所有的数据都会被删除

相关推荐
字节渡客23 分钟前
Redis键明明过期了,业务还在读到旧数据
数据库·redis·spring
OnlineProxy2 小时前
亚马逊多账号运营:如何在规避“关联封号”风险的同时实现电商规模化扩张
服务器·数据库·redis
辻弋2014 小时前
五年前的旅行视频糊成马赛克?Video2X用Real-ESRGAN逐帧重建细节,但只支持Windows、集显用户建议直接放弃
服务器·数据库·windows·游戏引擎·电脑
可乐鸡翅yeah_5 小时前
业务中 M3U8 水印相关坑,硬水印和动态水印区别
前端·网络·数据库·ffmpeg·m3u8在线
石头麻辣鱼5 小时前
Bamboo 调度系统 OceanBase 适配实战:存储过程迁移踩过的三个大坑
数据库
龙亘川5 小时前
数智驱动民政升级 精准守护民生保障
大数据·数据库·人工智能
念何架构之路6 小时前
zap扩展生态与总结
java·前端·数据库
晚安日记wanna6 小时前
MySQL 回表为什么这么慢?5 种优化手段逐个拆解
数据库·mysql·性能优化
第七页独白6 小时前
汽车零件厂如何通过 QMS 真正落地 IATF 16949——QMS软件系统:品质检验-内审稽核-8d客诉管理:全星质量管理软件系统
java·前端·数据库
晚安日记wanna6 小时前
索引建了却不走?7 个失效原因逐层排查
数据库·mysql·性能优化