数据库(3)

继续介绍sql的相关操作.为了方便介绍,首先创建一个成绩表如下:

1.条件查询  select 列名,列名,列名,... from 表名 where 条件   这里的条件是指,逻辑运算符/关系运算符.介绍一下SQL中比较特殊的关系运算符     = :表示判断相等,NULL不安全,NULL=NULL的值是faluse    <=>:表示判断相等,NULL安全,NULL=NULL的值是true     表达式 between  a1 and a2:范围匹配,相当与区间[a1,a2]    逻辑运算符   AND:相当于&&    OR :相当与||    NOT:相当于!

条件查询据举例1:查询英语成绩不及格的同学及其成绩  

                        2.查询英语成绩大于数学成绩的同学.

上述语句的执行过程:遍历数据表中的每一行,取出当前行与条件进行比较,如果条件成立,当前这一行数据就会进入到集合中,否则进入下一行数据.也可以在条件选择时使用order by 来排序.

要注意 order by 要写在最后面.

                     3.查询总分在200分以下的同学

思考下面代码为什么会出错

可以理解为与SQL的执行顺序有关.

1.遍历表    2.带入条件    3.计算表达式(更名)   4.排序/聚合等操作

               4.查询语文成绩大于80分,且英语成绩大于80分的同学.

                5.and的优先级比or的优先级高

               6.查询语文成绩在[80,90]之间的同学.

                7.查询数学成绩为 58或59或98或99的同学(需要用到关键字 in,具体如下)

查询语文成绩为30,80,70的同学.

               8.模糊查询 :like 不要求完全一致,只要有一部分即可,需要引入通配符% 和 _  具体使用如下:

 

通过上述例子不难看出 like  % 表示的是包含%周围字符的数据,长度不限.%在前面表示匹配以%周围字符结尾的数据,%在后面表示匹配以%周围字符开头的数据,%在中间表示匹配包含%周围字符夫的数据.另一个字符_的用法与%基本相同,仅仅是_限制字符长度为1而已.要注意like这种操作,开销是很大的,性能非常低,要谨慎使用.

9.针对空值的查询: <=>  is NULL  is not NULL;由于NULL=NULL的值是false 所以不能使用 =

10.分页查询:limit 关键字进行查询,用来限制这此查询最多返回多少条记录.

使用 limit 查询时可以和 offset 关键字一起使用.offset 称为偏移量(相当于下标),不写offset时相当于offset0.

打印成绩前三的同学:

11.修改操作: update  表名  set  列名  =   值  where   条件

将语文成绩低于或等于80的同学的成绩,修改为80分

将语文成绩高于60的同学的数学成绩修改为60分

将语文成绩大于80分的同学的名字修改为李四.

当然使用 update  表名   set   列名  时并不一定要使用条件.也可以单独使用.

在修改时,严格上来说匹配到的行都要修改,但是当修改的值是非法的时候,修改失败.此时,修改成功的行数就会少于匹配的行数.

修改也可以一次修改多个列中间用逗号隔开.

修改也可以借助一些表达式

12.删除操作: delete from 表名  where  条件;删除都是以行为维度进行删除的.一旦数据删除,无法恢复.

如果 delete from 表名      而不指定任何条件的话,就会删除所有数据.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值