1. SQL相关学习

以下为在开源组织Datawhale开展的MySQL学习的记录

系列链接:

  • https://www.jianshu.com/p/e9187a4b7552
  • 1
  • 1

一: 1.MySQL软件安装及服务器设置

可以在windows和linux上安装, 安装的步骤详见 菜鸟教程

2.使用图形界面软件 Navicat for SQL

  • Navicat For SQL 下载地址 Navicat,
  • 破解下载地址, [Navicat patch] (https://github.com/DoubleLabyrinth/navicat-keygen/releases)
  • 破解操作步骤: 说明
    注: 建议使用正版。

3.数据库基础知识

a.数据库定义

1

存储数据的存储仓库,以结构化形式存储的系统。

b.关系型数据库

  • 关系型数据库, 是指采用关系模型来数组数据的数据库.
  • 关系模型指的就是二维表。
  • 关系型数据库的产品: Oracle、SQL Server、MySQL等

c.二维表

  • 二维表就是由行和列组成.

d.行

  • 表的行Row 是 一行的数据,别名叫记录Record.

e.列

  • 表的列Column 是一列的数据, 别名叫字段 Filed.

f.主键

  • 主建是为表中某个字段的值不能重复而设置的,一个数据表只能有一个主键,数据库底层使用该字段作为唯一索引,能快速检索数据。

g.外键

  • 外键是用于关联两个字段元素的,或者是关联两个表的不同字段。 一般的,表B的字段b作为外键,关联表A的字段a.

4. MySQL数据库管理系统

a.数据库

  • MySQL 是开源的关系型数据库管理系统

b.数据表

  • 见上面的 【二维表】

c.视图

  • 视图是基于 SQL 语句的结果集的可视化的表。
  • 视图包含行和列, 不是真实存在的

d.存储过程

  • 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。
  • 存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数、输出参数、返回单个或多个结果集以及返回值。
    v- 存储过程在创建时即在数据库服务器上
  • 例子:
    2

    具体的详见 MySQL官网文档

二: MySQL 基础 (一)查询语句

1. 查询语句 SELECT FROM

语法
select distinct * from email where name = {'value1'} limit {num} offset {bnum}

去重语句: distinct
前N个语句: limit {num}
limit 是限制返回行数的个数, offset是设置偏移量

2. 筛选语句 WHERE

语法
select distinct * from email where name = {'value1'} limit {num}

运算符 : name = {'value1'}
还有其他运算符, >, <, =, in , not in 等等

3.分组语句 GROUP BY

语法
select distinct * from email group by name having by count(*) > 1

HAVING子句, 一般与group by 一起使用, 用于过滤使用

4. 排序语句 ORDER BY

语法
select * from email order by id asc| desc

正序为asc、逆序为desc

5. SQL注释

6. SQL代码规范

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

作业

项目一:查找重复的电子邮箱(难度:简单)

创建 email表,并插入如下三行数据

Id Email
1 [email protected]
2 [email protected]
3 [email protected]

编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。
根据以上输入,你的查询应返回以下结果:

Email
[email protected]

说明:所有电子邮箱都是小写字母。

简答:

在这里插入图片描述

结果:
在这里插入图片描述


项目二:查找大国(难度:简单)

创建如下 World 表

name continent area population gdp
Afghanistan Asia 652230 25500100 20343000
Albania Europe 28748 2831741 12960000
Algeria Africa 2381741 37100000 188681000
Andorra Europe 468 78115 3712000
Angola Africa 1246700 20609294 100990000

如果一个国家的面积超过300万平方公里,或者(人口超过2500万并且gdp超过2000万),那么这个国家就是大国家。
编写一个SQL查询,输出表中所有大国家的名称、人口和面积。
例如,根据上表,我们应该输出:

name population area
Afghanistan 25500100 652230
Algeria 37100000 2381741

简答:

在这里插入图片描述

结果:
在这里插入图片描述

参考资料
[SQL 必知必会] https://u18036366.pipipan.com/fs/18036366-300877816
[MySQL 教程] http://www.runoob.com/smysql/mysql-tutorial.html
额外的参考资料:
虚拟机安装Linux https://blog.csdn.net/yang5726685/article/details/78635388
Windows 10下 MySQL https://cloud.tencent.com/developer/article/1010608
Windows 安装 MySQL 常见问题 https://blog.csdn.net/qq_40942329/article/details/79125366
1.2 - MySQL 基础 (一)查询语句
导入示例数据库,教程 https://www.yiibai.com/mysql/how-to-load-sample-database-into-mysql-database-server.html

引用

  1. https://blog.csdn.net/huang_yx/article/details/80221259
  2. https://www.cnblogs.com/suncan0/p/4735129.html
  3. http://www.runoob.com/mysql/mysql-tutorial.html
  4. https://dev.mysql.com/doc/refman/8.0/en/introduction.html
  5. https://www.cnblogs.com/xiangzhong/p/5038338.html
  6. https://www.cnblogs.com/mark-chan/p/5384139.html

PS: 若你觉得可以、还行、过得去、甚至不太差的话,可以“关注”一下,就此谢过!

你可能感兴趣的:(1. SQL相关学习)