sql 不等于空_SQL的简单查询

在上一节中我们们安装了mysql以及navicat,并掌握了如何创建库、创建表、修改表和插入、删除以及更新数据。这一节我们将继续学习SQL的简单查询语句。

一、基本的查询语句

1、select子句和from子句

select <列名1>,<列名2>...
from <表名>;

select *
from <表名>;(查看全部列)

a5a4b850da36dedd96602b2e9f0ae56b.png

bbd6990c1eb5e6c2a79c20a0a93032d0.png
查询语句的运行过程如图

2、为列名设定别名

select 
<列名1> as bieming,
<列名2> as '别名';

fdff2643bdeca5cb4799917226f8c2d8.png

3、删除重复数据

删除单列重复数据:
select distinct <列名>
from student;

删除多列重复数据:
select distinct <列名1>, <列名2>
from student;

注意,删除多列重复数据是指删除列1和列2都重复的数据

16ebf947412006c57a4965b90221e899.png

d26a90e0b7d6cca37af4d8193e0a8558.png

二、指定查询条件

1、where子句

select <列名1>,<列名2>...                                3
from <表名>                                              1
where (运算符);                                           2

注意SQL语句的运行顺序,select子句最后运行,其他子句按书写顺序运行

2、运算符——关系运算符

e9b2b7242e05a9bf2bed8bfda0fbbf24.png

注意,运用关系运算符比较字符串时,是按照字典顺序比较的,比如字符串'10'<'2',因为字符串10是以1开头的,1比2小。在处理数据时,当发现“大的数据”反而排在“小的数据”的前面,这时就要注意该列数据的类型是以字符串形式存储的。

——算术运算符

运用算术运算符时,注意:

1、括号中表达式优先于括号外的

e.g. (1+2)*3 
sql会先运行1+2,再运行*3

2、与空值进行运算结果仍为空值

5+null=null
null不能用于数值比较,null和null也不相等

注意!根据我们的常规逻辑,集合a和集合!a构成全集,但是在sql中却不然,如下所示

44b926b99f54f3f038195ae78478257f.png
共8条数据

这是一个成绩表,其中有一行数据的成绩为空值,现在我们想找出成绩小于60的数据

81abece846533c6512c940bb9df6360a.png
没有输出结果

再找出成绩大于等于60的数据

8346e8030563eb75dde46f851c4c765d.png
只输出了7条数据

集合成绩<60和集合>=60是构成全集的,但在两个结果中,都没有出现成绩为null的数据,这是因为null并不能和数值60进行比较!

既然不能用=null来找出空值的话,那么如何查找出空值值呢?这时候空判断运算符就可以上场了。

——空判断运算符

8a2c1e3460f7990ffa763c390489dcb6.png

——逻辑运算符

69a59951986d27b07fc6859f93f930fe.png
not

e6e29cf7db7ae3bc7116bffafd8a3cbb.png
与上面结果相同

注意,and优先于or,例如,我想要找出性别为男,名字为猴子或马云的数据

cb29e016cb1cf3325a50f9b65cb0a1c4.png

a86960d8083ea4cded413d5869f38b5e.png
输出了一条性别是女的数据

3ca2cf01df2b16b0ad609201a45f293f.png
结果正确

7edcc43a7c063a3e99cc6b74582da35f.png
between

074201a18bad591510ce94322cdadbc2.png
or

06d027dd311648ea56dbdf32bfaf204b.png
in

e60dc59e3ca942bc263d49b4d0c085b5.png
not in

——模糊查询运算符

like+

6778bd1e5983f3e960d70366dc9a36e8.png
找出姓猴的人

319d7ae00341a591d2ee8e42452f5698.png
找出名字最后一个字是猴的人

5d58d133145017d6bd6c95a61c7abd38.png
找出名字包含猴的人

7e34f3ba2a85ba6fd06df0d63452fb0b.png
两个下划线,找出叫王**的人

三、注释

单行注释:--空格
多行注释:/*
               ...*/

a97b691045cce91f066782eb634081ad.png

四、本节出现的ERROR

1、Error : Field '教师号' doesn't have a default value

问题描述:

我在teacher表了,加了age列

00c9843b6501e21a77e26bb77ae1d112.png

当我指定age列插入数据时,就开始报Error : Field '教师号' doesn't have a default value的错误,但我指定教师号列却可以插入数据

bcdcb773ee698b91e438b49aca8bb5e5.png

5271d863080ab4954c47dd531531178a.png

96b0d811f6b2b5052c6d53e687435912.png

问题解决:插入数据时,主键字段不能为空。

2、Invalid use of NULL value

问题描述:想要修改age列的非空设置

问题解决:age列的数据为null,与not null的设置冲突。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值