文章目录

  • 数据库
    • 数据库管理系统(DBMS)的种类
    • 数据库的结构
    • 什么是SQL
  • MySQL
    • SQL语句 | 种类
    • SQL 的基本书写规则
    • 存储引擎
  • 参考与总结

全文约 3235 字,预计阅读时长: 9分钟


数据库

存储数据用文件就可以了,为什么还要弄个数据库?

  • 文件保存数据有以下几个缺点:

    • 文件的安全性问题
    • 文件不利于数据查询和管理
    • 文件不利于存储海量数据
    • 文件在程序中控制不方便

为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,按照数据结构来组织、存储和管理数据的仓库(磁盘和内存)它能更有效的管理数据。用来管理数据库的计算机系统称为数据库管理系统(Database Management System,DBMS)。

为什么要使用专用系统(DBMS)来管理数据呢?

  • 无法多人共享数据
  • 无法提供操作大量数据所需的格式
  • 实现读写自动化需要编程能力
  • 无法应对突发事故
  • DBMS 可以克服这些不足,实现多个用户同时安全简单地操作大量数据。这也是我们一定要使用DBMS 的原因。为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据

数据库管理系统(DBMS)的种类

DBMS 主要通过数据的保存格式(数据库的种类)来进行分类,现阶段主要有以下5 种类型。

  1. 层次数据库(Hierarchical Database,HDB)。最古老的数据库之一,它把数据通过层次结构(树形结构)的方式表现出来。层次数据库曾经是数据库的主流,但随着关系数据库的出现和普及,现在已经很少使用了。

  2. 关系数据库(Relational Database,RDB),关系数据库是现在应用最广泛的数据库。关系数据库在1969 年诞生,可谓历史悠久。和Excel 工作表一样,它也采用由行和列组成的二维表来管理数据,所以简单易懂。同时,它还使用专门的SQL(Structured Query Language,结构化查询语言)对数据进行操作。这种表格的DBMS 称为关系数据库管理系统(Relational Database Management System,RDBMS)。

比较具有代表性的RDBMS 有如下5 种。

  • Oracle Database:甲骨文公司的RDBMS(通常简称为Oracle)
  • SQL Server :微软公司的RDBMS
  • DB2:IBM 公司的RDBMS
  • PostgreSQL:开源的RDBMS
  • MySQL :开源的RDBMS
  1. 面向对象数据库(Object Oriented Database,OODB)。编程语言当中有一种被称为面向对象语言的语言。把数据以及对数据的操作集合起来以对象为单位进行管理,因此得名。面向对象数据库就是用来保存这些对象的数据库。

  2. XML数据库(XML Database,XMLDB)。最近几年,XMLB 作为在网络上进行交互的数据的形式逐渐普及起来。XML 数据库可以对XML 形式的大量数据进行高速处理。

  3. 键值存储系统(Key-Value Store,KVS)。这是一种单纯用来保存查询所使用的主键(Key)和值(Value)的组合的数据库。具有编程语言知识的读者可以把它想象成关联数组或者散列(hash)。近年来,随着键值存储系统被应用到Google 等需要对大量数据进行超高速查询的Web 服务当中,它正逐渐为人们所关注。


数据库的结构

介绍使用SQL 语言的关系数据库管理系统(RDBMS)的操作方法。如无特殊说明,下面所提到的数据库以及DBMS 都是指RDBMS。

  • 使用RDBMS 时,最常见的系统结构就是客户端/ 服务器类型(C/S类型)
  • RDBMS 既可以和其客户端安装在同一台计算机上,也可以分别安装在不同的计算机上。这样一来,不仅可以通过网络使二者相互关联,还可以实现多个客户端访问同一个RDBMS
  • 客户端没有必要使用同样的程序,只要能将SQL 发送给RDBMS,就可以操作数据库了。并且,多个客户端还可以同时对同一个数据库进行读写操作。

另外,RDBMS 除了需要同时接收多个客户端的请求之外,还需要操作存有大量数据的数据库,因此通常都会安装在比客户端性能更优越的计算机上。操作数据量特别巨大的数据库时,还可以将多台计算机组合使用。

虽然RDBMS 的系统结构多种多样,但是从客户端发来的SQL 语句基本上都是一样的。


