在上一节中我们们安装了mysql以及navicat,并掌握了如何创建库、创建表、修改表和插入、删除以及更新数据。这一节我们将继续学习SQL的简单查询语句。
一、基本的查询语句
1、select子句和from子句
select <列名1>,<列名2>...
from <表名>;
select *
from <表名>;(查看全部列)
2、为列名设定别名
select
<列名1> as bieming,
<列名2> as '别名';
3、删除重复数据
删除单列重复数据:
select distinct <列名>
from student;
删除多列重复数据:
select distinct <列名1>, <列名2>
from student;
注意,删除多列重复数据是指删除列1和列2都重复的数据
二、指定查询条件
1、where子句
select <列名1>,<列名2>... 3
from <表名> 1
where (运算符); 2
注意SQL语句的运行顺序,select子句最后运行,其他子句按书写顺序运行
2、运算符——关系运算符
注意,运用关系运算符比较字符串时,是按照字典顺序比较的,比如字符串'10'<'2',因为字符串10是以1开头的,1比2小。在处理数据时,当发现“大的数据”反而排在“小的数据”的前面,这时就要注意该列数据的类型是以字符串形式存储的。
——算术运算符
运用算术运算符时,注意:
1、括号中表达式优先于括号外的
. (1+2)*3
sql会先运行1+2,再运行*3
2、与空值进行运算结果仍为空值
5+null=null
null不能用于数值比较,null和null也不相等
注意!根据我们的常规逻辑,集合a和集合!a构成全集,但是在sql中却不然,如下所示
这是一个成绩表,其中有一行数据的成绩为空值,现在我们想找出成绩小于60的数据
再找出成绩大于等于60的数据
集合成绩<60和集合>=60是构成全集的,但在两个结果中,都没有出现成绩为null的数据,这是因为null并不能和数值60进行比较!
既然不能用=null来找出空值的话,那么如何查找出空值值呢?这时候空判断运算符就可以上场了。
——空判断运算符
——逻辑运算符
注意,and优先于or,例如,我想要找出性别为男,名字为猴子或马云的数据
——模糊查询运算符
like+
三、注释
单行注释:--空格
多行注释:/*
...*/
四、本节出现的ERROR
1、Error : Field '教师号' doesn't have a default value
问题描述:
我在teacher表了,加了age列
当我指定age列插入数据时,就开始报Error : Field '教师号' doesn't have a default value的错误,但我指定教师号列却可以插入数据
问题解决:插入数据时,主键字段不能为空。
2、Invalid use of NULL value
问题描述:想要修改age列的非空设置
问题解决:age列的数据为null,与not null的设置冲突。