[MySQL]关于表的增删改查

这篇具有很好参考价值的文章主要介绍了[MySQL]关于表的增删改查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.插入

1.1单行数据+全列插入

 1.2多行插入,指定列插入

​编辑2.查询

2.1全列查询

2.2指定列查询

3.3查询字段为表达式

 2.4别名

​编辑2.5去重

2.6排序

 2.7条件查询

2.7.1基本查询:

2.7.2 AND 和OR

2.7.3范围查询

 2.7.4模糊查询

 2.7.5分页查询 limit

3.修改

4.删除


1.插入

1.1单行数据+全列插入

我们首先创建一张学生表来做为我们的例子:
[MySQL]关于表的增删改查,mysql,数据库

表里包含的元素有id,学号,姓名,邮箱;

然后我们进行全列插入

格式为 insert into student values(数据1,数据2,数据3)

[MySQL]关于表的增删改查,mysql,数据库

 1.2多行插入,指定列插入

数据格式:

Insert into stuent(列名,列名,列名)values(数据,数据,数据,),(数据,数据,数据);

2.查询

先创建一个考试成绩表

 create table exam_result(id int,name varchar(20),chinese decimal(3,1),
    -> math decimal(3,1),english decimal(3,1));

[MySQL]关于表的增删改查,mysql,数据库

 加入一些数据

INSERT INTO exam_result (id,name, chinese, math, english) VALUES
(1,'唐三藏', 67, 98, 56),
(2,'孙悟空', 87.5, 78, 77),
(3,'猪悟能', 88, 98.5, 90),
(4,'曹孟德', 82, 84, 67),
(5,'刘玄德', 55.5, 85, 45),
(6,'孙权', 70, 73, 78.5),
(7,'宋公明', 75, 65, 30);
 

[MySQL]关于表的增删改查,mysql,数据库

2.1全列查询

 通常情况下不建议使用select *查询,会造成大量的性能资源使用。

1.查询的列越多,意外着需进行传输的数据越大。

2.可能会影响索引的使用

select *from exam_resule;

[MySQL]关于表的增删改查,mysql,数据库

2.2指定列查询

指定列的顺序不需要按照定义的时候的顺序

语法格是:

select id,name,chinese from exam_result;

[MySQL]关于表的增删改查,mysql,数据库

3.3查询字段为表达式

表达式不包含字段

select id,name,10 from exam_result;

[MySQL]关于表的增删改查,mysql,数据库

表达式包含一个字段

select id  ,name,chinese+10 from exam_result;

[MySQL]关于表的增删改查,mysql,数据库

表达式包含多个字段:

select id,name,english+chinese+math  from exam_result;

[MySQL]关于表的增删改查,mysql,数据库

 2.4别名

select id,name ,math+chinese +english as 总分 from exam_result;

2.5去重

我们先查询一下math成绩

select math from exam_result;

[MySQL]关于表的增删改查,mysql,数据库

可以看到98分重复了 我们使用 distnit关键字试试

select distinct math from exam_result;

[MySQL]关于表的增删改查,mysql,数据库

2.6排序

order by 关键字

desc为降序 默认为升序

[MySQL]关于表的增删改查,mysql,数据库

降序 desc关键字写到最后面

[MySQL]关于表的增删改查,mysql,数据库

可以对多个字段排序,排序的优先级随书写顺序

[MySQL]关于表的增删改查,mysql,数据库

 2.7条件查询

运算符 说明
>, >=, <, <= 大于,大于等于,小于,小于等于
= 等于,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)

注:
1. WHERE条件可以使用表达式,但不能使用别名。
2. AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分
例子:

2.7.1基本查询:

查询英语成绩不及格的同学

select name,english from exam_result where english < 60;

[MySQL]关于表的增删改查,mysql,数据库

查询语文成绩好于英语成绩的同学:

select name,chinese,english from exam_result where chinese>english; 

[MySQL]关于表的增删改查,mysql,数据库查询总分在200以下的学生:

select  name, math+chinese+english as 总分 from exam_result where math+chinese+english < 200;

[MySQL]关于表的增删改查,mysql,数据库