什么是SQL

  • SQL是为操作数据库而开发的语言。它原本是为了提高数据库查询效率而开发的语言,但是现在不仅可以进行数据查询,就连数据的插入和删除等操作也基本上都可以通过SQL 来完成了。

国际标准化组织(ISO)为SQL 制定了相应的标准,以此为基准的SQL 称为标准SQL。以前,完全基于标准SQL 的RDBMS 很少,通常需要根据不同的RDBMS来编写特定的SQL 语句。这样一来,就会造成能够在Oracle 中使用的SQL 语句却无法在SQL Server 中使用,反之亦然。近来,对标准SQL 的支持取得了一些进展,因此希望准备学习SQL 的人们能够从现在开始就牢记标准SQL 的书写方式。学会标准SQL 就可以在各种RDBMS 中书写SQL 语句了。


MySQL

  • MySQL 是一个可移植的关系型数据库管理系统的软件,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。
  • 需要操作数据管理软件的人有:数据库管理员,基于数据库做二次开发的,后端开发。

SQL语句 | 种类

SQL 用关键字、表名、列名等组合而成的一条语句(SQL 语句)来描述操作的内容。关键字是指那些含义或使用方法已事先定义好的英语单词,存在包含“对表进行查询”或者“参考这个表”等各种意义的关键字。

根据对RDBMS 赋予的指令种类的不同,SQL 语句可以分为以下三类。其中使用最多的是DML。

  • DDL(Data Definition Language,数据定义语言) 用来创建或者删除存储数据用的数据库以及数据库中的表等对象。DDL 包含以下几种指令。

    • CREATE: 创建数据库和表等对象
    • DROP: 删除数据库和表等对象
    • ALTER: 修改数据库和表等对象的结构
  • DML(Data Manipulation Language,数据操纵语言) 用来查询或者变更表中的记录。DML 包含以下几种指令。
    • SELECT:查询表中的数据
    • INSERT:向表中插入新数据
    • UPDATE:更新表中的数据
    • DELETE:删除表中的数据
  • DCL(Data Control Language,数据控制语言) 用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对RDBMS 的用户是否有权限操作数据库中的对象(数据库表等)进行设定。DCL 包含以下几种指令。
    • COMMIT: 确认对数据库中的数据进行的变更
    • ROLLBACK: 取消对数据库中的数据进行的变更
    • GRANT: 赋予用户操作权限
    • REVOKE: 取消用户的操作权限

SQL 的基本书写规则

  • SQL 语句要以分号(;)结尾
  • SQL 语句不区分大小写
    • SQL 不区分关键字的大小写 。例如,不管写成SELECT 还是select,解释都是一样的。表名和列名也是如此
    • 但是插入到表中的数据是区分大小写的。例如,在操作过程中,数据Computer、COMPUTER 或computer,三者是不一样的。
  • 常数的书写方式是固定的。在SQL 语句中直接书写的字符串、日期或者数字等称为常数
    • SQL 语句中含有日期或字符串的时候需要使用单引号将其括起来。日期的格式有很多种(‘26 Jan 2010’ 或者’10/01/26’ 等),也可以使用’2010-01-26’ 这种’ 年- 月- 日’ 的格式。
    • 在SQL 语句中书写数字的时候,不需要使用任何符号标识,直接写成1000 这样的数字即可。

存储引擎

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySQL的核心就是插件式存储引擎,支持多种存储引擎。查看存储引擎:mysql登录后,show engines;


参考与总结

  • 什么是数据库?什么是SQL?怎么入门SQL? - 图灵教育的文章 - 知乎

