MySQL表的增删改查操作(CRUD)
- 1. 新增
- 1.1 插入一行+全列插入
- 1.2 插入多行+指定列插入
- 2. 查询
- 2.1 全列查询
- 2.2 指定列查询
- 2.3 查询字段为表达式
- 2.4 起个别名 as
- 2.5 去重 distinct
- 2.6 排序 order by
- 2.7 条件查询 where
- 2.8 分页查询 limit
- 3. 修改 update
- 4. 删除 delete
增删查改(CRUD)即:增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)。
1. 新增
语法:
insert into 表名 values(字段,字段,...);
- 操作表前要先use 数据库;
- insert into 和values是关键字;
- 插入的数据要和定义表的列,类型,数量以及顺序一致;
1.1 插入一行+全列插入
现有student表:
create table student (name varchar(50),id int);
insert into student values ('Wendy',20);
- 即插入一整行数据,每列都要插入元素,否则会报错.;
1.2 插入多行+指定列插入
insert into student (列名,列名..) values (..),(...);
- 需要指定列时,在表名后 指定列,并且插入数据和指定列的顺序要和定义列的数量及顺序,类型等一致;
2. 查询
2.1 全列查询
select * from 表名;
- select from 为关键字,*号相当于通配符,即把表所有内容都查询出来;
2.2 指定列查询
所有查询出来的结果是一个临时表,并不会改变原表的内容
以下介绍的字句都适用于select查询语句中
select 列名 ,列名,..from 表名;
- 列名可以多个,此时指定列不需要按表的顺序来.
2.3 查询字段为表达式
select 表达式 from 表名;
- 表达式即:+,-,加减乘除…;
- 查询出来的结果是一个临时表,并不会改变原来的表的内容;
- 表达式不包含字段,即没有意义的表达式;
表达式包含一个字段:给math加10分;
查询出来的临时表math加了10分,但是原表内容并没有改变
表达式包含多个字段
2.4 起个别名 as
为查询结果中的列指定一个小名,以小名作为该列的名称:
as
也可以省略
select 列名 as ,列名 as ... 别名 from 表名;
2.5 去重 distinct
使用distinct
关键字,对于查询的指定列去重
select distinct 列名 from 表名;
- math 为60分出现了2次,去重后,查询出来的结果只有一个60分;
2.6 排序 order by
select 列名,列名...from 表名 order by 列名,列名... asc/desc;
- ASC 为升序 / DESC 为降序
- 没有
order by
字句的查询,返回的查询结果顺序是未定义的; NULL
数据,视为比任何值都小,升序出现最上面,降序出现最下面;
- 查询同学总分,使用表达式及别名,按升序排序
- 对多个字段进行排序,math按升序
2.7 条件查询 where
比较运算符:
运算符 | 说明 |
---|---|
>,>=,<,<= | 大于,大于等于,小于,小于等于 |
= | 等于,NULL不安全,如:NULL = NULL 结果是NULL |
<=> | 等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1) |
!=,<> | 不等于 |
between a and b | 范围匹配,[a, b],如果 a <= value <= b,返回 TRUE(1) |
in (option,…) | 如果是 option 中的任意一个,返回 TRUE(1) |
IS NULL | 是 NULL |
IS NOT NULL | 不是 NULL |
LIKE |
模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字
|
- NULL很特殊,列名 = NULL 结果也是NULL,一般不用
=
来判断是否为NULL
逻辑运算符:
运算符 | 说明 |
---|---|
AND | 多个条件必须都为 TRUE(1),结果才是 TRUE(1)【类似 &&,并且】 |
OR | 任意一个条件为 TRUE(1), 结果为 TRUE(1) 【类似 ||,或者】 |
NOT | 条件为 TRUE(1),结果为 FALSE(0) |
- where 条件可以使用表达式,不能使用别名
- and 的优先级高于or,同时使用时,需要使用小括号();
and 和or 示例:
-- 查询 math 数学不及格 并且 English 英语也不及格的同学
select name,math,English from student where math < 60 and English < 60;
--查询 数学 比 英语 好的同学
select name,math,English from student where math > English;
--查询 总分在 150 分以下的同学 或者 英语不及格的同学
select name,math , English from student where math+English < 150 or English < 60;
范围查询 between …and…
-- 查询数学成绩在[60,80]分的同学
select name,math from student where math between 60 and 80;
-- 或者使用and运算符
select name,math from student where math >=60 and math <= 80;
in:
-- 查询数学成绩是 60 或者 70 或者 90 的同学
select name,math from student where math in (60,70,90);
--或者使用 or 运算符
select name,math from student where math = 60 or math = 70 or math = 90;
模糊查询:like
-- % 匹配任意个字符(包括0个或多个字符)
select name from student where name like '帅%';
-- _ 匹配一个任意字符(只有一个字符)
select name from student where name like '帅_';
- ‘帅%’,表示,名字首个字符是帅即匹配查询成功,如可以查询到:帅哥,帅气男孩…
- 也可以’%帅’,即名字首字符不做要求,只要是名字最后一个字符是帅,即查询成功,如:你好帅,真帅…
- ‘帅__’,名字首字符为帅即匹配成功,并且只能查询到2个字符的,如果要查询3个字符,就要多加一个_
_
- ‘_帅’,即名字最后一个字符为帅,并且只能查询2个字符的名字
NULL的查询,is [not] null
-- 查询 math成绩 已知的同学
select name,math from student where math is not null;
-- 查询math成绩未知的同学
select name,math from student where math is null;
2.8 分页查询 limit
语法
select 列名... from 表名 limit s,n;//从第s条开始筛选n条结果.
select 列名... from 表名 limit n offset s;//同上
- 查询结果下标默认为0开始
- 在不指定从第几条开始时,limit默认从0开始筛选
- s可以指定从第几条开始筛选,n可以指定筛选几条结果.
-- 第一页
select id,name math,from student order by id limit 0,3;//从0下标开始,筛选3条结果
-- 第二页
select id,name,math from student order by id limit 3, 3;//从3下标开始,帅选3条结果
-- 第三页
select id,name,math from student order by id limit 3 offset 6;//从6下标开始,筛选3条结果
-- 如果结果不足3个,不会有影响
3. 修改 update
语法:
update 表名 set 列名 = XXX ,列名 = XXX,....
- where字句和order by 字句,limit字句可以嵌入到update等句中;
示例:
-- 将 pop 同学的数学成绩 改为 100
update student set math = 100 where name = 'pop';
-- 将 总成绩倒数前三的 同学数学成绩加上30
update student set math = math + 30 order by math+English desc limit 3;
-- 将 所有数学成绩 改为 100
update student set math = 100;
4. 删除 delete
语法
delete from 表名 (where ..../ order by..../ limit....);
- 删除表是非常危险的操作哦~不可逆
-- 删除 pop同学的信息
delete from student where name = 'pop';
-- 删除 student表;
delete from student ;
MySQL表的增删改查操作(CRUD)相关推荐
- R操作MySQL数据库创建表、删除表、增删改查(CRUD)
R操作MySQL数据库创建表.删除表.增删改查(CRUD) 关系数据中的数据是按照一定范式去存储的.当我们需要非常高级和复杂的Sql查询就可以使用关系数据库的数据资产.不光java和python可以容 ...
- MySQL表的增删改查(基础)
MySQL表的增删改查(基础) 文章目录 MySQL表的增删改查(基础) 新增(`Create`) 查询(`Retrieve`) 更新(`Update`) 删除(`Delete`) 总结 注释:在SQ ...
- MySQL表的增删改查
MySQL表的增删改查 CRUD 即增加(Create).查询(Retrieve).更新(Update).删除(Delete)四个单词的首字母缩写. 表的操作,是以一套记录为基本单位: 增.删只能是以 ...
- 数据库概论之MySQL表的增删改查1
MySQL表的增删改查 1.MySQL表的CRUD 2.插入数据 2.1 语法 2.2 注意事项 3.查找语句 3.1 全列查找 3.2 指定列查询 3.3 指定查询字段为表达式 3.4 查询字段指定 ...
- MYSQL表的增删改查进阶(下)
MYSQL表的增删改查进阶 4. 查询 4.1 聚合查询 4.1.1 聚合函数 4.1.2 group by字句 4.1.3 having 4.2 联合查询 4.2.1 内连接 4.2.2 外连接 4 ...
- 2.MySQL表的增删改查(进阶)
这里写目录标题 MySQL表的增删改查(进阶) 1.数据库约束 2.表的设计 3.新增 4.查询 4.1 聚合查询 4.2 联合查询 5.内容重点总结 MySQL表的增删改查(进阶) 1.数据库约束 ...
- 【接口测试】Day5-使用pymysql库对mysql数据库进行增删改查操作
目录 今日目标 一.数据库介绍 二.数据库基本操作 1.安装 2.操作流程(重点) 1. 创建连接 2. 获取游标 3. 执行sql 4. 关闭游标 5. 关闭连接 3.数据准备 4.数据库基本操作 ...
- 数据库多表的增删改查操作
数据库多表的增删改查操作: 增加操作(一对多)--- 一对多形式的表的建立: models.py: from django.db import models # Create your models ...
- 【MySQL系列】 MySQL表的增删改查(进阶)
目录 ??前言 ??一.数据库约束 ???1.1 约束类型 ???1.2 null约束 ???1.3 unique约束 ???1.4 default约束 ???1.5 primary key 约束 ? ...
最新文章
- import和require的区别
- [scala-spark]5. 伴生类和伴生对象
- Linux Shell脚本编程--jq命令
- 参会指南 | 首届音视频线上峰会倒计时1天!
- 解决 VS Code 保存时候自动格式化
- 《scikit-learn》随机森林之深入学习
- Spring学习总结(23)——Spring Framework 5.0 新特性
- python电脑版-python
- HDU ACM 2647 Reward (topology----拓扑排序)
- PS CC 2014破解版
- 《非常网管:网络管理从入门到精通(修订版)》一1.1 计算机网络基础
- java shiro_shiro(java安全框架)
- vios support for power
- 复习javascript入门到精通
- JS实现敏感词过滤功能
- jedis实现订阅发布-publish/subscribe
- 蒙纳丽莎的微笑系列 广告软文:“效益之源”(转载自:中国灯饰商贸网)
- 如何利用 C# + KDTree 实现 K 最邻近算法?
- 软件安装与升级——rpm
- CCM(Color Correction matrix)
热门文章
- 什么是Mixin?如何使用Mixin 定义mixin
- mysql 中文显示蓝马_画了一匹蓝马的画家
- 简单总结文件上传漏洞
- 用veency和realvnc实现在PC机操作iPhone
- 用Python一键修改上万个文件名(大哥,别右键重命名了好吗???)
- 随笔markdown使用的练习,技术搜索,两个日常英语
- Linux基础8 - 网络配置
- 强烈建议互联网人转战实体和农业,去了就是降维打击!实体太缺人才了,老板也不缺钱!...
- 荣登国家级榜单,ShowMeBug创始人李亚飞入选 科创中国青年创业榜
- html文本自动省略,css单行、多行文本溢出时自动显示省略号方法