• 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 表名;
  • 表达式即:+,-,加减乘除…;
  • 查询出来的结果是一个临时表,并不会改变原来的表的内容;
  1. 表达式不包含字段,即没有意义的表达式;

  1. 表达式包含一个字段:给math加10分;

    查询出来的临时表math加了10分,但是原表内容并没有改变

  2. 表达式包含多个字段

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数据,视为比任何值都小,升序出现最上面,降序出现最下面;
  1. 查询同学总分,使用表达式及别名,按升序排序

  1. 对多个字段进行排序,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)相关推荐

  1. R操作MySQL数据库创建表、删除表、增删改查(CRUD)

    R操作MySQL数据库创建表.删除表.增删改查(CRUD) 关系数据中的数据是按照一定范式去存储的.当我们需要非常高级和复杂的Sql查询就可以使用关系数据库的数据资产.不光java和python可以容 ...

  2. MySQL表的增删改查(基础)

    MySQL表的增删改查(基础) 文章目录 MySQL表的增删改查(基础) 新增(`Create`) 查询(`Retrieve`) 更新(`Update`) 删除(`Delete`) 总结 注释:在SQ ...

  3. MySQL表的增删改查

    MySQL表的增删改查 CRUD 即增加(Create).查询(Retrieve).更新(Update).删除(Delete)四个单词的首字母缩写. 表的操作,是以一套记录为基本单位: 增.删只能是以 ...

  4. 数据库概论之MySQL表的增删改查1

    MySQL表的增删改查 1.MySQL表的CRUD 2.插入数据 2.1 语法 2.2 注意事项 3.查找语句 3.1 全列查找 3.2 指定列查询 3.3 指定查询字段为表达式 3.4 查询字段指定 ...

  5. 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 ...

  6. 2.MySQL表的增删改查(进阶)

    这里写目录标题 MySQL表的增删改查(进阶) 1.数据库约束 2.表的设计 3.新增 4.查询 4.1 聚合查询 4.2 联合查询 5.内容重点总结 MySQL表的增删改查(进阶) 1.数据库约束 ...

  7. 【接口测试】Day5-使用pymysql库对mysql数据库进行增删改查操作

    目录 今日目标 一.数据库介绍 二.数据库基本操作 1.安装 2.操作流程(重点) 1. 创建连接 2. 获取游标 3. 执行sql 4. 关闭游标 5. 关闭连接 3.数据准备 4.数据库基本操作 ...

  8. 数据库多表的增删改查操作

    数据库多表的增删改查操作: 增加操作(一对多)--- 一对多形式的表的建立: models.py: from django.db import models # Create your models ...

  9. 【MySQL系列】 MySQL表的增删改查(进阶)

    目录 ??前言 ??一.数据库约束 ???1.1 约束类型 ???1.2 null约束 ???1.3 unique约束 ???1.4 default约束 ???1.5 primary key 约束 ? ...

最新文章

  1. import和require的区别
  2. [scala-spark]5. 伴生类和伴生对象
  3. Linux Shell脚本编程--jq命令
  4. 参会指南 | 首届音视频线上峰会倒计时1天!
  5. 解决 VS Code 保存时候自动格式化
  6. 《scikit-learn》随机森林之深入学习
  7. Spring学习总结(23)——Spring Framework 5.0 新特性
  8. python电脑版-python
  9. HDU ACM 2647 Reward (topology----拓扑排序)
  10. PS CC 2014破解版
  11. 《非常网管:网络管理从入门到精通(修订版)》一1.1 计算机网络基础
  12. java shiro_shiro(java安全框架)
  13. vios support for power
  14. 复习javascript入门到精通
  15. JS实现敏感词过滤功能
  16. jedis实现订阅发布-publish/subscribe
  17. 蒙纳丽莎的微笑系列 广告软文:“效益之源”(转载自:中国灯饰商贸网)
  18. 如何利用 C# + KDTree 实现 K 最邻近算法?
  19. 软件安装与升级——rpm
  20. CCM(Color Correction matrix)

热门文章

  1. 什么是Mixin?如何使用Mixin 定义mixin
  2. mysql 中文显示蓝马_画了一匹蓝马的画家
  3. 简单总结文件上传漏洞
  4. 用veency和realvnc实现在PC机操作iPhone
  5. 用Python一键修改上万个文件名(大哥,别右键重命名了好吗???)
  6. 随笔markdown使用的练习,技术搜索,两个日常英语
  7. Linux基础8 - 网络配置
  8. 强烈建议互联网人转战实体和农业,去了就是降维打击!实体太缺人才了,老板也不缺钱!...
  9. 荣登国家级榜单,ShowMeBug创始人李亚飞入选 科创中国青年创业榜
  10. html文本自动省略,css单行、多行文本溢出时自动显示省略号方法