2.7.2 AND 和OR

查询语文成绩大于80,并且英语成绩大于80分的同学

select name,english,chinese from exam_result where chinese>80 and english >80;

[MySQL]关于表的增删改查,mysql,数据库

猪悟能同学好厉害hhhh

查询语文成绩大于80 或者英语成绩大于80的同学

select name , chinese ,english from exam_resut where chinese>80 or english >80;

[MySQL]关于表的增删改查,mysql,数据库观察一下and和or的优先级(一般情况下如果想要哪个优先级高就用小括号给它加起来);

首先我们先查找全部的同学成绩 select *from exam_result;

[MySQL]关于表的增删改查,mysql,数据库

select *from exam_result where chinese>80 or math>70 and english>70;

[MySQL]关于表的增删改查,mysql,数据库

 我们给前面的or 打上括号看看

select * from exam_result where (chinese>80 or math>70) and english >70;

[MySQL]关于表的增删改查,mysql,数据库可以看到 and 的优先级大于or

2.7.3范围查询

between ...and...

查询语文成绩在80~90之间的同学

select name,chinese from exam_result where chinese between 80 and 90;

[MySQL]关于表的增删改查,mysql,数据库

使用 and也可以实现

select name,chinese from exam_result where chinese>=80 and chinese<=90;

[MySQL]关于表的增删改查,mysql,数据库

 2.7.4模糊查询

%匹配多个字符

select name from exam_result where name like '孙%';

[MySQL]关于表的增删改查,mysql,数据库

_ 匹配一个字符

select name from exam_result where name like '孙_';

[MySQL]关于表的增删改查,mysql,数据库

 2.7.5分页查询 limit

起始下标为0 

从 0 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
-- 从 s 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;
-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s
 

案例 :按 id 进行分页,每页 3 条记录,分别显示 第 1、2、3 页

select id ,name from exam_result order by id limit 3 offset 0;

[MySQL]关于表的增删改查,mysql,数据库

select id ,name from exam_result order by id limit 3 offset 3;

[MySQL]关于表的增删改查,mysql,数据库

select id ,name from exam_result order by id limit 3 offset 6;

[MySQL]关于表的增删改查,mysql,数据库

3.修改

update from table_name set colume=expr,[colume = expr] [where...] [order by ...] [limit...]

 把孙悟空同学的数学成绩改为80分

update exam_result set math = 80 where name='孙悟空';

[MySQL]关于表的增删改查,mysql,数据库

将曹孟德的数学成绩改为60,语文成绩改为70

update exam_result set math =60 ,chinese =70 where name ='曹孟德';

[MySQL]关于表的增删改查,mysql,数据库

将总成绩倒数后三名的数学成绩加上10分

update exam_result set math = math+10 order by math+chinese+english limit 3;

[MySQL]关于表的增删改查,mysql,数据库


将所有同学的语文成绩变成原来的两倍

首先是这样的

[MySQL]关于表的增删改查,mysql,数据库

update exam_result set chinese = chinese *2 ;

[MySQL]关于表的增删改查,mysql,数据库

4.删除

delete from 表名 where... orderby...limit...

案例

删除孙悟空同学的考试成绩

detele from exam_result where name = '孙悟空';

[MySQL]关于表的增删改查,mysql,数据库

删除整张表

drop table if exists for_delete;首先判断库里面有没有这张表,有的话就删了

create table for_delete(id int ,name varchar(20)); 创建表

insert into for_delete (name) values('A'),('B'),('C');加入数据

select *from for_delete; 查看表

delete from for_delete; 删除一整张表

selete *from for_delete ;再次查看表,会发现为空了 

[MySQL]关于表的增删改查,mysql,数据库文章来源地址https://www.toymoban.com/news/detail-819215.html

