1.基本查询语句



/* ---第2关 简单查询--- */

/* SQL注意事项:SQL子句之间可以换行或者空格,但是不能隔一行  */

/* 1.基本查询语句  */
select 姓名,性别
from student;

-- (*)查询出全部列
select *
from student;

-- as为列设定别名,别名加不加引号都可以
select 姓名 as name,性别 as '人类性别'
from student;

-- distinct删除重复数据,只保留一个
select distinct 姓名
from student;

-- distinct后面若有两个列名,则当两列数据都相同时才算重复
select distinct 学号,姓名
from student;



运行结果:




SQL SERVER timestamp比较大小 sql语句比较大小_sql相加运算


简单查询的练习题:https://sqlzoo.net/wiki/SELECT_basics/zh

答案:https://mp.weixin.qq.com/s/dSUs63fvh_4OppaToJkH0w

2.指定查询条件


/* -----------------------------2.指定查找条件where---------------------- */

-- select子句最后运行,其余子句按照书写顺序运行
select 姓名,学号
from student 
where 姓名='猴子'


运行结果:


SQL SERVER timestamp比较大小 sql语句比较大小_sql查询结果换行_02


3.运算符


/* -----------------------------3.运算符--------------------------------- */

-- (1)算数运算符:+-*/运算
-- 如(1+2)*3;
-- 注意:5+Null=Null,即任何数与空值相加等于空值
select 学号,成绩,
成绩/100 as '百分比成绩'
from score;


-- (2)比较运算符:=,>,>=,<,<=,不等于<> 
select 学号,成绩
from score  
where 成绩<60;

select 姓名,出生日期
from student
where 出生日期<'1990-01-01';

/* 
注意事项:
字符串比较规则:按照字符串顺序进行比较,
例如:'10'<'2',因为'10'的第一个字符为1,小于2
因此若出现数字小的排前面,就要去检查以下是不是把数字的格式设置成了字符串类型varchar
*/


-- 如何查询Null值
select 教师号,教师姓名
from teacher  
where 教师姓名 is null;

select 教师号,教师姓名
from teacher  
where 教师姓名 is not null;


运行结果:


SQL SERVER timestamp比较大小 sql语句比较大小_sql查询结果换行_03


/* -----------------------------3.运算符--------------------------------- */

/* ----(3)逻辑运算符 not,and,between,or,in ----*/

-- not 否定某一条件
select 学号,成绩
from score
where not 成绩>=60;  
-- where 成绩<60;


-- and 并且,两个条件都需要满足
select 学号,成绩
from score
where 成绩>=60 and 成绩<=90;

select 姓名,性别
from student
where 性别='男' and 姓名 in ('马云','猴子');
-- where 性别='男' and (姓名='马云' or 姓名='猴子');


-- between,范围查询,包括边界值
select 学号,成绩
from score
where 成绩 between 60 and 90;
-- where 成绩>=60 and 成绩<=90; 


-- or 或者,只要一个条件成立即可
select 学号,成绩
from score
where 成绩<60 or 成绩>90;

-- in:or的简便书写
select 姓名,性别
from student
where 姓名 in ('马云','猴子');

-- not in  
select 姓名,性别
from student
where 姓名 not in ('马云','猴子');


运行结果:


SQL SERVER timestamp比较大小 sql语句比较大小_sql相加运算_04


运算符练习题:https://sqlzoo.net/wiki/SQLZOO:SELECT_from_WORLD_Tutorial/zh

答案:https://mp.weixin.qq.com/s/dSUs63fvh_4OppaToJkH0w

4.字符串模糊查询


/* -----------------------------4.字符串模糊查询 like--------------------------------- */

/*----------%表示任意字符串---------*/
-- 查询姓猴的学生名单
select *
from student
where 姓名 like '猴%';

-- 查询姓名中最后一个字是猴的学生名单
select *
from student
where 姓名 like '%猴';

-- 查询姓名中间有猴的学生名单
select *
from student
where 姓名 like '%猴%';

/* -----------------------------------------------*/

/*  _ 一个下划线表示任意一个字符串*/
-- 查询姓王的学生名单,并且姓名是3个字的
select *
from student
where 姓名 like '王__'; -- 这里是两个下划线


运行结果:


SQL SERVER timestamp比较大小 sql语句比较大小_sql字符串比较大小_05


字符串模糊查询练习题:https://sqlzoo.net/wiki/SELECT_names/zh

答案:https://mp.weixin.qq.com/s/dSUs63fvh_4OppaToJkH0w

5.注意事项

(1)SQL注意事项:SQL子句之间可以换行或者空格,但是不能隔一行

(2)select子句最后运行,其余子句按照书写顺序运行

(3)字符串比较规则:按照字符串顺序进行比较, 例如:'10'<'2',因为'10'的第一个字符为1,小于2 因此若出现数字小的排前面,就要去检查以下是不是把数字的格式设置成了字符串类型varchar

(4)SQL书写规则:末尾为英文分号,关键词不区分大小写,标点符号要用英文格式,列名不加引号,列名的命名不能有空格,具体的数据内容要加英文格式的单引号,数字不需要单引号。