博客
关于我
MySQL基础部分学习笔记
阅读量:221 次
发布时间:2019-03-01

本文共 2771 字,大约阅读时间需要 9 分钟。

数据库,简单来说,就是一个用来存储数据的仓库。它就像一个永远开着的文件柜,能够让你随时存取和管理各种类型的数据。理解数据库的核心概念是理解它的存储方式和管理方式。


数据存放

数据库的数据存放有几个阶段可以追溯:

  • 内存存放:在程序运行时,数据会被存放在内存中。这种方式的优点是速度快,但缺点是数据一旦程序结束,就会丢失。

  • 文件存放:将数据持久化存储到文件中,比如用.txt.xml文件。这种方式的优点是数据不会丢失,但存在一些问题:

    • 不安全:文件容易被篡改或删除。
    • 不方便:难以在文件中插入、删除数据。

    尽管如此,文件存储方式仍有其应用场景,比如配置文件管理。


  • 数据库的产生

    数据库的核心功能是支持CRUD(Create, Read, Update, Delete),其中最难的就是“查找”功能。数据库通过不同的模型来组织数据:

  • 层次模型

    • 优点:层次结构清晰,便于管理。
    • 缺点
      • 查询效率低下,因为需要通过多个层次查找数据。
      • 数据不完整,一个表可能只保存部分信息。
  • 网状模型

    • 优点:解决了层次模型的复杂性问题,数据完整性高。
    • 缺点:无法有效解决导航问题,且文件重复难以管理。
  • 关系型模型

    • 优点
      • 数据完整性高,层次性清晰。
      • 通过主键外键实现数据关联,解决了导航问题。
    • 核心思想:数据之间的关系基于共性,每张表都有自己的主键,但又能通过外键找到关联的其他表。

  • 安装数据库

    安装数据库需要遵循以下步骤:

  • 选择数据库版本

    • 根据项目需求选择合适的版本。常用版本有:
      • MySQL 5.7
      • MySQL 8.0
  • 下载数据库

    • 访问MySQL官方下载页面,选择合适的安装包。
    • 下载完成后,可以通过迅雷等工具加速下载。
  • 安装数据库

    • 选择安装类型,通常选择“Server Only”。
    • 按照指引一步步完成安装,一路点击“Next”即可。
    • 安装完成后,将数据库添加到环境变量中。
  • 设置权限

    • 在命令行中使用以下命令启动数据库:
      net start mysql
    • 登录数据库时,建议避免直接输入密码,改用:
      mysql -u root -p > Enter Password:*****

  • MySQL的作用

    MySQL 是一种关系型数据库管理系统(RDBMS),主要用于C/S架构的应用开发。它的主要功能包括:

  • 服务器端:提供数据库服务,接受客户端的连接请求。
  • 客户端:通过命令行工具(如mysql)操作数据库。
  • MySQL 的特点:

    • 开源:免费使用,社区活跃。
    • 稳定性强:支持大规模数据存储。
    • 灵活性高:支持多种数据类型和存储引擎。

    库的基本操作

  • 查看所有数据库

    SHOW DATABASES;
  • 创建数据库

    CREATE DATABASE IF NOT EXISTS `student` CHARSET=utf8;
    • 通常建议使用IF NOT EXISTS检查数据库是否存在。
    • 设置字符集为utf8以支持多语言字符。
  • 删除数据库

    DROP DATABASE IF EXISTS `student`;
  • 修改数据库字符集

    ALTER DATABASE `student` CHARSET=gbk;

  • 表的基本操作

  • 查看库内表

    USE student;SHOW TABLES;
  • 创建表

    CREATE TABLE IF NOT EXISTS teacher (    id INT AUTO_INCREMENT PRIMARY KEY COMMENT '主键id',    name VARCHAR(30) NOT NULL COMMENT '老师姓名',    phone VARCHAR(20) COMMENT '电话号码',    address VARCHAR(100) DEFAULT '暂时未知' COMMENT '地址') ENGINE=InnoDB;
    • 表字段的注释和默认值可以通过COMMENT添加。
    • id作为PRIMARY KEYAUTO_INCREMENT自动编号。
    • ENGINE=InnoDB选择存储引擎。
  • 删除表

    DROP TABLE IF EXISTS `student`;
  • 修改表结构

    • 添加字段
      ALTER TABLE student ADD phone VARCHAR(20) AFTER name;
    • 删除字段
      ALTER TABLE student DROP phone;
    • 修改字段属性
      ALTER TABLE student CHANGE phone tel_phone INT(11);
  • 重命名表

    ALTER TABLE student RENAME TO students;

  • 数据的基本操作

  • 插入数据

    • 单条数据
      INSERT INTO teacher (name, phone, address) VALUES('王帅真', '18359730121', '嘉园路');
    • 多条数据
      INSERT INTO teacher VALUES(NULL, 'Tom', NULL, DEFAULT), (NULL, 'Jack', NULL, DEFAULT);
  • 删除数据

    • 按条件删除
      DELETE FROM teacher WHERE id=2;
    • 清空表
      TRUNCATE TABLE student;
  • 更新数据

    UPDATE teacher SET name='Jack' WHERE id=1;
  • 查询数据

    • 查询全部数据
      SELECT * FROM teacher;
    • 指定字段查询
      SELECT name FROM teacher WHERE id=1;

  • SQL 语句分类

    • DDL(数据定义语言):用来创建、修改和删除数据库结构。

      • 示例:CREATE TABLEALTER TABLEDROP TABLE
    • DML(数据操作语言):用来插入、更新、删除数据。

      • 示例:INSERTUPDATEDELETESELECT

    数据类型

    数据库支持多种数据类型,常见的有:

  • 数值类型

    • TINYINTSMALLINTMEDIUMINTINTBIGINT
    • FLOATDOUBLEDECIMAL(用于精确金额,推荐使用)
  • 字符串类型

    • CHAR(定长字符串)
    • VARCHAR(变长字符串)
    • TEXT(长文本)
  • 日期和时间类型

    • DATETIMEYEARDATETIMETIMESTAMP
  • 布尔类型

    • BOOLEAN(true/false)
  • 枚举类型

    • 用于存储有限的取值,避免非法输入。

  • 总结

    数据库是现代应用开发的核心技术之一。通过合理组织数据,数据库能够高效存储和管理大量信息,为企业提供强大的数据处理能力。理解数据库的工作原理和使用方法,对于开发高效的后台系统至关重要。

    转载地址:http://cobv.baihongyu.com/

    你可能感兴趣的文章
    netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
    查看>>
    Netty心跳检测机制
    查看>>
    Netty核心模块组件
    查看>>
    Netty框架内的宝藏:ByteBuf
    查看>>
    Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
    查看>>
    Netty源码—2.Reactor线程模型一
    查看>>
    Netty源码—3.Reactor线程模型三
    查看>>
    Netty源码—4.客户端接入流程一
    查看>>
    Netty源码—4.客户端接入流程二
    查看>>
    Netty源码—5.Pipeline和Handler一
    查看>>
    Netty源码—5.Pipeline和Handler二
    查看>>
    Netty源码—6.ByteBuf原理一
    查看>>
    Netty源码—6.ByteBuf原理二
    查看>>
    Netty源码—7.ByteBuf原理三
    查看>>
    Netty源码—7.ByteBuf原理四
    查看>>
    Netty源码—8.编解码原理一
    查看>>
    Netty源码—8.编解码原理二
    查看>>
    Netty源码解读
    查看>>
    Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
    查看>>
    Netty相关
    查看>>