到了这里,关于[MySQL]关于表的增删改查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查

    大家好,我是yma16,本文分享关于 node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查。 技术选型 前端:vite+vue3+antd 后端:node koa 数据库:mysql koa是一个现代的Node.js框架,可以用来构建Web应用程序。 Vue.js 是一款用于构建用户界面的开源JavaScript框架。Vue.js 3 是 Vu

    2024年02月20日
    浏览(28)
  • [MySQL]关于表的增删改查

    目录 1.插入 1.1单行数据+全列插入  1.2多行插入,指定列插入 ​编辑2.查询 2.1全列查询 2.2指定列查询 3.3查询字段为表达式  2.4别名 ​编辑2.5去重 2.6排序  2.7条件查询 2.7.1基本查询: 2.7.2 AND 和OR 2.7.3范围查询  2.7.4模糊查询  2.7.5分页查询 limit 3.修改 4.删除 我们首先创建一张

    2024年01月23日
    浏览(24)
  • 【MySql】数据库的增删改查

    本篇的主要目的:对于数据库如何去增加删除查询修改 主要细节在于选项问题,编码选项 说明: 大写的表示 [] 是可选项 CHARACTER SET: 指定数据库采用的字符集 COLLATE: 指定数据库字符集的校验规则 查看当前用户数据库的列表show databases; 创建数据库create database db_name; 当

    2024年02月12日
    浏览(39)
  • 【MYSQL数据库的增删改查操作-超市管理系统】

    MYSQL数据库的增删改查 创建数据库 选择数据库 删除数据库 创建数据表 删除数据表 插入数据 更新数据 查找数据 以超市管理系统为例,包含员工表,库存表,仓库表 数据库:db_supermarket 数据表:s_employee #员工表;s_stock #库存表;s_storehouse #仓库表 插入数据之后生成表如下:

    2024年02月09日
    浏览(36)
  • 【MySQL】数据库的增删改查、备份、还原等基本操作

    大写的表示 [] 是可选项 CHARACTER SET: 指定数据库采用的字符集 COLLATE: 指定数据库字符集的校验规则 创建数据库的时候,有两个编码集: 1.数据库编码集——数据库未来存储数据 2.数据库校验集——支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采

    2024年02月08日
    浏览(55)
  • MySql学习2:SQL分类、数据库操作、表操作、数据的增删改查

    SQL分类: DDL:数据定义语言,用来定义数据库对象(数据库、表、字段) DML:数据操作语言,用来对数据库表中的数据进行增删改 DQL:数据库查询语言,用来查询数据库表中的记录 DCL:数据控制语言,用来创建数据库用户、控制数据库的访问权限 查询所有数据库 查询当前

    2024年02月11日
    浏览(42)
  • Django学习记录:使用ORM操作MySQL数据库并完成数据的增删改查

    数据库操作 MySQL数据库+pymysql Django开发操作数据库更简单,内部提供了ORM框架。 安装第三方模块 ORM可以做的事: 1、创建、修改、删除数据库中的表(不用写SQL语句)。【无法创建数据库】 2、操作表中的数据(不用写SQL语句)。 1、自己创建数据库 1)启动MySQL服务 2)自带

    2024年02月14日
    浏览(43)
  • MySQL数据库关于表的一系列操作

    varchar 动态字符串类型(最长255位),可以根据实际长度来动态分配空间,例如:varchar(100) char 定长字符串(最长255位),存储空间是固定的,例如:char(10) int 整数型(最长11位) long 长整型 float 单精度 double 双精度 date 短日期,只包括年月日 datetime 长日期,包括年月日时分

    2024年02月15日
    浏览(34)
  • 【MySQL】 MySQL表的增删改查(基础)

    本节目标: CRUD : Create, Retrieve,Update,Delete 新增数据 查询数据 修改数据 删除数据 注释:在SQL中可以使用“–空格+描述”来表示注释说明 CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写 语法格式: 创建案例如下: 代码如下: 结果如下: 代

    2024年02月07日
    浏览(38)
  • MySQL--MySQL表的增删改查(进阶)

    check 聚合查找 count sum average max min 我们这里先构造出多张表 查询lisi同学的成绩 来自student和来自score c 增加名字这一条件 查询所有同学的总成绩以及个人信息 来自score和来自student 查询所有同学的各科成绩以及个人信息 来自student,course和score 简化后的结果如下: 除了上述的

    2024年02月09日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包