#任务二#

MySQL 基础 (一)- 查询语句

#任务时间#

请于4月2日22:00前完成,在本文章评论打卡。逾期尚未打卡的会被清退。

#学习内容#

  1. 导入示例数据库,教程 https://www.yiibai.com/mysql/how-to-load-sample-database-into-mysql-database-server.html

照着示例打,结果是错的,要把引号去掉

  1. SQL是什么?MySQL是什么?

  2. SQL:sequel是Structured Query Language(结构化查询语句)的缩写。SQL是一种专门用来与数据库沟通的语言。MySQL是一个关系型数据库管理系统。

  3. 查询语句 SELECT FROM
    语句解释:所需的列名写在select关键字之后,from关键字指出从哪个表中检索数据。
    去重语句:使用distinct关键字,它只是数据库只返回不同的值;distinct作用于所有的列
    select distinct country from offices;

    前N个语句:用limit,例如select city from offices limit 5;这一点和别的数据库软件不一样。

    CASE…END判断语句:
    参考于:https://www.cnblogs.com/clphp/p/6256207.html
    CASE
    WHEN 条件1 THEN 结果1
    WHEN 条件2 THEN 结果2
    WHEN 条件3 THEN 结果3

    WHEN 条件N THEN 结果N
    END
    这个暂时实现不了

  4. 筛选语句 WHERE
    语句解释
    在select语句中,数据根据where子句中指定的搜索条件进行过滤。where子句在表名(from子句)之后给出

    运算符/通配符/操作符:
    运算符/操作符总结:

    通配符总结:借用博客园的大佬
    https://www.cnblogs.com/hrhguanli/p/3826218.html

  5. 分组语句 GROUP BY
    聚集函数:
    1)avg() 返回某列的平均值
    2)count() 返回某列的行数
    3)max() 返回某列的最大值
    4)min() 返回某列的最小值
    5)sum() 返回某列之和
    语句解释
    HAVING子句查询:过滤条件

  6. 排序语句 ORDER BY
    语句解释:order by 列名1,列名2,···列名n
    可以根据多个列进行排序。当按照多个列进行排序时,只有第一列相同时才使用第二列:
    正序、逆序:正序排序时,可以使用asc作为排序方式的关键词,也可以不使用。逆序时,一定要使用desc作为关键词。

  7. 函数
    时间函数
    获得当前日期+时间(date + time):select now();
    获得当前日期+时间(date + time):sysdate()
    sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。
    数值函数
    ABS(x):返回 x 的绝对值
    CEIL(x):返回不小于 x 的最小整数,也就是说得大于或等于x的最小整数,同义词:ceiling(x)
    FLOOR(x):返回不大于 x 的最大整数(与CEIL的用法刚好相反)
    MOD(x,y):返回数字x除以y后的余数:x mod y 和 x%y 的结果相同;模数和被模数任何一个为NULL(无效数)结果都为 NULL,余数可以有小数;除数为0不抛出异常
    ROUND(X[,D]):将数字X四舍五入到指定的小数位数D
    ①如果不指定D,则默认为0
    ②如果D是负数,表示从小数点的左边进行四舍五入
    TRUNCATE(X,D):将数字X截断到指定的小数位数D(不四舍五入)
    ①如果D为0,表示不要小数
    ②如果D是负数,表示从小数点的左边进行截断
     注意:TRUNCATE 和 ROUND 的区别在于 TRUNCATE 仅仅是截断,而不进行四舍五入
     RAND():返回一个随机浮点数v(0<=v<1.0)
    RAND(x):指定整数x,则用作种子值,产生一个可重复的数字序列
    利用RAND()函数可以取任意指定范围内的随机数
    类似于shell> $((RANDOM % 100))得到随机值  
    比如:产生 0~100 内的任意随机整数
    注意:

①当在 WHERE 子句中使用RAND()时,每次当WHERE执行时都要重新计算 RAND()

②不能在ORDER BY子句中使用带有随机值的列

但是,可以以随机的顺序从表中检索行

例如:mysql> SELECT * FROM players ORDER BY RAND();

③ORDER BY RAND()常和LIMIT子句一起使用:

例如:mysql> SELECT * FROM table1,table2 WHERE a=b AND c<d ORDER BY RAND() LIMIT 1000;

字符串函数:
详见参考:MySQL常用字符串函数https://www.cnblogs.com/geaozhang/p/6739303.html

  1. SQL注释
    一、单行注释

SQL语句中的单行注释使用 –
二、多行注释

SQL语句中的多行注释采用 //

  1. SQL代码规范
    [SQL编程格式的优化建议] https://zhuanlan.zhihu.com/p/27466166
    [SQL Style Guide] https://www.sqlstyle.guide/

