MySQL表的基本查询详细图文教程

 更新时间:2024年10月31日 11:04:07   作者:pouop  
这篇文章主要给大家介绍了关于MySQL表的基本查询的相关资料,需要的朋友可以参考下

1,创建表

前面基础的文章已经讲了很多啦,直接上操作:

非常简单!下一个!

2,插入数据

1,全列插入

前面也说很多了,直接上操作:

以上插入和全列插入类似,全列插入也可以这样写:

注意,后面插入的数据数量必须和定义表的列的数量及顺序一致

2,多行数据 + 指定列插入

插入两条记录,value_list 数量必须和指定列数量及顺序一致

操作:

如果需要用一条语句插入多行数据,可以在values后面用逗号隔开然后加入数据:

3,插入否,则更新

由于 主键 或者 唯一键 对应的值已经存在而导致插入失败

可以选择性的进行同步更新操作语法:

on duplicate key update = 。。。。。

可以看到,因为主键冲突所以无法插入数据,那么我又不想要id为1的数据,这个时候就可以用上面的语法:

可以看到,表中的第一行数据被更新了。

3,替换

用法:

-- 主键 或者 唯一键 没有冲突,则直接插入;

-- 主键 或者 唯一键 如果冲突,则删除后再插入

我们可以用创建成功后的提示来看有没有数据冲突:

-- 1 row affected: 表中没有冲突数据,数据被插入

-- 2 row affected: 表中有冲突数据,删除后重新插入

创建表和插入数据讲完之后,就可以开始我们的主题了:表的查询!

4,表的查询

首先我们来快速创建一个表,让我们可以方便查询:

具体指令:

创建表指令:

CREATE TABLE exam_result ( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) NOT NULL COMMENT '同学姓名', chinese float DEFAULT 0.0 COMMENT '语文成绩', math float DEFAULT 0.0 COMMENT '数学成绩', english float DEFAULT 0.0 COMMENT '英语成绩' );

插入表指令:

INSERT INTO exam_result (name, chinese, math, english) VALUES ('唐三藏', 67, 98, 56), ('孙悟空', 87, 78, 77), ('猪悟能', 88, 98, 90), ('曹孟德', 82, 84, 67), ('刘玄德', 55, 85, 45), ('孙权', 70, 73, 78), ('宋公明', 75, 65, 30); 

1,select列

1,全列查询

通常情况下不建议使用 * 进行全列查询

1. 查询的列越多,意味着需要传输的数据量越大;

2. 可能会影响到索引的使用。(索引待后面讲解)

操作:

2,指定列查询

操作:

3,查询字段为表达式

可以看到,可以进行运算并显示在表中。

4,为查询结果指定别名

操作:在加算表达式后面加as加要命名的名字

其中,as可以省略:

5,结果去重

我们想去差个成绩,看全班分数的整体趋势,为此要求分数不重复,而我们看到math里分数有重复的部分,那么我们怎么解决这个分数重复的问题?

去重!语法:在列名前加distinct:

可以看到,表中的数据被去重

2,where语句

我们可以用where语句来做判断来查询表,具体判断的表达式:

我们用例子来描述上面操作符的使用:

1 英语不及格的同学及英语成绩 ( < 60 )

可以用比较来筛选出想要的数据。

2,语文成绩在 [80, 90] 分的同学及语文成绩

这个时候,可以引入一个指令:and,它代表的是且命令,就和C++中的&&差不多

也可以用between来查询,操作如下:

3,数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩

这里面可以用or指令来完成,or相当于C++里的||:

当然,这样写比较麻烦,那么可以使用in条件来写:

这些写会比第一种方法好看。

4,姓孙的同学 及 孙某同学

这时候得引入模糊查找和%:

可以看到,孙后面的名字都查到了,但是如果只想要后面只有一个字的怎么操作?

可以看到,用_可以指定后面跟多少字

5,语文成绩好于英语成绩的同学

可以打印列表与列表的比较:

6,总分在 200 分以下的同学

可以用表相加减得出,但是不能用给表启的名字做比较,因为语句执行的顺序不一样:

7,语文成绩 > 80 并且不姓孙的同学

这里用到了like和not连用

8,孙某同学,否则要求总成绩 > 200 并且 语文成绩 < 数学成绩 并且 英语成绩 > 80

9,NULL 的查询

先创建表

查询 qq 号已知的id:

NULL 和 NULL 的比较,= 和 的区别

3,结果排序
语法:

-- ASC 为升序(从小到大)

-- DESC 为降序(从大到小)

-- 默认为 ASC

注意:没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序

1,同学及数学成绩,按数学成绩升序显示

2,同学及数学成绩,按数学成绩降序显示

3,查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示

4,查询同学及总分,由高到低

5,查询姓孙的同学或者姓曹的同学数学成绩,结果按数学成绩由高到低显示

4,筛选分页结果

关键字:limit 

只显示前几行

操作:

可以看到,limit前加的数字代表从第几行开始,第二个数字代表往下显示几行

可以用关键字offset来表示第几行开始:

总结 

到此这篇关于MySQL表的基本查询的文章就介绍到这了,更多相关MySQL表的基本查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解mysql触发器trigger实例

    详解mysql触发器trigger实例

    这篇文章主要为大家介绍了mysql触发器trigger实例 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • MyEclipse连接Mysql数据库的方法(一)

    MyEclipse连接Mysql数据库的方法(一)

    这篇文章主要介绍了MyEclipse连接Mysql数据库的方法(一)的相关资料,非常实用,具有参考价值,需要的朋友可以参考下
    2016-05-05
  • mysql中json基础查询详解(附图文)

    mysql中json基础查询详解(附图文)

    MySQL提供了一些函数来对JSON数据进行操作,下面这篇文章主要给大家介绍了关于mysql中json基础查询的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • mysql数据存储过程参数实例详解

    mysql数据存储过程参数实例详解

    这篇文章主要介绍了mysql数据存储过程参数实例详解,小编觉得挺不错的,这里分享给大家,供需要的朋友参考。
    2017-10-10
  • mysql删除表数据如何恢复

    mysql删除表数据如何恢复

    这篇文章主要介绍了mysql删除表数据如何恢复,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • mysql的基础语句和外键查询及其语句详解(推荐)

    mysql的基础语句和外键查询及其语句详解(推荐)

    这篇文章主要介绍了mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-04-04
  • MySQL备份和还原操作小结

    MySQL备份和还原操作小结

    备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件,这篇文章主要介绍了MySQL备份和还原操作小结,需要的朋友可以参考下
    2024-08-08
  • MySQL是如何保证数据的完整性

    MySQL是如何保证数据的完整性

    这篇文章主要介绍了MySQL是如何保证数据的完整性,帮助大家更好的理解和学习MySQL,感兴趣的朋友可以了解下
    2020-08-08
  • mysql如何让自增id归0解决方案

    mysql如何让自增id归0解决方案

    数据库的Id自增越来越大,要让自增重新从1开始:那么就用下面的方法吧
    2012-11-11
  • Express连接MySQL及数据库连接池技术实例

    Express连接MySQL及数据库连接池技术实例

    数据库连接池是程序启动时建立足够数量的数据库连接对象,并将这些连接对象组成一个池,由程序动态地对池中的连接对象进行申请、使用和释放,本文重点给大家介绍Express连接MySQL及数据库连接池技术,感兴趣的朋友一起看看吧
    2022-02-02

最新评论