从零开始学习MySQL1---MySQL基础

时间:2023-03-09 19:18:44
从零开始学习MySQL1---MySQL基础
  • 数据库基础
    • 数据库是一个长期存储在计算机内的、有组织的、有共享的、统一管理的、数据集合。它是一个按数据结构来存储和管理数据的计算机软件系统。数据库包含两层含义:保管数据的仓库,以及数据管理的方法和技术。
    • 数据库表示一系列二维数组的集合,用来存储数据和操作数据的逻辑结构。它由纵向的列和横向的行组成,行被称为记录,是组织数据的单位;列被称为字段,每一列表示记录的一个属性,都有相关的描述信息,如数据类型,数据宽度等。
    • 数据类型决定了数据在计算机中的存储格式,代表不同的信息类型。常用的数据类型有:整数数据类型、浮点数数据类型、精确小数类型、二进制数据类型、日期/时间数据类型、字符串数据类型。
    • 主键又称为主码,用于唯一的标识表中的每一条记录。(比如学号可以作为主键,名字就不可以,因为会有重名)
  • 数据库技术构成
    • 数据库系统
      • 数据库:用于存储数据的地方。一个数据库可能包含许多文件,一个数据库系统通常包含许多数据库
      • 数据库管理系统(DataBase Management System):用于管理数据库的软件。DBMS能定义数据存储结构,提供数据的操作机制,维护数据库的安全性、完整性和可靠性。
      • 数据库应用程序:为了提高数据库系统的处理能力所使用的管理数据库的软件补充。可以满足对数据管理的更高要求,可以使数据管理过程更加友好。
    • SQL语言(Structured Query Languate结构化查询语言)
      • 数据定义语言: DROP、CREAT、ALTER等语句
      • 数据操作语言: INSERT(插入)、UPDATE(修改)、DELETE(删除)语句
      • 数据查询语言: SELECT语句
      • 数据控制语言: GRANT 、REVOKE、COMMIT 、ROLLBACK等语句
    • 数据库访问接口
      • 开放式数据互连(Open Database Connectivity)为访问不同的SQL数据库提供了一个共同的接口
      • java数据库连接(java Daa Base Connectivity) 用于java应用程序连接数据库的标准方法
      • ADO.NET 是微软在.NET框架下开发设计的一组用于和数据源进行交互的面向对象类库
      • PDO 为PHP方位数据库定义了一个轻量级,一致性的接口,它提供了一个数据访问抽象层
  • 什么是MySQL 
    • 客户端-服务器软件
      • 服务器是整个应用系统资源的存储和管理中心,多个客户端则各自处理相应的功能,共同实现完整的应用。在客户端/服务器结构中,客户端用户的请求被传送到数据库服务器,数据库服务器进行处理后,将结果返回给用户,从而减少网络数据传输量。
  • MySQL版本(截止目前,最新的是5.6.21)
    • 三个数字代表不同的意义
      • (5)主版本号,描述了文件格式,所有的版本5的发行版都有相同的文件格式
      • (6)发行级别,主版本号和发行级别一起构成了发行序列号
      • (21)在此发行些列的版本号
    • 社区版完全免费,但是官方不提供技术支持。比较适合初学者。
    • 对于一些较老的版本,官方将不提供技术支持
  • MySQL优势
    • 速度比较快
    • 对于个人用户免费
    • 复杂度低,容易学习
    • 能在众多系统平台(Windows、Linux、 Unix、Mac OS)上工作,可移植性强
    • 提供了用于C、Java、PHP、 Python 等语言的API
    • 支持查询语言
    • 十分灵活和安全的权限和密码系统,允许基于主机的验证
    • 由于MySQL是网络化的,因此可以在因特网上的任何地方访问,提高数据共享的效率。
  • MySQL 5.6新功能
    • 子查询最佳化
    • 强化Optimizer Diagnostics功能
    • 通过强化InnoDB储存引擎
    • 大幅度提升可用性
    • 新增ICP 和BKA, 提升特定查询量高达280倍
    • InnoDB全文检索功能,开发人员可以在InnoDB窗体上简历全文索引功能,以呈现文字搜索结果,加快搜寻单字和语句。
    • 自我修复复制丛集
    • 高效能复制丛集
    • 时间延迟复制
    • 强化的 PERFROMANCE_SCHEMA
  • MySQL 工具
    • MySQL命令行实用程序
      • 服务器端实用工具程序
        • mysqld:SQL 后台程序,即MySQL服务器进程。该程序运行之后,客户端才能通过连接服务器来访问数据库。
        • mysqld_safe:服务器启动脚本。增加了一些安全特性,比如,当出现错误时重启服务并向错误日志文件写入运行时间信息
        • mysql.server:服务器启动脚本,该脚本用于使用包含特定级别的、运行启动服务的脚本的、运行目录的系统。它调用mysqld_safe来启动服务器
        • mysqld_multi:服务器启动脚本。可以启动或停止系统上安装的多个服务器。
        • myisamchk:用来描述、检查、优化和维护MyISAM表的实用工具。
        • mysqlbug:MySQL缺陷脚本,它可以用来向MysQL邮件系统发送缺陷报告。
        • mysql_install_db:该脚本用默认权限创建MySQL授权表,通常只是在系统上首次安装MySQL时执行一次
      • 客户端实用工具程序
        • myisampack:压缩MyISAM表以产生更小的只读表的一个工具。
        • mysql:交互式输入SQL语句或从文件以批处理模式执行它们的命令行工具。
        • mysalaccess:检查访问主机名、用户名、数据库组合的权限的脚本
        • mysqladmin:执行管理操作的客户程序
        • mysqlbinlog:从二进制日志读取语句的工具
        • mysqlbinlog:检查、修复、分析以及优化表的表维护客户程序
        • mysqldump:将MySQL数据库转储到一个文件的客户程序
        • mysqlhotcopy:当服务器在运行时,快速备份MyISAM或ISAM的工具
        • mysql import:使用LOAD DATA INFILE 将文件导入相关表的客户程序
        • mysqlshow: 显示数据库、表、列以及索引相关信息的客户程序
        • perror:显示系统或MySQL错误代码含义的工具
    • MySQL Workbench 是下一代可视化数据库设计软件,为数据库管理员和开发人员提供了一整套可视化数据库操作环境、
      • 数据库设计和模型建立
      • SQL开发
      • 数据库管理