MySQL增删改查(基础)

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

目录

一,增加(Create)

1.1 单行数据+全列插入

1.2 多行数据插入

1.3 指定列插入

二,查询(Retrieve)

2.1 全列查询

2.2 指定列查询

2.3 表达式查询

2.4 去重操作

2.5 排序(order by) 

2.6 使用表达式/别名进行排序

 2.7 条件查询(Where)

2.7.1 基本查询

2.7.2 and和or

2.7.3 范围查询

2.7.4 分页查询(Limit)

三,修改(update)

四,删除(Delete)


一,增加(Create)

1.1 单行数据+全列插入

语法如下:

insert into 表名 values(数据);

其中,表名不区分大小写.

注意:在进行全列插入的时候,数据不能多,也不能少.必须和表中是一一对应的!

例子如下:

假如我有一个学生表,表里的数据有ID和name,我要插入两个数据.一个是1,张三还有一个是2,李四.

   insert into student values(1,'张三');
   insert into student values(2,'李四');

MySQL增删改查(基础)

这样,我们就将 两条数据插入到我们的student表中去了.

注意:在数据库中," "和' '都可以接收字符串类型,所以不用太过于纠结,看自己的使用习惯.

1.2 多行数据插入

在MySQL中进行插入操作的时候,我们还可以在一次性插入多条数据.

语法如下:

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

其中,我们使用 ","来将数据分隔开,表明这是两个不同的数据.

例子如下: 

我要向student表中插入两个数据,分别是: 3,王五和4,赵六.

insert into student values(3,'王五'),(4,'赵六');

MySQL增删改查(基础)

 我们看见,这里就显示了2 rows affected.这就说明两条数据都被插入成功了.warnings就说明没有警告.

1.3 指定列插入

假如我们班里面转来一个新同学叫做小美,但是因为它是新转来的,她还没有自己的id,那么我们该如何插入呢?这时候需要涉及到了指定列插入!

语法:

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

我们看到了,指定列查询和前面查询不一样的是,在表名后面加了一个括号,这个扩号是用来说明你需要插入的列的名称,不需要插入的就不需要写咯.因此,在我们的数据里面,也就不需要按照表的列来写数据了,而是按照括号里的列来写.

例子如下:

我们需要插入一个只知道name为小美的同学的信息到student表中去.

insert into student(name) values('小美');

MySQL增删改查(基础)

这样,我们就把小美的数据顺利插入进去了,等到小美有了id的时候,我们再去修改,这个是后面会讲到的update关键字了.

二,查询(Retrieve)

我们上面插入的数据,该如何去查看呢?接下来就是查询的相关操作了!

2.1 全列查询

全列查询就是将表中的所有列所有数据打印出来,

select * from 表名;

例子如下:

我们要查询student表的所有内容.

select * from student;

 MySQL增删改查(基础)

 这就是student表中的内容了.同时也解释了我们的一个疑问:如果我们使用指定列插入,那么未插入的列的数据是什么呢?答案就是 NULL,如果你没有向这个列插入数据,那么默认值就是NULL.

注意:全列查询这个操作是非常危险的一个操作,因为当我们的数据量太大的时候,可能会把我们的内存吃满.因此要慎用此操作.

2.2 指定列查询

现在我们有一个exam_result表,数据如下:

MySQL增删改查(基础)

现在我们只需要几列数据怎么来操作呢? 

语法:

select 列1,列2,列3..... from 表名;

这样就可以实现指定列查询了.

例子如下:

需要查询exam_result表中所有人的Math成绩,要求有id,name和Math列.

select id,name,Math from exam_result;

MySQL增删改查(基础)

 这样,我们就可以查询出每个人的数学成绩了.还是很简单的.

2.3 表达式查询

 有的时候,我们期望查询总分,或是查询有的列相加后的结果.那么这个时候,我们就需要使用表达式查询去完成这件事情.

语法如下:

select 表达式 from 表名;

