• MySQL复习笔记记录


    MySQL学习知识点总结

    利用最近几天时间对mysql进行了巩固复习,跟着视频老师学习感觉又获得了一些新的知识,在这里记录一下复习的知识点。

    MySQL服务器 可以理解为是一种软件,不同的服务器负责调用不同的文件类型,而mysql服务器就是处理表文件的一种软件

    一.表文件、数据库、数据库服务器

    1.1表文件

    1)在mysql数据中,表文件是以特殊的后缀结尾的文件,如在mysql5.5版本都是以 .frm结尾的一种文件;

    2)存在于mysql服务器计算机的硬盘上;

    3)以数据行的形式进行数据存储的文件;

    1.2表文件结构

    表文件记录的内容就是表的结构和数据行内容

    1.3数据库

    (student.frm    teacher.frm) db1

    (employ.frm    department.frm) db2

    在计算机硬盘上是以文件夹的形式存储表文件的,将存放表文件的文件夹称之为数据库

    1.4数据库服务器

    一种专门对表文件进行调用和管理的软件

    二.SQL命令

    •  Struct Query Language 结构化查询编程语言

    • 用户通过SQL语言发请求,用于调用表文件

    三.数据库服务器分类

    3.1 关系型数据库服务器:

      管理的表文件彼此之间往往存在隶属关系,可以完整描述一段数据,但查询时候由于设计的数据较多,因此查询速度并不理想

    3.2 非关系性数据库服务器:一般多map形式存储

      管理的文件都相对独立,无法描述一段完成数据,但由于每次查询数据较少,因此查询数据非常快

    四.关系型数据库服务器分类:

    1.甲骨文公司:Oracle  MySQL

    2.微软公司:SqlServer

    五.MySQL服务器的相关命令

    1.登录:进入mysql的bin文件夹,进入dos窗口:

    mysql -u root -p(回车) 密码:

    2.查询所有数据库:show database;

    创建数据库:create database dbname;

    删除数据库:drop database dbname;

    3.表文件管理:

    查看指定数据库下的所有表文件名:use dbname;  show tables;

    在指定数据库下创建表文件:

      use dbname;
      create table t_name{
        字段名    类型,
        字段名    类型,  
      };
      drop table t_name;
      alter table t_name add 字段(类型);
      alter table t_name drop 字段;

    4.表文件数据行管理

    增删改查

    insert into t_name (字段1,字段2,字段3) value('值1','值2','值3');
    
    delete from t_name;
    delete from t_name where 条件;
    
    update t_name set 字段1 = '值1', 字段2 = '值2';
    update t_name set 字段1 = '值1' where 条件;
    
    select * from t_name;

    5.多条数据插入

    按照字段顺序插入多条数据

    insert into t_name (字段1,字段2,字段3)
    values
    ('值1','值2','值3'),
    ('值a','值b','值c');

    简化如果每个表字段都赋值,插入语句就不需要指定字段,插入顺序对应表字段顺序

    insert into t_name
    values
    ('值1','值2','值3'),
    ('值a','值b','值c');

    数据行复制命令,A、B两表字段结构完全一致,将A表的行数据复制到B表

    insert into 表B select * from 表A;

    6.表文件备份

    create table 表Abak select * from 表A;

    七个查询命令

    Select、 from、 where、 group by、having、order by、limit

    七个SQL命令的执行顺序

    From -> where -> group by -> having -> select -> order by -> limit

    Select ename, job, sal from employee;

    1. From永远是第一个执行,相当于一个读取流,将硬盘上的表文件加载到内存中,生成一个临时表1,以供以后查询使用,临时表名称与表文件名称相同
    2. Select是在from之后执行的,因此其操作的是临时表1,筛选的结果组成一个新的临时表2,以供后续操作

    临时表

    由查询命令在执行时,在内存中生成的表文件

    临时表的作用:

    每一个查询命令在执行时,实际上都是在操作由上一个命令生成的临时表里的数据;

    临时表生命周期:

    在当前查询命令执行完毕之后,MySQL服务器自动将上一个命令生成的临时表存内存中销毁,导致用户最终看到的就是最后一个查询命令执行后生成的临时表

    l  七个查询命令中只有from不需要操作临时表,from只负责将硬盘上的表文件加载到内存

    l  只有group by 命令在执行完毕后才有机会在内存中生成多个临时表,其他出from外的5个命令在执行完毕之后,只在内存中生成一个临时表;

    l  只有having命令在执行完毕后,不会生成新的临时表,只负责将group by生成的临时表中不满足条件的临时表从内存中进行删除

    Where命令

    执行顺序:from->where->select

    作用:循环遍历当前临时表所有数据行,每得到一个数据行,根据where后的条件对数据行的信息进行判断是否需要被定位,循环完毕之后将所有定位的数据行取出 生成一个临时表

    Between…and…  < = >   ( >= and <=)

    Mysql 中null不表示空,而是表述了一个不确定的值,因而无法进行任何计算

     Name = null (错)

     Name is null (对)

    Ps:

    查询名字中第三个字母是A的人员信息

    Select * from employee where ename like ‘_ _A%’;# 一个下划线表示站位一个字符

     

     

    聚合函数

    Max、min、sum、avg、count

    Group by

    首先根据分组字段的种类将临时表进行分类,然后将相同的特征的数据行取出来保存到一个新的临时表

    Order by

    Order by对select生成的临时表数据进行排列,其使用的排序字段只能是来自于select生成的临时表

    Limit

    Limit a,b

    A:起始位置

    B:从起始行开始取得数据行数

    Mysql服务器中表文件字段位置从1开始

                         表文件数据行位置从0开始

    Union 和 union all

    Union会自动将两个临时表中内容相同的数据行去重,如果不想去重就使用union all

    Datetime 和 timestamp

    Timestamp取值会按照时区进行换算

  • 相关阅读:
    Colmap在centos7下的编译
    图像搜索三-局部特征SIFT
    docker的基本概念
    图像搜索(二)-全局特征
    图像搜索(一)-好特征
    Android图片生成器
    Android Studio Prower Save Mode问题
    finished with non-zero exit value 1
    安装pod程序
    小米刷入Recovery
  • 原文地址:https://www.cnblogs.com/EtherealWind/p/14340871.html
Copyright © 2020-2023  润新知