• Day1 数据分析 关系数据库和MySQL【中级】


    数据分析 关系数据库和MySQL

    关系数据库概述

    1. 为什么要使用数据库

    • 数据持久化 —— 将数据从内存转移到硬盘(长久保存数据的储存介质)
    • 数据库(database) —— 存储数据,管理数据

    2. 数据库的类型

    • 关系(型)数据库
    • 非关系型数据库 —> NoSQL数据库 —> No SQL —> No, SQL —> Not Only SQL
      • KV数据库
        • 文档数据库
          • 列族数据库
          • 图数据库
    关系数据库的特点
    1. 理论基础:关系模型 - 关系代数 - 关系运算 - 谓词逻辑
    2. 具体表象:用二维表组织数据
    • 行(row):记录(record) - 元组(tuple)
    • 列(column):字段(field) - 属性(attribute)
    • 主键(primary key)
    • 外键(foreign key)
    1. 编程语言:SQL - 结构化查询语言

    3. 关系数据库产品

    ~ Oracle / MySQL / DB2 / SQLServer / PostgreSQL / MariaDB
    
    ~ MySQL
        - reliable / mature / open-source
        - 中小型网站开发的黄金组合 - LAMP = Linux + Apache + MySQL + PHP
    
    • 1
    • 2
    • 3
    • 4
    • 5

    Structured Query Language - 结构化查询语言

    • 数据定义语言(DDL)- create 创建 / drop 删除 / alter 修改 / rename / truncate
    • 数据操作语言(DML)- insert 插入 / delete 删除 / update 更新 / select选择
    • 数据控制语言(DCL)- grant授权 / revoke召回
    • 事务控制语言(TCL)- start transaction开启事物环境 / commit提交 / rollback回滚

    中小型网站开发的黄金组合
    LAMP = Linux + Apache + MySQL + PHP

    4. MySQL命令行

    显示所有数据库:show databases;
    显示数据库下所有表:show tables;
    显示所有的字符集:show charset;

    5. 结构化查询语言(SQL)

    ~ DDL - Data Definition Language - 数据定义语言 - create / drop / alter
    
    Unicode ---> utf-8 / utf-16 / utf-32
    'a' ---> 1字节
    '骆' ---> 3字节
    '' ---> emoji ---> 4字节
    
    utf8mb4 - 最大4字节的utf-8编码 - MySQL8默认
    
    -- 如果存在名为school的数据库就删除它
    drop database if exists school;
    
    -- 创建名为school的数据库并指定默认的字符集
    create database school default charset utf8mb4;
    
    -- 切换数据库
    use school;
    
    -- 创建二维表(comment表示注释)
    create table tb_student
    (
        stu_id integer not null comment '学号', 
        stu_name varchar(20) not null comment '姓名', 
        stu_gender boolean not null default 1 comment '性别', 
        stu_birth date default '2000-1-1' comment '出生日期',
        primary key (stu_id)
    ) engine=innodb comment '学生表';
    
    -- 删除表
    drop table if exists tb_student;
    
    -- 修改表添加列
    alter table tb_student add column stu_addr varchar(200) default '' comment '家庭住址';
    alter table tb_student add column stu_tel varchar(20) not null comment '联系电话';
    
    -- 修改表删除列
    alter table tb_student drop column stu_tel;
    
    -- 修改表修改列
    alter table tb_student modify column stu_gender char(1) default '男' comment '性别';
    alter table tb_student change column stu_gender stu_sex char(1) not null default 'M' comment '性别';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    6. 数据类型

    ~ help data types; / ? data types;
    ~ 整数
        - bigint(64bit ---> 8byte ---> -2^63 ~ 2^63-1)---> bigint unsigned(0 ~ 2^64-1)
        - integer / int (32bit ---> 4byte ---> -2^31 ~ 2^31-1)---> int unsigned(0 ~ 2^32-1)
        - smallint(16bit ---> 2byte ---> -32768 ~ 32767)---> smallint unsigned
        - tinyint (8bit ---> 1byte ---> -128 ~ 127) ---> tinyint unsigned 
    ~ 小数
        - float / double ---> 不推荐使用
        - decimal ---> decimal(10, 2)
    ~ 字符串 ---> 底层都是边长编码
        - char
        - varchar ---> varchar(20) ---> 65535 / 16383
        - longtext / longblob ---> 4G ---> 不推荐使用 ---> 用字符串保存文件路径即可
    ~ 日期时间
        - date
        - time
        - datetime
        - timestamp ---> 不推荐使用 ---> 底层是一个整数 ---> 2038年1月19日3时14分07秒
    ~ JSON
        - json数组
        - json对象
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    7. 高级文本编辑工具

    ~ Visual Studio Code
    ~ Sublime
    ~ Atom
    ~ Textmate
    ~ Notepad++
    ~ Editplus
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    VScode中快速删除注释、快速删除空行
    Elastic基本操作
    发现它,抓住它
    commons-io
    基于Java+微信小程序实现《校园水电费管理平台》
    关于在网上拉取项目,yarn后使用不了的,解决办法
    软件架构风格
    Vue2【webpack 的基本使用、webpack 中的插件、webpack 中的 loader、打包发布、Source Map】
    类型体系与基本数据类型(第二节)
    数瑞Cookie混淆是如何工作的
  • 原文地址:https://blog.csdn.net/qq_67780151/article/details/126585216