这里需要注意的是,表达式里参加运算的列一定是列里的数据可以进行运算的.如果你用一个字母加上一个int类型的数据,那么肯定会出现报错的.

例子如下:

我们需要查询所有同学语文,数学,英语的总分.

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

MySQL增删改查(基础)

这样我们就可以很轻松的得到所有人的总分.出现了一列由表达式为名的数据.但是我们发现,chinese+math+english貌似不是特别美观.并且如果在实际工作中,我们的表达式可能会非常的长,因此我们可以给表达式设置别名.操作如下:

select 表达式 as 别名 from 表名;

MySQL增删改查(基础)

 只需要在表达式后面加上一个as,然后写上你的别名,这样我们就可以设置好别名.这样我们打印出来的数据也看的非常美观.

注意:设置别名的时候,as是可以省略的,但是不建议省略.因为去掉之后SQL的可读性就会下降.

2.4 去重操作

去重操作就是使用distinct关键词来进行操作.它可以帮助我们去除重复的数据.

语法如下:

select distinct 列名 from 表名;

例子如下:

语文老师想要得到语文成绩,但是要去掉重复的语文成绩数据.

没加distinct之前:

MySQL增删改查(基础) 

一共有八条数据,但是我们看见第一个和最后一个语文成绩重复了.

加了之后:

MySQL增删改查(基础)

就只剩下了一个67分,数据也变成了7条了.

注意:如果想要使用distinct的时候查询多列数据,那么必须多个列都相同,那么才会进行去重,否则就不会去重.如下图: 虽然唐三藏的语文成绩和孙行者的语文成绩一样,但是因为名字不一样,所以没有进行去重.

MySQL增删改查(基础)

2.5 排序(order by) 

当我们需要得到从小到大的数据或者从大到小的数据,这个时候,我们可以使用order by来进行操作.

语法如下:

select 列名/表达式/别名 from exam_result from 表名 order by 列名 asc/desc;

例子如下:

我们需要将数学成绩从大到小进行排序

select name,math from exam_result order by math desc;

MySQL增删改查(基础)

 这样我们就进行了一个数学成绩的从大到小排序.

注意: 1.order by 列名后面的desc代表的是从大到小排序,而asc是从小到大排序.而如果什么都不写的话,默认就是从小到大排序!

         2.当你没有使用order by的时候,你查询的时候返回的顺序是没定义的,是不可预测的.永远不要依赖于这个顺序!

         3.当数据中出现null的时候,null被视为最小值,比表里的任何数据都小.

2.6 使用表达式/别名进行排序

上面我们说了排序,那么我们现在就可以使用别名来进行排序.

语法如下:

select 表达式 as from 表名 order by 表达式;
select 表达式 as 别名 from 表名 order by 别名;

例子如下:

查询一下总分,并且从小到大排序.

select name,chinese+math+english from exam_result order by chinese+math+english;

MySQL增删改查(基础)

 也可以使用别名:

select name,chinese+math+english as total from exam_result order by total;

MySQL增删改查(基础)

 2.7 条件查询(Where)

2.7.1 基本查询

语法如下:

