【MySQL】表的增删改查——MySQL基本查询、数据库表的创建、表的读取、表的更新、表的删除

这篇具有很好参考价值的文章主要介绍了【MySQL】表的增删改查——MySQL基本查询、数据库表的创建、表的读取、表的更新、表的删除。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MySQL

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql

  文章来源地址https://www.toymoban.com/news/detail-841249.html

表的增删查改

  CURD是一个数据库技术中的缩写词,它代表Create(创建),Retrieve(读取),Update(更新),Delete(删除)操作。这四个基本操作是数据库管理的基础,用于处理数据的基本原子操作。
  

1. Create(创建)

  在MySQL中,Create操作是十分重要的,它帮助用于创建数据库对象,如数据库、表、索引等并且允许用户定义新的数据结构和存储方式。我们常使用create databases [库名]; 创建数据库,create table [表名]; 创建数据表,insert into [表名] values(数据); 创建单条数据。
  

1.1 单行插入

  insert 语句在 MySQL 中用于向数据库表中插入新的记录。

insert into 表名 (1,2,3, ...)  
values(1,2,3, ...);

  如果你想要为表中的每一列都插入值(即列的顺序与表中的定义一致),我们直接省略列名:

insert into 表名  
values(1,2,3, ...);

  

创建一张学生数据表,包括学号,姓名,电话等基本信息:

mysql> create table test1(
    -> id int unsigned primary key auto_increment,
    -> num int not null,
    -> name varchar(20) not null,
    -> tele varchar(20)
    -> );

  对于上面的表中,id代表学号,每一个学生有且只有唯一的一个,所以我们设计为主键,同时设置为自增长,下面的num和name设置为不为空类型。

  

查看表的结构:

desc test1;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql
  

连续插入三个单条数据并且打印查看:

mysql> insert into test1 values(1,101,'张三',15811);
mysql> insert into test1 values(2,102,'李四',NULL);
mysql> insert into test1(num,name,tele) values(103,'王五',18888);
select * from test1;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql

  

1.2 多行插入

  insert语句可以一次性插入多行数据通常我们只需要在values子句中列出多组值来实现的,每组值之间用逗号分隔。

insert多行插入并且打印:

mysql> insert into test1 (num,name,tele) values
    -> (104,'赵六',12345),
    -> (105,'小七',54321);
select *from test1;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql
  

  确保我们插入的数据和列的数据匹配,如果列中not null,我们需要提供值,除非有默认值,我们要注意由于插入的数据是否会因为主键或者唯一键对应的值已经存在而导致插入失败。

对应主键已经有唯一值导致插入失败:

mysql> insert into test1 values(1,106,'老八',null);
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql

  

1.3 替换

  replace 语句在 SQL 中是一个特殊的语句,它结合了 insert 和 update 的功能。既可以插入数据也可以替换数据。

  插入数据:如果 replace 语句中指定的数据在表中不存在,它会执行一个插入操作,将数据添加到表中。

  替换数据:如果数据已经存在于表中(通常是因为主键或唯一键冲突),replace 语句会先删除原有的数据行,然后插入新的数据行。

replace into 表名 (1,2,3, ...)  
values(1,2,3, ...);

  总而言之:主键或者唯一键没有冲突,则直接插入;主键或者唯一键如果冲突,则删除后再插入。

  

替换原有的主键数据并插入新的数据:

mysql> replace into test1 values(1,106,'老八',null);

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql
任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql

  

2. Retrieve(读取)

  Retrieve操作在数据库应用中主要用于从数据窗口或数据存储(Datastore)中检索数据。常用的有select进行数据的显示,或者其他如where等进行数据的筛选。
  

2.1 select查看

  SELECT是SQL语言中的一个核心命令,用于从数据库表中检索数据。

[distinct]{* | {column[,column]...}
[from table_name]
[where...]
[order BY column[ASC|DESC],...]
limit...

  distinct:这个关键字用于去重。

  * 或 {column[,column]…}:这部分指定了要检索的列。* 表示选择所有列,而 {column[,column]…} 则允许您指定一个或多个列名。

  from table_name:这部分指定了要从哪个表中检索数据。

  where…:这是一个可选的子句,用于过滤结果集,只返回满足指定条件的行。

  order BY column[ASC|DESC],…:这部分用于对结果集进行排序。 您可以指定一个或多个列,以及排序的方向(升序 ASC 或降序 DESC)。

  limit…:这个子句用于限制返回的记录数。 它通常与分页查询一起使用。

创建学生成绩表:

mysql> create table test2(
    -> id int unsigned primary key auto_increment,
    -> name varchar(20) not null,
    -> chinese float default 0.0 comment '语文成绩',
    -> math float default 0.0 comment '数学成绩',
    -> english float default 0.0 comment '英语成绩'
    -> );

查看表结构:

desc test2;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql
  

向表中插入数据并且打印:

mysql> insert into test2(name,chinese,math,english) values
    -> ('张三',70,80,59),
    -> ('李四',72,90,65),
    -> ('王五',60,65,90),
    -> ('赵六',64,77,80),
    -> ('刘七',77,82,78),
    -> ('小红',90,43,90),
    -> ('李华',79,75,52);

  通常情况下不建议使用 * 进行全列查询,查询的列越多,意味着需要传输的数据量越大;可能会影响到索引的使用。

select * from test2;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql
  

指定列打印信息(id,name,chinese):

select id,name,chinese from test2;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql
  

打印的字段可以是一个表达式:

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

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql
  

给打印字段的表达式重新命名:

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

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql
  

将打印出来的英文成绩去重:

select distinct english from test2;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql
  

2.2 where条件

  在MySQL的select语句中,where子句用于指定查询条件,只有满足这些条件的记录才会出现在结果集中。where子句的主要目的是从数据表或查询结果中过滤出符合条件的行。

  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)

  

