mysql数据库基本增删改查基本语句(MySQL表的增删改查基础教程)
mysql数据库基本增删改查基本语句
MySQL表的增删改查基础教程1. 新增(create)
|
insert into [表名] (字段1, 字段2,....) value (value1, value2, ...); insert into [表名] (字段1, 字段2, ....) values (value1, ...), (value2, ...), (value3, ...); |
实例:
创建一个学生成绩表
|
create table exam_result ( id int , name varchar (20), chinese decimal (3,1), math decimal (3,1), english decimal (3,1) ); |
1.1 单行数据 + 全列插入
|
-- 插入两条记录,value_list 数量必须和定义表的列的数量及顺序一致 insert into exam_result value ( 1, 'tom' , 68, 98, 56); insert into exam_result value ( 2, 'jum' , 87.5, 78, 77); |
每次插入数据, 为一条记录, 包含了若干个列~~
列的数目和数据类型要和表的结构对应~
value 前省略指定列默认为全列插入
1.2 多行数据 + 指定列
|
- 插入两条记录,value_list 数量必须和指定列数量及顺序一致 insert into exam_result (id, name , chinese, math, english) values (1, 'tom' , 67, 98, 56), (2, 'jum' , 87.5, 78, 77), (3, 'lim' , 88, 98.5, 90), (4, 'tim' , 82, 84, 67), (5, 'huy' , 55.5, 85, 45), (6, 'sun' , 70, 73, 78.5), (7, 'ming' , 75, 65, 30); |
2. 查询(retrieve)
2.1 全列查询
|
select * from [表名]; |
*表示通配符, 意思就是查找所有的列
2.2 指定列查询
|
select [指定查询列] from [表名]; |
2.3 查询字段为表达式
|
select [字段表达式] from [表名]; |
2.4 别名
|
select colum [ as ] [列名] from [表名]; |
2.5 去重: distinct
使用 distinct 关键字对某列数据去重
|
--98 分重复了 select math from exam_result; + ------+ | math | + ------+ | 98.0 | | 78.0 | | 98.0 | | 84.0 | | 85.0 | | 73.0 | | 65.0 | + ------+ -- 去重结果 select distinct math from exam_result; + ------+ | math | + ------+ | 98.0 | | 78.0 | | 84.0 | | 85.0 | | 73.0 | | 65.0 | + ------+ |
2.6 排序: order by
|
select * from [表名] order by [排序字段]; |
用 order by 指定某一列进行排序, 默认按照升序排序.
显式加上 desc , 就是降序排序. 使用 asc 也是升序
|
select name , math from exam_result order by math desc ; + ------+------+ | name | math | + ------+------+ | tom | 98.0 | | lim | 98.0 | | huy | 85.0 | | tim | 84.0 | | jum | 78.0 | | sun | 73.0 | | ming | 65.0 | + ------+------+ |
null 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面
排序也可以指定多个列执行
|
select * from exam_result order by math desc , chinese desc ; + ------+------+---------+------+---------+ | id | name | chinese | math | english | + ------+------+---------+------+---------+ | 3 | lim | 88.0 | 98.0 | 90.0 | | 1 | tom | 67.0 | 98.0 | 56.0 | | 5 | huy | 55.5 | 85.0 | 45.0 | | 4 | tim | 82.0 | 84.0 | 67.0 | | 2 | jum | 87.5 | 78.0 | 77.0 | | 6 | sun | 70.0 | 73.0 | 78.5 | | 7 | ming | 75.0 | 65.0 | 30.0 | + ------+------+---------+------+---------+ |
多列排序时, 是在第一列区分不出来大小的时候, 再按第二列排序.
2.7 条件查询: where
比较运算符
运算符 | 说明 |
---|---|
>, >=, <, <= | 大于,大于等于,小于,小于等于 |
= | 等于,null 不安全,例如 null = null 的结果是 null |
<=> | 等于,null 安全,例如 null <=> null 的结果是 true(1) |
!=, <> | 不等于 |
between a0 and a1 | 范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 true(1) |
in (option, …) | 如果是 option 中的任意一个,返回 true(1) |
is null | 是 null |
is not null | 不是 null |
like | 模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符 |
逻辑运算符:
运算符 | 说明 |
---|---|
and | 多个条件必须都为 true(1),结果才是 true(1) |
or | 任意一个条件为 true(1), 结果为 true(1) |
not | 条件为 true(1),结果为 false(0) |
注意:
- 列的别名不能再 where 中使用~~
- and的优先级高于or,在同时使用时,需要使用小括号()包裹优先执行的部分
实例:
基本查询:
|
-- 查询英语不及格的同学及英语成绩 ( < 60 ) select name , english from exam_result where english < 60; -- 查询语文成绩好于英语成绩的同学 select name , chinese, english from exam_result where chinese > english; -- 查询总分在 200 分以下的同学 select name , chinese + math + english as total from exam_result where chinese + math + english < 200; |
and 与 or:
|
-- 查询语文成绩大于80分,且英语成绩大于80分的同学 select * from exam_result where chinese > 80 and english > 80; -- 查询语文成绩大于80分,或英语成绩大于80分的同学 select * from exam_result where chinese > 80 or english > 80; |
关于优先级问题, and 比 or 更优先,
范围查询:
1.between … and …
|
-- 查询语文成绩在 [80, 90] 分的同学及语文成绩 select name , chinese from exam_result where chinese between 80 and 90; select name , chinese, from exam_result where chinese >= 80 and chinese <= 90; |
in
|
-- 查询数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩 select name , math from exam_result where math in (58, 59, 98, 99); |
模糊查询: like
|
select name from exam_result where name like 't%' ; + ------+ | name | + ------+ | tom | | tim | + ------+ |
% 是一个通配符, 可以用来代替任意多个字符
t% 找出以 t 开头的字符串
%t 找出以 t 结尾的字符串
%t% 找出包含 t 的
除了 % 之外, 还有 _ ,(_ 只能代表一个字符~)
|
select name from exam_result where name like 't__' ; + ------+ | name | + ------+ | tom | | tim | + ------+ |
通配符也能针对数字进行模糊查询
|
select name , chinese from exam_result where chinese like '%8%' ; + ------+---------+ | name | chinese | + ------+---------+ | jum | 87.5 | | lim | 88.0 | | tim | 82.0 | + ------+---------+ |
注意:
模糊查询看起来比较好用, 实际执行效率低下
null 的查询: is [not] null
|
select name from exam_result where id id not null ; |
2.8 分页查询: limit
|
-- 最初数据表 select * from exam_result; + ------+------+---------+------+---------+ | id | name | chinese | math | english | + ------+------+---------+------+---------+ | 1 | tom | 67.0 | 98.0 | 56.0 | | 2 | jum | 87.5 | 78.0 | 77.0 | | 3 | lim | 88.0 | 98.0 | 90.0 | | 4 | tim | 82.0 | 84.0 | 67.0 | | 5 | huy | 55.5 | 85.0 | 45.0 | | 6 | sun | 70.0 | 73.0 | 78.5 | | 7 | ming | 75.0 | 65.0 | 30.0 | + ------+------+---------+------+---------+ -- 前三条记录 select * from exam_result limit 3; + ------+------+---------+------+---------+ | id | name | chinese | math | english | + ------+------+---------+------+---------+ | 1 | tom | 67.0 | 98.0 | 56.0 | | 2 | jum | 87.5 | 78.0 | 77.0 | | 3 | lim | 88.0 | 98.0 | 90.0 | + ------+------+---------+------+---------+ -- 从第三条开始的三条记录 select * from exam_result limit 3 offset 3; + ------+------+---------+------+---------+ | id | name | chinese | math | english | + ------+------+---------+------+---------+ | 4 | tim | 82.0 | 84.0 | 67.0 | | 5 | huy | 55.5 | 85.0 | 45.0 | | 6 | sun | 70.0 | 73.0 | 78.5 | + ------+------+---------+------+---------+ |
offset 表示从第几条开始查找, offset 可以省略
|
select * from exam_result limit 3 , 4; + ------+------+---------+------+---------+ | id | name | chinese | math | english | + ------+------+---------+------+---------+ | 4 | tim | 82.0 | 84.0 | 67.0 | | 5 | huy | 55.5 | 85.0 | 45.0 | | 6 | sun | 70.0 | 73.0 | 78.5 | | 7 | ming | 75.0 | 65.0 | 30.0 | + ------+------+---------+------+---------+ |
3. 修改(update)
– 将总成绩倒数前三的 3 位同学的数学成绩加上 30 分
|
update exam_result set math = math + 30 order by chinese + math + english limit 3; |
update 不加条件, 就可以针对所有
4. 删除(delete)
|
delete from [表名]; |
|
-- 删除 ming 同学的考试成绩 delete from exam_result where name = 'ming' ; -- 删除整张表 delete from exam_result; |
如果不指定条件, 此时就把整个表删除掉了, (与 drop 删除表还有不同)
delete 删除后表为 null, drop 删除后表就不存在了
5. 常用 新增
|
-- 单行插入 insert into [表名] (字段1, ..., 字段n) values (value1, ...,value n); -- 多行插入 insert into [表名](字段1, ..., 字段n) values (value1, ...), (value2, ...), (value3, ...); |
查询
|
--全表查询 select * from [表名]; --指定列查询 select [列名1, 列名2,...] from [表名]; --查询表达式字段 select [表达式1, 表达式2,...] from [表名]; --别名 select --去重 distinct select distinct [字段] from [表名]; -- 排序order by select * from [表名] order by [排序字段]; -- 条件查询where -- (1)比较运算符 (2)between ... and ... (3)in (4)is null (5)like (6)and (7)or (8) not select * from [表名] where [条件]; |
修改
|
update [表] set [修改内容1, 修改内容2, ....] where [条件]; |
删除
|
delete from [表名] where [条件]; |
总结
到此这篇关于mysql表增删改查的文章就介绍到这了,更多相关mysql表增删改查内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://blog.csdn.net/weixin_47230102/article/details/115416031
- 怎么运行xampp中的mysql(本地安装了mysql导致xampp的mysql服务启动失败)
- mysql允许远程访问docker(Docker部署mysql远程连接 解决2003的问题)
- apache2.4支持php5.5吗(WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置)
- mysql 自定义排序
- MySQL中对varchar类型的排序
- mysql剩余表空间大小(MySQL 表空间碎片的概念及相关问题解决)
- mysql主从同步失败原因(mysql 主从复制如何跳过报错)
- mysql中的默认mysql数据库作用(MySQL安装后默认自带数据库的作用详解)
- mysql索引的机制(Mysql索引选择以及优化详解)
- 图片如何存放在mysql中(将图片保存到mysql数据库并展示在前端页面的实现代码)
- mysqlsource命令作用(MySQL source命令的使用简介)
- mysql按端口查找配置(MySQL中给定父行找到所有子行的解决方案)
- mysql的字符串截取函数(MySQL实现字符串的拼接,截取,替换,查找位置的操作)
- mysql删库操作记录(mysql常用sql与命令之从入门到删库跑路)
- mysql5.7详细安装教程(MySQL5.7.33安装过程图文详解)
- mysql添加数据很慢(mysql如何优化插入记录速度)
- 是不是快乐全被你拿走了(而是你得到的)
- 世界上只有妈妈好(世界上只有妈妈好的歌词)
- 为什么现在社会越来越卷了(现在社会为什么发展那么快呢)
- 直播带货能赚到很多钱吗(直播带货能赚到很多钱吗现在)
- 做网红真的很能赚钱吗(做网红真的很能赚钱吗)
- 10句英语常用(英语常用900句)
热门推荐
- python算法图解(python实现kmp算法的实例代码)
- mysql索引建立及应用(MYSQL创建索引,这些知识应该了解)
- docker阿里云服务器教程(Docker安装阿里云服务器和在虚拟机安装遇到的坑问题小结)
- 怎么查看自己搭建的ftp服务器(你懂怎么建立 FTP 服务器么?)
- sqlserver 开启数据库(SQLSERVER简单创建DBLINK操作远程服务器数据库的方法)
- docker 各种用法(详解Docker commit的使用)
- dockercompose的常用命令的作用(PIP安装docker-compose超时问题解决方案)
- cookie和session流程(浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同)
- mysql索引失效的几种情况(MySql范围查找时索引不生效问题的原因分析)
- css代码大全登录界面(Div+CSS仿微信公众平台登录页面)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9