select 列名/*/表达式/别名 from 列名 where 条件; 

例子如下: 

1. 查询英语不及格的同学以及其英语成绩.

select name,english from exam_result where english<60;

MySQL增删改查(基础)

2. 查询总分在200分以上的同学及其成绩.

select name,chinese+math+english as total from exam_result where chinese+math+english>200;

MySQL增删改查(基础)

 3. 查询数学比英语高的同学以及其成绩.

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

MySQL增删改查(基础)

注意: 在where里面,不可以使用别名来代替表达式.但是可以使用别名.

2.7.2 and和or

and和or就代表着&和|.他们的意思是一样的.

例子如下:

1.查询数学大于80并且英语小于60的人.

select name,math,english from exam_result where math>80 and english < 60;

MySQL增删改查(基础)

在这个例子中,我们使用and连接两个条件,表示只有两个条件都满足的时候,才输出此条数据.

2. 查询语文大于80 或者 数学小于80的人.

select name,chinese,math from exam_result where chinese > 80 or math < 80;

MySQL增删改查(基础)

 这个SQL语句中,我们就是使用or来连接条件的,这表示只要满足其中一个条件,就输出该数据.

注意:and和or同时使用的时候,and的优先级比or高,因此在使用and和or的时候,尽量使用()来表明优先级.

MySQL增删改查(基础)

由这个图可知,当没加括号的时候,先执行后面的maht >70 and english > 70这个语句,然后执行chinese > 80.然后做or操作.

2.7.3 范围查询

1. 查询数学成绩在[80,90]之间的同学及其数学成绩.

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

MySQL增删改查(基础)

 这个也可以使用and来实现.

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

MySQL增删改查(基础)

在这里我们使用了between and 这个关键词,它可以查找出在其范围内的数据.并且是左闭右闭.

注意:虽然between and 有时候可以使用and来实现,但是不建议这样做.因为在MySQL中有一个最左前缀匹配原则.这个在索引的时候会了解到.

2. 查询语文成绩是87,70,56,55其中一个的人及其语文成绩.

select name,chinese from exam_result where chinese in (87,70,56,55);

MySQL增删改查(基础)

 在这里我们使用了in这个关键词,它可以筛选出在括号里面的数据.这个例子也可以使用or来实现,这里就不演示了.

3. 模糊查询(Like)

3.1 查询姓孙的同学,并且名字是两个字.

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

MySQL增删改查(基础)

在这个SQL语句中,我们使用了like关键词,并且使用了下划线. 其中一个下划线代表一个字符,而孙_就表示是姓孙,名字为两个字的人.

 3.2 查询姓孙的同学,无论名字有几个字.

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

MySQL增删改查(基础)

在上述SQL语句,跟上一个例子不同的是,' '里面是孙%而不是孙_,这是因为%代表后面是任意多个字符.而_是代表一个字符. 

2.7.4 分页查询(Limit)

语法如下:

select */表达式/列/别名 from 表名 limit n offset m;

这个是最简单的分页查询.在表名后面还可以加上各种条件,并且还可以使用order by来进行排序.

例子如下:

查询总成绩在前三名的同学.

select name,chinese+math+english as total from exam_result order by total desc limit 3;

MySQL增删改查(基础)

 这个表中就是总分前三名了.

注意: 如果limit后面的数大于数据被筛选后的总数,不会受到影响,MySQL会打印出所有的数据.

三,修改(update)

在MySQL中,我们使用update关键词来修改.

语法如下:

update 表名 set 列名 = 数据; 

这个就是最简单的修改SQL语句,而在数据的后面我们还可以增加where语句,order by语句和limit语句等等,来限制我们的修改范围.

例子如下:

1. 将孙悟空同学的数学修改成70分.

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

MySQL增删改查(基础)

 2. 将曹孟德同学的语文改成70分,数学改成60分.

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

MySQL增删改查(基础)

 3. 将总成绩倒数前三名的数学成绩加\30分.

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

这是修改前倒数前三名的成绩.

MySQL增删改查(基础)

 修改后:

MySQL增删改查(基础)

 可以看见宋公明,刘玄德,曹孟德的数学成绩都加上了30分.

四,删除(Delete)

当我们想要删除某个数据或者某些数据的时候,我们可以使用delete关键词来进行操作.

语法如下:

detele from 表名 where.../order by .../limit n;

例子如下:

1. 删除唐三藏的成绩.

delete from exam_result where name = '唐三藏';

MySQL增删改查(基础)

执行之后我们看见,exam_result表中已经没有了唐三藏同学了. 

这就是所有的内容了,本人学识有限,肯定有没有说到或者说错的地方,请大家谅解!文章来源地址https://www.toymoban.com/news/detail-448702.html

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

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

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

