导语
一.注释及查询语句的书写规则
1.注释
注释不会影响语句的运行,语句运行后呈灰色
-- 单行注释:书写在“--”(英文格式)之后,只能写在同一行
/* 多行注释:书写在“/* ”和“ */ ”之间,可以跨多行 */
2.语句书写规则
二.简单查询
1.列的查询
--一般格式
select <列名> (as <设定的列的别名>), ... /*子句列名顺序即运行显示顺序*/
from <表名> ;
--例:
select name as s_name,gender as s_gender /*别名可以使用中文*/
from student;
--查询出全部列时,可以使用代表所有列的星号(*)
--例:
select * from student; /*列的显示顺序只会按照原表的进行排序*/
2.删除重复值distinct (非常重要)
--实例:
select distinct name from student
-->>将姓名这列中重复的值删除
select distinct 学号 姓名 from student
-->>将学号和姓名两列组合,删除在学号且在姓名这列也重复的值
/*对含有NULL数据的列使用DISTINCT关键字时,NULL数据会被保留,多条NULL数据重复的会被合并为一条*/
应用
/*在实际数据分析工作中,像很常见的页面点击率UV和独立访客的转化率都需要引用distinct。*/
3.指定条件查询 where
3.1查询语句运行顺序
--例:
select 学号,姓名 --step3 从查询出的航中选取出select语句指定的列
from student --step1 from从哪张表中查找数据
where 姓名='张三'; --step2 where 查询出符合条件的行
注:若select 后面是 姓名,学号,那么查询结果中学号和姓名两类的顺序会调换
三.运算符
运算符:就是对其两边的列或者值进行运算(计算或者比较大小等)的符号
注:1.括号可以提升运算的优先顺序(优先进行运算)2.包含NULL的运算,其结果也是NULL
1. 算数运算符
--例:查询学号为001的同学的百分比成绩
select score/100 as score_percent
from score
where id=001;
2.比较运算符
--例:查询分数小于90分的学生信息
select id,course,score
from score
where score<90;
如何查询出null值?
select id,course,score
from score
where score is null;
3.逻辑运算符
3.1 and & or/in(or的简单写法)
and:用于两个条件同时满足
or/in(or的简单写法) :只需满足其中一个条件即可
--例:从student 表中查找出名字为Jack或Tom的男生的生日
select birth
from student
where gender='male'
and (name='Jack' or name='Tom');
select birth
from student
where gender='male'
and name in ('Jack' or 'Tom');
3.2 not
not运算符用来否定某一条件, 不能单独使用,必须和其他查询条件组合起来使用。
--例:从scoret表中查找成绩不低于90分的学生信息
select id,course,score
from score
where not score<90;
3.3 between
注:between 是取闭区间的值
--例:从scoret表中查找成绩在85到90分之间的学生信息
select id,course,score
from score
where score between 85 and 90;
五.字符串模糊查询(%和_的妙用)
注:一个下划线 “_”代表任意一个字符
--例1:查询名字的首字母为A的学生名单
select *
from student
where name like 'A%';
--例2:查询名字中以字母y结尾的学生名单
select *
from student
where name like '%y';
--例3:查询名字含有字母m的学生名单
select *
from student
where name like '%m%';
--例4:查找姓名以J开头且姓名是4个字母的学生名单
select *
from student
where name like 'J___';
少年易学老难成,一寸光阴不可轻。