表的增查
- 一.Create(增)
- 1.基本插入
- 2.插入是否更新
- 3.替换
- 二.Retrieve(查)
- 1.select列
- 1.全列查询
- 2.指定列查询
- 3.查询字段为表达式
- 4.结果去重
- 2.where条件查询
- 1.运算符
- 2.运算符使用
- 3.结果排序
- 4.筛选分页结果
一.Create(增)
1.基本插入
对于表的增加,前面已经用过很多次了,这里就一笔带过。
插入一行
多行数据插入
2.插入是否更新
由于 主键 或者 唯一键 对应的值已经存在而导致插入失败。
例子
当我再想插入一个1号进去时就会报错
此时就说明1号位置已经有数据了,那么我现在想将一号位置的数据更改成孙权。
3.替换
可以使用replace,如果冲突先删除再插入,如果不冲突,直接插入。
二.Retrieve(查)
创建表结构
插入一些数据
1.select列
1.全列查询
通常情况下不建议使用 * 进行全列查询
-1. 查询的列越多,意味着需要传输的数据量越大;
-2. 可能会影响到索引的使用。
2.指定列查询
指定列的顺序不需要按定义表的顺序来。
3.查询字段为表达式
表达式不包含该字段,会直接列出来
表达式包含该字段会自动计算
包含多个字段
当然也可以指定别名
4.结果去重
正常查询
去重结果
2.where条件查询
1.运算符
比较运算符
逻辑运算符
2.运算符使用
1.语文不及格的成绩
2.数学成绩在【80,90】间
3.语文成绩小于60或者大于80
4.姓名以孙开头的
5.数学成绩好于英语成绩的
6.数学成绩是98,99的
7.总分在200以下(where里不能用别名,因为它是先运行后半部分,再运行前部分)
8.语文成绩大于80且不姓孙
9.NULL的查询
查询英语成绩不为空的
3.结果排序
注意:没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序。
1.按数学成绩升序
2.按数学降序,英语,语文升序排序
多字段排序,排序优先级随书写顺序。
3.按总分降序(可以使用别名,因为它是先运行前半部分代码,再运行后半部分)
4.查询姓孙同学的数学成绩,并降序
4.筛选分页结果
对未知表进行查询时,最好加一条 LIMIT 1,避免因为表中数据过大,查询全表数据导致数据库卡死 按 id 进行分页,每页 3条记录,分别显示 第 1、2、3 页。
第一行到第三行
第四行到第六行
剩下的不足也不影响