相关文章

  • MySQL基础篇补充 | 单行函数(数值函数、字符串函数、日期函数、流程控制函数、加密与解密函数、MySQL信息函数)

    目录 一:单行函数  1. 数值函数 (1)基本函数 (2)角度与弧度互换函数 (3)三角函数 (4)指数与对数 (5)进制间的转换 2. 字符串函数 3. 日期和时间函数 (1)获取日期、时间 (2)日期与时间戳的转换 (3) 获取月份、星期、星期数、天数等函数 (4)日期的操作函

    2024年02月03日
    浏览(44)
  • MySQL增删改查(基础)

    目录 一,增加(Create) 1.1 单行数据+全列插入 1.2 多行数据插入 1.3 指定列插入 二,查询(Retrieve) 2.1 全列查询 2.2 指定列查询 2.3 表达式查询 2.4 去重操作 2.5 排序(order by)  2.6 使用表达式/别名进行排序  2.7 条件查询(Where) 2.7.1 基本查询 2.7.2 and和or 2.7.3 范围查询 2.7.4 分页查询(Limit)

    2024年02月05日
    浏览(10)
  • MySQL--MySQL表的增删改查(基础)

    排序:ORDER BY 语法: – ASC 为升序(从小到大) – DESC 为降序(从大到小) – 默认为 ASC SELECT … FROM table_name [WHERE …] ORDER BY column [ASC|DESC], […]; *** update

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

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

    2024年02月07日
    浏览(49)
  • Mysql基础增删改查语句

    最基本必会的增删改查   一.增Insert (特殊的如果id自动递增的话,就不需要插入id) 基本语法  insert into 表名(列1,列2,列3,列4,...)  values(值,值,值) 例子  insert into student(name,sex,age) values(\\\'张三\\\',18,\\\'男\\\') 插入的另外一种形式: insert into 表名 set 列=值,列=值,列=值,.

    2024年01月19日
    浏览(30)
  • 【MySQL】增删改查操作(基础)

    在我们的数据库中,用insert into来进行新增操作,首先我们需要一张表 注意:在进行下列操作时,要选中数据库进行操作 一次只插入一行,每一行都会插入数据 举例如下: 举例如下: 这里通过 mysql 客户端给出的信息,也能看到我们成功插入了 2 行数据 注意:values()括号中

    2024年04月15日
    浏览(29)
  • mysql 增删改查基础命令

    数据库是企业的重要信息资产,在使用数据库时,要注意(查和增,无所谓,但是删和改,要谨慎! ) 数据库管理系统(DBMS) :实现对数据的有效组织,管理和存取的系统软件 mysgl 数据库是一个系统, 是一个人机系统,硬件, gs,数据库, DBMS和数据库的用户共同组成。 用户是通过DBMS(各

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

    前面我们已经知道怎么来创建表了,接下来就来对创建的表进行一些基本操作。 这里先将上次创建的表删除掉: 在test数据库里新建一个student表: 接下来就针对该表进行增删改查的操作~ 目录 ♫新增 ♪单行数据插入 ♪查看默认编码 ♪修改配置文件 ♪指定列插入 ♪多行数据

    2024年02月07日
    浏览(23)
  • 【MYSQL】表的增删改查(基础)

    语法: INSERT [INTO] table_name [(column [, column] ...)] VALUES(value_list) [, (value_list)] ... 案例: 语法: SELECT [DISTINCT] {* | {column [, column] ...} [FROM table_name] [WHERE ...] [ORDER BY column [ASC | DESC], ...] LIMIT ... 案例: 为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称 语法:

    2024年02月02日
    浏览(78)
  • MySQL表的增删改查(基础)

    目录 1. CRUD 2. 新增(Create)  2.1 单行数据 + 全列插入  2.2 多行数据 + 指定列插入   3. 查询(Retrieve)  3.1 全列查询  3.2 指定列查询  3.3 查询字段为表达式   3.4 别名 3.5 去重:DISTINCT   3.6 排序:ORDER BY  3.7 条件查询:WHERE  3.8 分页查询:LIMIT   4. 修改(Update)  5. 删除(

    2024年01月17日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包