#作业#

项目一:查找重复的电子邮箱(难度:简单)
– 创建表
CREATE TABLE email (
ID INT NOT NULL PRIMARY KEY,
Email VARCHAR(255)
)
– 插入数据
INSERT INTO email VALUES(‘1’,‘a@b.com’);
INSERT INTO email VALUES(‘2’,‘c@d.com’);
INSERT INTO email VALUES(‘3’,‘a@b.com’);

–查询数据
1:先按邮箱Email分组,生成临时表A,表A中有Email和对应出现的次数。然后判断次数是否大于1

SELECT Email
FROM (SELECT Email, COUNT(*) AS Sum
FROM Email
GROUP BY Email) AS A
WHERE A.Sum>1

2:利用HAVING

WHERE 关键字无法与聚合函数一起使用。HAVING 子句可以让我们筛选分组后的各组数据。

SELECT Email FROM Email
GROUP BY Email
HAVING COUNT(*)>1

项目二:查找大国(难度:简单)
– 创建表
CREATE TABLE World (
name VARCHAR(50) NOT NULL,
continent VARCHAR(50) NOT NULL,
area INT NOT NULL,
population INT NOT NULL,
gdp INT NOT NULL
);
– 插入数据
INSERT INTO World
VALUES(‘Afghanistan’,‘Asia’,652230,25500100,20343000);
INSERT INTO World
VALUES(‘Albania’,‘Europe’,28748,2831741,12960000);
INSERT INTO World
VALUES(‘Algeria’,‘Africa’,2381741,37100000,188681000);
INSERT INTO World
VALUES(‘Andorra’,‘Europe’,468,78115,3712000);
INSERT INTO World
VALUES(‘Angola’,‘Africa’,1246700,20609294,100990000);

查询目标:name,population,area
查询范围:World表
查询条件:面积超过300万平方公里 或 人口超过2500万

#打卡规则#

大家请在下方打卡表格处第二次作业链接。
本次任务需放上作业code及输出结果截图
学员微信群编号+姓名+CSDN博客或Github链接。
比如我是0号,打卡内容就是 000+杨煜+https://github.com/magicyang5000/

项目一
– 创建表
CREATE TABLE email (
ID INT NOT NULL PRIMARY KEY,
Email VARCHAR(255)
)
– 插入数据
INSERT INTO email VALUES(‘1’,‘a@b.com’);
INSERT INTO email VALUES(‘2’,‘c@d.com’);
INSERT INTO email VALUES(‘3’,‘a@b.com’);

项目二
– 创建表
CREATE TABLE World (
name VARCHAR(50) NOT NULL,
continent VARCHAR(50) NOT NULL,
area INT NOT NULL,
population INT NOT NULL,
gdp INT NOT NULL
);
– 插入数据
INSERT INTO World
VALUES(‘Afghanistan’,‘Asia’,652230,25500100,20343000);
INSERT INTO World
VALUES(‘Albania’,‘Europe’,28748,2831741,12960000);
INSERT INTO World
VALUES(‘Algeria’,‘Africa’,2381741,37100000,188681000);
INSERT INTO World
VALUES(‘Andorra’,‘Europe’,468,78115,3712000);
INSERT INTO World
VALUES(‘Angola’,‘Africa’,1246700,20609294,100990000);

【任务说明】
任务二是最最基础的查询语句,可以说学完本次课程,SQL语句就掌握了30%了。
语言规范非常重要,请大家认真仔细阅读。请记住,你写SQL需要考虑别人review时的心情。写的过于杂乱会分分钟造成暴力事件。
学习内容中函数部分,是让大家了解下MySQL可以怎样处理一些数据。了解些常用的,等实际中遇到了再回头查找详细就行。
祝大家学习开心。?