输出所有英语成绩小于60分的信息:

select name,english from test2 where english<60;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql
  

输出所有英语成绩大于等于60小于等于89的成绩:

select name,english from test2 where english>=60 and english<=89;
select name,english from test2 where english between 60 and 89;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql
  

输出数学成绩为80或90分的信息:

select name,math from test2 where math=80 or math=90;
select name,math from test2 where math in(80,90);

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql
  

找到所有的姓张的信息:

  % 匹配任意多个(包括 0 个)任意字符,_ 匹配严格的一个任意字符。

select name,math from test2 where name like '张%';

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql
  

找叫 张、张X、张XX 的人员信息,

select name,math from test2 where name like '张';
select name,math from test2 where name like '张_';
select name,math from test2 where name like '张__';

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql
  

找到所有总分小于210分的人员信息:

 select name,math+chinese+english 总分 
 from test2 
 where chinese+math+english<210;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql

  

2.3 结果排序

  结果排序通常使用SQL中的order by子句来实现,它允许用户指定一个或多个列作为排序依据,并可以选择升序(ASC)或降序(DESC)排序。

asc 为升序(从小到大)
desc 为降序(从大到小)
//默认为 ASC
select ... from table_name [where ...]
order by column [asc|desc], [...];

  

按照数学成绩的升序进行排序:

select name,math from test2 order by math;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql

  

按照英语成绩的降序进行排序:

select name,math,english from test2 order by english desc

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql
  

按照英语成绩的降序、数学成绩的升序进行排序:

select name,math,english from test2 order by english desc,math;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql
  

按照总分进行降序排序:

select name,chinese+english+math 
from test2 
order by chinese+english+math desc;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql

  

order by 子句中可以使用列别名:

select name,chinese+english+math 总分 from test2 order by 总分 desc;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql

  

2.4 筛选分页结果

  MySQL对未知表进行查询时,最好加一条 LIMIT 1,避免因为表中数据过大,查询全表数据导致数据库卡死。

//起始下标为 0
//从 s 开始,筛选 n 条结果
select ... from table_name [where ...] [order by ...] limit s, n

//从 0 开始,筛选 n 条结果
select ... from table_name [where ...] [order by ...] limit n;

//从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
select ... from table_name [where ...] [order by ...] limit n offset s;

  

查看表中的信息从第0条数据开始,筛选3条数据:

select id,name,chinese,math,english 
from test2 
order by id 
limit 3 offset 0;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql
  

3. Update(更新)

  update是一个数据库SQL语法用语,主要用来更新表中原有的数据。

  其基本的语法结构是:update 表名称 set 列名称 = 新值 where 列名称 = 某值。这意味着,当我们想要修改某个表中的特定数据时,可以使用update语句,并通过where子句来指定需要更新的行。

update table_name set column = expr [, column = expr ...]
[where ...] [order Bby ...] [limit ...]

  

3.1 更新单个数据

将李华的英语成绩更改为70:

select name,english from test2 where id=7;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql

update test2 set english=70 where id=7;
select name,english from test2 where id=7;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql

  

3.2 更新多个数据

将张三的语文成绩更改为75,英语成绩更改为65:

select name,chinese,english from test2 where id=1;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql

update test2 set chinese=75,english=65 where id=1;
select name,chinese,english from test2 where id=1;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql

  

4. Delete(删除)

  DELETE操作是数据库中的一种重要操作,用于删除表中的记录。

delete from table_name [where ...] [order by ...] [limit ...]

  

删除李华的成绩信息:

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql

delete from test2 where id=7 ;

任务描述 创建好了数据表过后就该向里面添加数据了。本关你将: 学会对数据库表进,MySQL,数据库,mysql

  

到了这里,关于【MySQL】表的增删改查——MySQL基本查询、数据库表的创建、表的读取、表的更新、表的删除的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【MySQL】基本查询之表的增删改查

    CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除) 创建user表并设置四个字段 注意:insert into可以省略成 insert 由于 主键 或者 唯一键 对应的值已经存在而导致插入失败,可以选择性的进行同步更新操作 注意:更新的数据也不能和其他数据冲突 创建数据表并添加数据

    2024年02月17日
    浏览(45)
  • 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日
    浏览(38)
  • 【MySQL】数据库的增删改查、备份、还原等基本操作

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

    2024年02月08日
    浏览(74)
  • 【MySql】数据库的增删改查

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

    2024年02月12日
    浏览(46)
  • Android使用SQLite数据库实现基本的增删改查

    目录 一、创建activity_main和MainActivity界面 二、实现查询/删除功能创建activity_delete和DeleteActivity 三、实现添加功能创建activity_add和AddActivity  四、实现更新功能创建activity_update和UpdateActivity 五、创建user_data类、userInfo类和增加权限 总结 activity_main如图:  MainActivity如下 layout界面

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

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

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

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

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

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

    2024年02月14日
    浏览(59)
  • 数据库的增删改查(一)

    *注释:在SQL中可以使用\\\"--空格+描述\\\"来表示注释说明 *CRUD即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写 语法: insert [into] table_name              [(column[,column] ...)] values(value_list) [, (value_list)] … 注: *[]:选填 *value_list:value,[,value] ... 示例

    2024年02月08日
    浏览(74)
  • 数据库的增删改查(二)

    关系型数据库的一个重要功能 主要作用是保证数据的完整性,也就是数据的正确性(数据本身是正确的,关联关系也是正确的) 人工检查数据的完整性的工作量非常的大,在数据表定义一些约束,那数据库在写入数据时,帮我们完成这个工作 1.1、约束类型 *NOT NULL -指示某列

    2024年02月08日
    浏览(83)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包