美文网首页
DataWhale MySql Task1_2019-03-31

DataWhale MySql Task1_2019-03-31

作者: lala兔斯基 | 来源:发表于2019-03-31 12:12 被阅读0次

    DataWhale MySql Task1

    1.1 - MySQL 软件安装及数据库基础

    软件安装及服务器设置
    由于windows下安装MySQL总会出现两次失败,
    在Linux虚拟机和服务器安装会因为需要额外开一个软件或者联网并准备ssh客户端
    我选择利用Windows下Linux子系统(简称WSL)安装了MySQL服务端由于安装并不复杂,
    具体安装过程请见其他人的博客:
    安装过程:
        https://steemit.com/utopian-io/@blervin/install-mysql-on-windows-in-ubuntu
    问题解决:
        https://www.jianshu.com/p/fdfde7f66651
    
    数据库基础知识

    数据库定义

    生活中的各种信息总称为数据
    为了方便收集和使用这些数据,人们创造了数据库
    数据库是一种盛放有组织方式的数据集合的容器
    

    关系型数据库

    是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
    现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。
    就像收录文件时,你会对你的文件进行分类一样,
    你储存的数据会跟文件分类的标签对应,这样方便了管理
    

    二维表

    在关系模型中,数据结构表示为一个二维表
    数据在表中会呈现多种属性,也就是第一行的列名所展示的某列代表什么
    而第一列储存的顺序或者其他一般代表了一个独立的个体
    也就是说一行是一个独立的个体拥有多种属性共存
    

    上以描述
    

    上以描述
    

    主键

    主键是用于识别区分不同实体的标志,主键是唯一不重复的
    主键可以由多个列组成
    

    外键

    外键是一个表与另外的表(一个或多个)所关联的标志
    主键和外键是把多个表组织为一个有效的关系数据库的粘合剂
    
    MySQL数据库管理系统

    数据库

    #数据库系统中用来储存数据表集合的角色
    show databases;
    use database_name;
    create databases database_name;
    drop database database_name;
    

    数据表

    #数据库中用来储存各种特定类型数据实体的结构化清单
    show tables;
    
    create table table_name(
        column1 struct_type null/notnull,
        column2 sturct_type null/notnull
    );
    
    insert into table_name(column1,column2) values(value_of_column1,value_of_column2);
    select * from table;
    update table_name
    set coumn1 = update_value
    where column2 = column2_value;
    
    delete from table_name where column2 = column2_value;
    
    drop table table_name;
    

    视图

    #视图的使用是为了重用SQL语句,减少过多的书写代码
    create view view_of_table as
    select xxx1,xxx2 from table_name
    where xxx1 = xxx3 and xxx2 = xxx4 
    

    存储过程

    create procedure procedure_name(
        #我也写不出来了
    )
    

    1.2 - MySQL 基础 (一)- 查询语句

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

    创建 email表,并插入如下三行数据
    +----+---------+
    | Id | Email   |
    +----+---------+
    | 1  | a@b.com |
    | 2  | c@d.com |
    | 3  | a@b.com |
    +----+---------+
    
    编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。
    根据以上输入,你的查询应返回以下结果:
    +---------+
    | Email   |
    +---------+
    | a@b.com |
    +---------+
    说明:所有电子邮箱都是小写字母。
    
    select Email
    from email
    group by Email
    having count(Email)>1;
    

    项目二:超过5名学生的课(难度:简单)

    创建如下 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      |
    +--------------+-------------+--------------+
    
    select name,population,area
    from World
    where area > 3000000
       or (
         population > 25000000
             and gdp > 20000000
         );
    

    相关文章

      网友评论

          本文标题:DataWhale MySql Task1_2019-03-31

          本文链接:https://www.haomeiwen.com/subject/gmlybqtx.html