数据中带空格字符串切割_转行数据分析师专栏(SQL篇)-02简单查询

数据表(4张)数据情况:

0409f23edd456dd77cf0abdf48d3c84d.png

一、基本的查询语句

1.通过客服端向mysql数据库发送SQL查询语句,mysql数据库里运行SQL语句,将查询结果返回

select

2.从student表里,查询列名为姓名,性别的所有结果

select 姓名,性别 
from student;

b4694a62cbecad7f45612913503665d0.png

3.查询student表里的所有结果

select * 
from student;

3e66df896efdba1a6161975874e9fad0.png

4.使用as,为列名设定其他别名

select 姓名 as s_name, 性别 as '人类性别'
from student;

4f3a6cf19e29231fe480412f576d531e.png

5.使用distinct,查询所有列名唯一值的结

select distinct 姓名 
from student;

3a204f61d8c3c67d42672586ca9eb691.png
-- 虽然“姓名”列里有两个“猴子”,但学号不相同,这两行数据都会显示;如果学号相同,则只会显示其中一行结果
select distinct 姓名,学号 
from student;

395023d901b778e4d72bb54ccc69e0f9.png

6.SQL书写规则

3597cc761ab602cdee82d5b485523128.png

二、指定查询条件

1.使用“where”子句指定查找条件

select<列名1>,<列名2>,....  
from<table >
where 条件;

例如从student表,根据姓名是“猴子”过滤后,得出列名为“姓名”和“学号”的结果:

select 姓名,学号
from student
where 姓名='猴子';

3261e5d51cea5c885358e1470e239fc5.png

2.SQL运行顺序:首选from哪个表,然后根据where条件过滤,最后select目标列名结果

83d1694c483aa42256ca94ccd1d8b507.png

三、注释和sql语句注意事项

  • 单行注释-- (这里有英文空格),多行注释/ * */
  • SQL中易犯错误的符号“,”";"
  • SQL语句使用换行或者半角空格来分割单词。

fd21c48d4917972df82a185ac94b2f9f.png

b61a097d6d20b10b4a6e7031aa1fd9a8.png

四、运算符

1.算术运算符

761b727f78ab87a6d2fa1ccfe5c86d9d.png

1.从score表里,查询列名为“学号”,“成绩”,“成绩百分比”(用“成绩”除以100,并以别名为“成绩百分比”)的所有结果:

select 学号,成绩,
成绩/100 as'成绩百分比'
from score;

7802f0dd727a59d62d16f1c147196563.png

2.比较运算符

55e7752f93ca926a743e933c65fe10e2.png

(1)从score表里,查询成绩<80的所有结果,列名包含“学号”和“成绩”:

select 学号,成绩
from score
where 成绩<80;

153afad6dc03ce1ccf4c6417642d3297.png

(2)从student表里,查询出生日期在“1990-01-01”之前的所有结果,列名包含“姓名”和“出生日期”:

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

41cee5b395a1fd43b5b8faa336c12ad8.png

(3)从teacher表里,查询教师姓名是空值的结果,列名包含“教师号”和“教师姓名”:

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

7abb13f92cccd923094f7ff444942b2a.png

(4)从teacher表里,查询教师姓名不是空值的结果,列名包含“教师号”和“教师姓名”:

-- 教师号为"0004"的教师姓名并不是空值null
select 教师号,教师姓名
from teacher
where 教师姓名 is not null;

ab706ca18c315c0731e29980f68c8270.png

3.逻辑运算符

ac9a6266c5c18089d0be0060a39226ac.png

(1)Not例子:从score表里,查询成绩不是>=80的所有结果,列名包含“学号”和“成绩”(以下两个SQL语句,结果是一样)

select 学号,成绩
from score
where not 成绩>=80;

select 学号,成绩
from score
where 成绩<80;

a901ce8b30a29c44d8a7d6d8f0288023.png

(2)And例子:从score表里,查询成绩>=60且<=90的所有结果,列名包含“学号”和“成绩”(跟between...and...的用法差不多)

select 学号,成绩
from score
where 成绩>=60 and 成绩<=90;

select 学号,成绩
from score
where 成绩 between 60 and 90;

a951e3de2acb1767ca6e3b833bef9099.png

(3)Or例子:从score表里,查询成绩>90或<80的所有结果,列名包含“学号”和“成绩”

select 学号,成绩
from score
where 成绩>90 or 成绩<80;

e4f57634b9a3216b769c4e126aa477fb.png

(4)or和and搭配用法:从student表里,查询姓名为“猴子”或“马云”,且性别为“男”的所有结果,列名包含(学号,姓名,出生日期,性别):

-- where条件里,优先执行小括号()里的or条件,然后再执行and条件
select 学号,姓名,出生日期,性别
from student
where 性别='男'
and (姓名='猴子' or 姓名='马云');

af9f16bea6363d15c2b1c3def00aa1b5.png

(5)in和and搭配用法:从student表里,查询姓名是“猴子”或“马云”,且性别为“男”的所有结果,列名包含(学号,姓名,出生日期,性别)

-- 跟(4)的结果一致
select 学号,姓名,出生日期,性别
from student
where 性别='男'
and 姓名 in('猴子','马云');

e5bed44ecc74ac07365a76f6596ef61c.png

(6)not in和and搭配用法:从student表里,查询姓名不是“猴子”和“马云”,且性别为“男”的所有结果,列名包含(学号,姓名,出生日期,性别)

select 学号,姓名,出生日期,性别
from student
where 性别='男'
and 姓名 not in('猴子','马云');

5b57659efe6f3823d6292fae649b1ec7.png

五、字符串模糊查询:like(关键词)

1.%表示任意字符串

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

/*
查询姓名中最后一个字是“猴”
的学生名单
*/

select *
from student
where 姓名 like '%猴';

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

2._表示任意一个字符

/*
查询姓“王”且名字是三个字
的学生名单
*/
select *
from student
where 姓名 like '王__';

c4a4e2a279a79a6f1bca904ba7b1c21d.png

六、练习题

链接:
https://sqlzoo.net/wiki/SELECT_from_WORLD_Tutorial​sqlzoo.net

21f4aa252c56efac145dbad312120025.png

4de724e8b82542a1866e3e4ca2f54f1b.png

a9c498d449360177c9a30c2184d6a5a5.png

de0a7a16f5fdefc62f45ee97c7b5ca15.png

73320df66cbaa86cebd9184ccb2f8a55.png

f032cd69d09b4aa03493442c591bc4b9.png

ff6c037dddc5fe6ad10984a7ba65f49f.png

10e844b327c0cb8574219b6ca34ad548.png

344984a882c33e5cdbd7081329873f4e.png
往期专栏:
转行数据分析师专栏(Excel篇)​zhuanlan.zhihu.com
8bf3ff76401b500cd358467a216de88c.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值