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

发布于:2023-01-04 ⋅ 阅读:(353) ⋅ 点赞:(0)

Day1 数据分析 关系数据库和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

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;

-- 创建二维表
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 '性别';

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对象

7. 高级文本编辑工具

~ Visual Studio Code
~ Sublime
~ Atom
~ Textmate
~ Notepad++
~ Editplus
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到