• MySQL必知必会-笔记


    MySQL必知必会-笔记

    在这里插入图片描述

    Cha1-数据库及SQL基本概念

    • 数据库:保存有组织的数据的容器,通常是一个文件或一组文件

    • 表:某种特定类型数据的结构化清单

    • 模式(schema):关于数据库和表的布局及特性的信息

    • 列:表中的一个字段,所有表都是由一个或多个列组成的

    • 数据类型:所容许的数据的类型。每个表都有相应的数据类型,它限制(或容许)该列中存储的数据。

    • 行:表中的一个记录

    • 主键:一列(或一组列),其值能够唯一区分表中每个行

    • image-20220727150018490

    • SQL:Structured Query Language 结构化查询语言

    • SQL是一种专门用来与数据库通信的语言

    Cha2-MySQL

    • MySQL是一种DBMS(数据库管理系统),是一种数据库软件
    • DBMS分为两类
      • 基于共享文件系统的DBMS
      • 基于客户机-服务器的DBMS
    • MySQL是一种基于客户机-服务器的数据库
    • 我使用DataGrip进行编写SQL并查询结果

    Cha3-使用MySQL

    • 本机安装完MySQL后,想要连接需要以下信息:
      • 主机名(计算机名)——如果连接到本地MySQL服务器,为localhost;
      • 端口(如果使用默认端口3306之外的端口)
      • 一个合法的用户名;
      • 用户密码
      • MySQL命令以 ;结尾

    USE语句

    • USE NAME; 选择数据库
    • image-20220727152445044

    SHOW语句

    • SHOW DATABASES 返回可用数据库的一个列表
    • image-20220727151443679
    • SHOW TABLES; 返回当前选择的数据库内可用表的列表
    • image-20220727151536211
    • SHOW COLUMNS FROM customers; 显示来自数据表customers中的表列
    • image-20220727151717486

    SHOW COLUMNS 要求给出一个表名(这个例子中的 FROM customers),它对每个字段返回一行,行中包含字段名、数据 类型、是否允许NULL、键信息、默认值以及其他信息(如字段cust_id 的auto_increment)

    • SHOW STATUS,用于显示广泛的服务器状态信息;
    • SHOW CREATE DATABASE和SHOW CREATE TABLE,分别用来显示创 建特定数据库或表的MySQL语句
    • SHOW GRANTS,用来显示授予用户(所有用户或特定用户)的安 全权限;
    • SHOW ERRORSSHOW WARNINGS,用来显示服务器错误或警告消息。

    Cha4-检索数据

    使用SELECT语句从表中检索一个或多个数据列

    为了使用SELECT语句检索表数据,必须至少给出两条信息

    1、想选择什么

    2、从什么地方选择

    检索单个列

    • SELECT prod_name FROM products; 从products表中检索一个名为prod_name的列
    • 所需的列名在SELECT关键字之后给出,FROM 关键字指出从其中检索数据的表名。
    • image-20220727153025830

    检索单个列

    要想从一个表中检索多个列,使用相同的SELECT语句。唯一的不同 是必须在SELECT关键字后给出多个列名,列名之间必须以逗号分隔。

    • SELECT prod_id,prod_name,prod_price FROM products;
    • image-20220727153227597

    检索所有列

    除了指定所需的列外(如上所述,一个或多个列),SELECT语句还可 以检索所有的列而不必逐个列出它们。这可以通过在实际列名的位置使 用星号(*)通配符来达到,如下所示

    • SELECT * FROM products;
    • 如果给定一个通配符(*),则返回表中所有列。
    • 使用通配符有一个大优点。由于不明确指定列 名(因为星号检索每个列),所以能检索出名字未知的列。
    • image-20220727153425725

    检索不同的行

    正如所见,SELECT返回所有匹配的行。但是,如果你不想要每个值 每次都出现,怎么办?例如,假如你想得出products表中产品的所有供 应商ID

    • SELECT vend_id FROM products;

    • image-20220727153543684

    • SELECT语句返回14行(即使表中只有4个供应商),因为products表 中列出了14个产品。那么,如何检索出有不同值的列表呢

    • 使用DISTINCT关键字 此关键字指示MySQL只返回不同的值

    • DISTINCT关键字须放在列名的前面

    • SELECT DISTINCT vend_id FROM products;

    • 只返回不同(唯一)的vend_id行

    • image-20220727153646459

    DISTINCT关键字应用于所有列而 不仅是前置它的列。

    如果给出SELECT DISTINCT vend_id, prod_price,除非指定的两个列都不同,否则所有行都将被 检索出来

    image-20220727154026276

    image-20220727153924638

    限制结果

    SELECT语句返回所有匹配的行 它们可能是指定表中的每个行

    为了返回第一行或者前几行 可以使用 LIMIT子句

    • SELECT prod_name FROM products LIMIT 5;

    • 此语句使用SELECT语句检索单个列。LIMIT 5指示MySQL返回 不多于5行。

    • image-20220727154301170

    • 为得出下5行 可指定检索的开始行及行数 类似数组

    • SELECT prod_name FROM products LIMIT 5,5;

    • LIMIT 5, 5指示MySQL返回从行5开始的5行。第一个数为开始 位置,第二个数为要检索的行数。

    • image-20220727154355826

    带一个值的LIMIT总是从第一行开始,给出的数为返回的行数。

    带两个值的LIMIT可以指定从行号为第一个值的位置开始

    • 检索出来的第一行为行0而不是行1。因此,LIMIT 1, 1 将检索出第二行而不是第一行。

    • 这点类似数组

    • LIMIT 4 OFFSET 3意为从行3开始取4行,就像LIMIT 3, 4一样

    使用完全限定的表名

    • 表名也可以是完全限定的 避免同名误会
      检索出来的第一行为行0而不是行1。因此,LIMIT 1, 1 将检索出第二行而不是第一行。

    • 这点类似数组

    • LIMIT 4 OFFSET 3意为从行3开始取4行,就像LIMIT 3, 4一样

    使用完全限定的表名

    • 表名也可以是完全限定的 避免同名误会
    • image-20220727154716191
  • 相关阅读:
    用图说话——流程图进阶
    了解方法重写
    选举
    7-69 猴子选大王
    latex入门笔记
    RK3588平台产测之ArmSoM-W3 DDR带宽监控
    带风扇工业电脑行业分析:预计2030年全球市场规模将达到45.8亿美元
    【EI会议征稿】第三届信号处理与通信技术国际学术会议(SPCT 2023)
    IDEA常用插件合集
    目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机(附代码)
  • 原文地址:https://blog.csdn.net/EASYGOING45/article/details/126017014