练习1:查询学生表
在school数据库,点查询/右键-新建查询,输入SQL查询语句:(*是查询所有列)
select *
from student
运行,得到如下查询结果:
练习2:理解sql运行顺序
sql运行顺序是:先顺次运行除select子句之外的sql语句,最后运行select语句。
选取姓名列里值为猴子的行:
注意:返回结果中列的顺序是由select子句中列名的次序决定的,比如,原表中“学号”是第一列,而select子句中把“姓名”放在前面,则上面的返回结果第一列就是“姓名”。反之,则是下面显示的:
练习3: 算术运算符和比较运算符
运算符可为sql指定复杂的查询条件。
算术运算符:+ - * /(加,减,乘,除)
比较运算符&#xff1a;&#61;相等&#xff0c;<>不等于&#xff0c;>大于&#xff0c;>&#61;大于等于&#xff0c;<小于&#xff0c;<&#61;小于等于
&#xff08;注意不等于的表达符号是<>&#xff09;
3.1 百分比成绩&#xff1a;
3.2 在学生表中查找姓名为猴子的学生及其学号
3.3查询成绩不及格的学生学号和成绩&#xff1a;
注意&#xff1a;写完一条sql语句&#xff0c;以英文分号结束。如果子句中写入了分号&#xff0c;则会出现错误的结果&#xff0c;比如&#xff0c;我在练习时&#xff0c;在from子句结束时写了分号&#xff0c;则会出现下面的结果&#xff0c;即没有执行where子句。
3.4 查询出生日期在1990-01-01之前的学生姓名和出生日期
3.5 查询教师姓名是Null的教师姓名&#xff1a;
注意这里要用“is”&#xff0c;不能用“&#61;”&#xff0c;如果输入“&#61;”&#xff0c;则查询不出任何结果&#xff1a;
3.6 查询不是null的教师姓名&#xff1a;
练习4 复杂的查询条件
逻辑运算符&#xff1a;not--否定某一条件&#xff0c; and--并且&#xff0c; between--范围查询&#xff0c; or--或者&#xff0c; in--or的简单写法。
4.1 not运算符
相当于&#xff1a;
4.2 and运算符
4.3 查询性别是男&#xff0c;并且名字是猴子或者马云的学生&#xff1a;
其中的“&#61;”不能写成“is”&#xff0c;否则报错&#xff1a;
注意&#xff1a;马云前面必须写“姓名&#61;”不能写成&#xff1a;姓名&#61;&#39;猴子&#39; or &#39;马云&#39;&#xff0c;否则不会选择出姓名是马云的学生&#xff1a;
and前后的条件书写顺序对查询结果没有影响&#xff1a;
注意&#xff1a;姓名必须用括号括起来&#xff0c;表示or运算符的运算顺序优先于and运算符&#xff0c;是一个整体&#xff0c;从而保证逻辑正确。去掉括号会造成如下结果&#xff1a;
如果把student中马云的性别改为女&#xff0c;则出现如下结果。可见&#xff0c;and运算符是把它后面和前面的条件进行了逻辑与运算&#xff0c;而or又对这个结果和or前面的部分进行了逻辑或运算。
4.4 between
相当于&#xff1a;&#xff08;即between是包含括号边界60&#xff0c;90的&#xff09;
4.5 or 或者
4.6 in 是or的简便写法
in前面加not&#xff0c;进行否定&#xff1a;
可以用in把4.3 的sql语句改写为&#xff1a;
练习5 字符串模糊查询&#xff1a;查找学生
5.1 查询姓“猴”的学生名单&#xff1a;
5.2 查询姓名中最后一个字是“猴”的学生名单
5.3 查询姓名中带“猴”的学生名单
练习题&#xff1a;sqlzoo
1,
2&#xff0c;