MySQL入门:数据库是什么 | SQL是什么 | MySQL是什么相关推荐

  1. Oracle 数据库、Microsoft SQL Server、MySQL 数据库三种常见数据库的区别深度剖析

    文章目录 前言 一.ORACLE 数据库 二.Microsoft SQL Server 数据库 三.MySQL 数据库 总结 前言 Oracle 数据库.Microsoft SQL Server.My ...

  2. MySQL新建数据库并导入SQL文件

    版权声明:本文为CSDN博主「caideb」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/caideb/ ...

  3. mysql用户管理,常用sql语句,mysql数据库备份恢复

    2019独角兽企业重金招聘Python工程师标准>>> mysql用户管理 grant all on . to 'user1' identified by 'passwd'; gra ...

  4. MySQL用户管理、常用SQL语句、MySQL数据库备份恢复

    mysql用户管理 1.创建一个普通用户并授权 [root@gary-tao ~]# mysql -uroot -p'szyino-123' Warning: Using a password on ...

  5. linux mysql 主从数据库_【Linux】【MySQL】MySQL主从数据库

    系统环境:Centos7 主:192.168.8.162 从:192.168.8.127 前提条件 a.关闭防火墙 systemctl stop firewalld 关闭防火墙开机自启 systemc ...

  6. mysql 存储过程 rowcount_ORACLE中的SQL%ROWCOUNT与MySQL中的ROW_COUNT()的一点异同

    ORACLE中的SQL%ROWCOUNT与MySQL中的ROW_COUNT()的一点异同 MySQL的ROW_COUNT()和ORACLE中的SQL%ROWCOUNT函数作用并不完全相同. 从作用上来 ...

  7. mysql 10分钟_10分钟入门mysql(含常用的sql语句,mysql常见问题及解决方案)

    开发中常用的sql语句 1,创建一个数据库并指定编码格式 drop database if exists test;create database test default character set ...

  8. 52次课(mysql用户管理、常用sql语句、 mysql数据库备份恢复)

    MySQL创建用户以及授权 默认用户是root用户,不可能所有人员都用root用户,创建用户防止误删除,因为mysql里边有多个库每个库里有很多表,所以需要给单独的用户做一些授权我只需要它对某一个数据 ...

  9. Mysql入门笔记(1): python——SQL基本使用

    终于学到数据库操作了,这意味着什么?以后再也不用从文件里读写数据了,过程实在太复杂了~~~为了纪念这个激动人心的时刻,一定要写一篇博客! 使用mysql数据库--增 插入一条数据 首先,还是先解释一下 ...

最新文章

  1. 【kuangbin带你飞】专题六 最小生成树
  2. 达夫设备(Duff‘s Device)
  3. oracle导出库压缩参数,oracle数据库的定时备份:导出 压缩 归类
  4. go byte转uint_面试官问我go反射,我怀疑他让我写ORM框架
  5. 二分查找法的循环与递归实现及时间复杂度分析
  6. mysql集群 clu_MySQL高可用之PXC简介
  7. 2021数据技术嘉年华 • 嘉宾面对面
  8. QQ第三方授权登录(带详细源码)
  9. 冒泡排序的实现和优化及其与插入,选择排序的比较
  10. ToStringBuilder介绍
  11. sqlserver字符串拼接
  12. Linux安装绿联无线网卡驱动
  13. 关闭计算机的方式有哪些,关机快捷键有哪些?电脑Windows快捷关机最全方法图文详解...
  14. mysql 删除数据后myd_关于mysql 删除数据后(.MYD,MYI)物理空间未释放
  15. android 恢复出厂设置流程分析,Android恢复出厂设置流程分析
  16. 如何使用excel画甘特图
  17. the sip module implements API v12.0 to v12.8 but the PyQt5.QtGui module requires API v12.9
  18. java-net-php-python-jspm现代化社区去也管理系统计算机毕业设计程序
  19. 从四个维度谈谈如何做好团队管理
  20. 微软翻译与服务器断开,一水的机翻?微软中文翻译也闹笑话了

热门文章

  1. UG NX 10.0 GRIP 二次开发
  2. 青龙羊毛——酷狗音乐(教程)
  3. Azure Synapse Analytics(Azure SQL DW) 性能优化指南(2)——使用具体化视图优化性能(上)
  4. ROS基础---ros通信、ros发布者publisher、publisher.cpp、Talker.cpp
  5. 华大单片机HC32L130 / HC32L136 / HC32F030 系列硬件开发指南
  6. 【总结】手机图片预览插件photoswipe使用总结
  7. BackTrack5 学习笔记三
  8. Windows下python安装PyCrypto加密模块以及使用
  9. 游戏一、脑洞大开3(密文破译)
  10. 交叉引用跳转不到后面_参考文献如何正确标注引用而不会变红?