MySQL表的基本查询详细图文教程!
MySQL表的基本查询详细图文教程!
1,创建表
前面基础的文章已经讲了很多啦,直接上操作:
非常简单!下一个!
2,插入数据
1,全列插入
前面也说很多了,直接上操作:
以上插入和全列插入类似,全列插入也可以这样写:
注意,后面插入的数据数量必须和定义表的列的数量及顺序一致
2,多行数据 + 指定列插入
插入两条记录,value_list 数量必须和指定列数量及顺序一致
操作:
如果需要用一条语句插入多行数据,可以在values后面用逗号隔开然后加入数据:
3,插入否,则更新
由于 主键 或者 唯一键 对应的值已经存在而导致插入失败
可以选择性的进行同步更新操作语法:
on duplicate key update = 。。。。。
可以看到,因为主键冲突所以无法插入数据,那么我又不想要id为1的数据,这个时候就可以用上面的语法:
可以看到,表中的第一行数据被更新了。
3,替换
用法:
-- 主键 或者 唯一键 没有冲突,则直接插入;
-- 主键 或者 唯一键 如果冲突,则删除后再插入
我们可以用创建成功后的提示来看有没有数据冲突:
-- 1 row affected: 表中没有冲突数据,数据被插入
-- 2 row affected: 表中有冲突数据,删除后重新插入
创建表和插入数据讲完之后,就可以开始我们的主题了:表的查询!
4,表的查询
首先我们来快速创建一个表,让我们可以方便查询:
具体指令:
创建表指令:
1
|
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 '英语成绩' ); |
插入表指令:
1
|
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表的基本查询的文章就介绍到这了。
学习资料见知识星球。
以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。
快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利!
更多技巧, www.excelbook.cn
欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;
1、价值上万元的专业的PPT报告模板。
2、专业案例分析和解读笔记。
3、实用的Excel、Word、PPT技巧。
4、VIP讨论群,共享资源。
5、优惠的会员商品。
6、一次付费只需99元,即可下载本站文章涉及的文件和软件。
共有 0 条评论