【任务二】打卡——by 003-Vamein相关推荐

  1. 阿古斯机器人_新卡评测 地精大战侏儒资料先睹为快

    本文由17173炉石传说专区特约作者[炉石助手丨小坷]原创提供,未经许可禁止转载 大家好,我是炉石助手丨小坷#5393.今天给大家带来地精大战侏儒拓展包中已出的新卡的评测,以及自己的一点个人见解,希望 ...

  2. 拿什么拯救你,我的面试之——从零打卡刷Leetcode(No.003)

    写在前边: 小詹一直觉得自己编程能力不强,想在网上刷题,又怕不能坚持.不知道有木有和小伙伴和小詹一样想找个人一起刷题呢?欢迎和小詹一起定期刷leetcode,每周一周五更新一题,每一题都吃透,欢迎一题 ...

  3. 随机生成关于银行卡号的字典(卡号以6102009开头,后面依次是001,002,...)

    题目要求: 1.随机生成100个卡号:卡号以6102009开头, 后面3位依次是 (001, 002, 003, 100), 2.生成关于银行卡号的字典, 默认每个卡号的初始密码为"redh ...

  4. 加油卡充值 数据接口

    加油卡充值,中石化,中石油加油卡充值,最低可享97.5折优惠,加油卡充值对中石油和中石化的卡都可以,中石油的卡是能使用任意充(任意金额都可以).中石化有任意充和卡充(固定面额)两种.. 详情:http ...

  5. 百度paddlepaddle七天打卡之青你实战

    心得 七天虽短,但是在知识迅速增加的今天显得十分必要.七天的课程总体来说,阶段性的进步让我们有机会在短时间内接触到先进的知识体系.这离不开百度paddlepaddle的努力,课程阶梯难度的设置效果很好 ...

  6. 达达php源码,达达房卡麻将二次开发VIP系统学习课程

    [↓↓↓资源简介↓↓↓] 1:幼麟棋牌官方学习课程!!!2:幼麟棋牌达达房卡麻将的creator + node.js基础技术课程;3:幼麟棋牌达达房卡麻将的客户端与服务器搭建与源码分析课;对于想学习棋 ...

  7. 百度paddlepaddle《青春有你2》技术打卡五天学习总结与创意赛参加

    1. 心得 这是我第一次参加百度打卡训练营,之前对python稍有一些了解,因为此前包括现在的研究生硕士阶段一直常用Matlab,但现今python同样作为主要编程软件,尤其在人工智能领域,我希望能多 ...

  8. 公交IC卡刷卡数据分析

    文章目录 背景 一.任务要求 二.使用步骤 1.引入库 2.导入数据 3.任务一 4.任务二 5.任务三 6.任务四 7.任务五 8.任务六 总结 背景 交通大数据是由交通运行管理直接产生的数据(包括 ...

  9. 蓝牙进阶之路 (003) - AT指令(转)

    一 . 一 般 命 令 1.AT+CGMI      给出模块厂商的标识. 2.AT+CGMM    获得模块标识.这个命令用来得到支持的频带(GSM 900,DCS 1800    或PCS 190 ...

  10. lol服务器维护一天,lol维护一天一夜,你就给我三胜经验补偿卡?

    原标题:lol维护一天一夜,你就给我三胜经验补偿卡? 各位萌宝们周三好呀! 禁足多日,最近终于可以到处出去转悠一下了,可是许久没有运动,这突然一动才发现,还是躺在沙发上比较舒服.而且外面也实在没有什么 ...

最新文章

  1. PHP一些十分严重的缺陷
  2. C++_类和动态内存分配2-改进后的String类
  3. Bluetooth GAP介绍
  4. 欢迎来到OpenGL的世界
  5. C++检查数字是否为2的幂的实现算法(附完整源码)
  6. 【Xamarin挖墙脚系列:使用Xamarin进行Hybrid应用开发】
  7. VK Cup 2017 - Round 2
  8. 在javascript中==和===的区别
  9. 如果白百何夫妻离婚了,房贷该谁来还?
  10. 原型模式——创建型模式
  11. linux通过I2C地址查看设备名称
  12. 使用本地计划任务定时关闭azure虚拟机
  13. 又延伸到socket去了。
  14. 更改Wamp下网站地址栏图标的显示
  15. ZT:神秘的通道——三焦经
  16. 多目标优化 MOP (三):遗传算法 SPEA2+SDE 2014
  17. 一脸懵逼学习oracle(图形化界面操作---》PLSQL图形化界面)
  18. 618投影仪怎么选?看看极米NEW Z6X、极米Z6X Pro与极米H3S
  19. 喝酒神器小程序源码+全新带特效/多种游戏/支持流量主
  20. 渲染效果图哪家好?2022最新实测(三)

热门文章

  1. 论文阅读:Seraph: Enabling Cross-Platform Security Analysis For EVM and WASM Smart Contracts
  2. 音频编码之aac编码原理
  3. echarts 实现温度计
  4. 疯狂管道鸟--纯JS小游戏
  5. windows 无法停止ics_Win10系统ICS服务启动后停止怎么办
  6. 在电脑上如何录制游戏
  7. springboot-高校医院体检系统
  8. 爬虫(七)通过Selenium爬取网易云音乐评论
  9. JavaScript:用JS函数隐藏浏览器地址栏 .
  10. “海纳百川”下载器的使用方法