一、基本的查询语句
select <列名1>,<列名2>,.....
from <表名>;
1. select*:星号(*)查询出全部列
2. as:为列设定别名
select 姓名 as s_name,性别 as '人类性别'
from student;
别名为中文时要加上''
列名不能加''
3. 删除重复数据:distinct
select distinct 姓名
form student;
distinct 放在多列前面时,会根据多列组合的内容,删除重复的数据
练习一:查询学生表
二、 指定查询条件
- 查询条件
select 姓名,学号
from student
where 姓名='猴子';
运行顺序:from→where→select
练习二:理解SQL运行顺序
SQL运行顺序:
select子句最后运行,其他句子按书写顺序运行。
三、注释和SQL语句注意事项
- 注释
单行注释:--英文空格
多行注释:/*
注释的内容
可以写多行
*/
2. SQL语句注意事项:
注意中英文符号
子句中间可以换行
四、运算符
1. 算术运算符
select 学号,成绩
成绩/100 as'百分比成绩'
from score;
2. 比较运算符
查询出不及格的学生
select 学号,成绩
from score
where 成绩<60;
查找出出生日期小于1990-01-01的学生
select 姓名,出生日期
from student
where 出生日期<'1990-01-01';
3. 字符串比较规则:'10'<'2'
因为10开头的1,是小于2的
4. 如何查询出null值?
select 教师号,教师姓名
from teacher
where 教师姓名 is null;
select 教师号,教师姓名
from teacher
where 教师姓名 is not null;
练习三:算术运算符和比较运算符
算术运算符:+ - * /
比较运算符:=等于 <>不等于 >大于 >=大于等于 <小于 <=小于等于
5. 逻辑运算符
<1>查询条件:性别是'男'并且姓名是猴子或者是马云
select 姓名,性别
from student
where 性别='男'
and (姓名='猴子'or 姓名='马云');
<2>范围查询:between(包括两端的值)
select 学号,成绩
from score
where 成绩 between 60 and 90;
也可以写为
select 学号,成绩
from score
where 成绩>=60 and 成绩<=90;
<3> 或者:or
select 学号,成绩
from score
where 成绩<60
or 成绩>90;
in是or的简便写法
select 姓名,性别
from student
where 姓名 in('猴子','马云');
练习四:复杂的查询条件
逻辑运算符:not否定某一条件,and并且,between范围查找,or或者,in等同于or
五、字符串模糊查询
- 字符串模糊查询:like
2. %表示任意字符串
<1>查询姓“林”的学生名单
select*
from student
where 姓名 like '林%';
<2>查询姓名中最后一个字是“林”的学生名单
select*
from student
where 姓名 like '%林';
<3>查询姓名中带“林”字的学生名单
select*
from student
where 姓名 like '%林%';
3. _1个下划线表示任意1个字符
查询姓“王”的学生名单,并且姓名是3个字的
select*
from student
where 姓名 like '王__';
练习错题: