洮南做网站,昆明做网站优化的公司,微网站开发软件,滨海做网站需要多少钱目录 一、数据库概念 1. 什么是数据库 2. 为什么要有数据库#xff1f; 3. 数据库将数据存在哪里#xff1f; 二、知名数据库介绍 1.知名数据库介绍 2.为什么要学习MySQL 三、MySQL的基本使用 0. 安装MySQL 1. 数据库客户端链接服务端 2. Windows下的MySQL服务端管理 3. 数据…目录 一、数据库概念 1. 什么是数据库 2. 为什么要有数据库 3. 数据库将数据存在哪里 二、知名数据库介绍 1.知名数据库介绍 2.为什么要学习MySQL 三、MySQL的基本使用 0. 安装MySQL 1. 数据库客户端链接服务端 2. Windows下的MySQL服务端管理 3. 数据库的本质 及 服务器数据库表关系 4.数据库的物理存储和逻辑存储 「拓」对数据库的简单操作 四、MySQL架构 1. MySQL 是一个可移植的数据库 2. 这是怎么做到的呢 3. MySQL服务端插件层的设计思想 五、存储引擎 六、SQL语句分类 一、数据库概念
1. 什么是数据库 1.1 从狭义层面上讲 a.从服务端来讲有没有启动数据库这里的数据库就是指数据库的服务端即mysqld (我们安装的MySQL是一套网络服务既有客户端也有服务端这意味着我们在A主机上的MySQL服务端可以被B主机上的MySQL客户端访问。启动数据库服务端后我们才能通过数据库的客户端访问服务端对数据进行增删改查。) b.从数据层面来讲创建一个数据库这里指的是创建一个数据库文件即保存在在路径/var/lib/mysql的文件。 1.2 从宏观层面来讲 为用户提供数据管理的软件集合(程序数据)。 2. 为什么要有数据库 2.1 存储数据用文件就可以了为什么还要弄个数据库? 文件和数据库都可以用来存储数据但我们使用文件存储数据数据的管理工作要我们自己做如对文件里数据的查询和修改需要我们自己设计程序完成。为了解决上述问题专家们在用户和文件之间添加一个更加利于管理数据的应用层软件——数据库它能帮助用户管理文件中的数据。(所以数据库也可以说是对文件内容进行管理的文件系统)所以数据库的优势在于数据库在存储数据的同时还管理着数据对外提供基本的数据操作(增删查改)不用程序员手动进行数据管理。 2.2 对比数据库单纯用文件保存数据有以下几个缺点 文件不利于海量数据查询和管理 文件的安全性问题 误删数据如何恢复 文件在程序中控制不方便 要先将文件中的所有内容加载到内存中才能获取其中某行内容 3. 数据库将数据存在哪里 磁盘 或 内存 (数据库存储数据也要创建文件并将其保存在磁盘或内存中。) 二、知名数据库介绍
1.知名数据库介绍 SQL Sever 微软的产品适合中大型项目.Net程序员的最爱。Oracle 甲骨文产品适合大型项目复杂的业务逻辑会提供配套的服务并发性不如MySQL。一般都是银行或非互联网公司的大型企业在使用。MySQL世界上最受欢迎的数据库属于甲骨文并发性好但不适合做复杂的业务。主要用在电商SNS论坛。对简单的SQL处理效果好。互联网公司一般都会使用MySQL。PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库不管是私用商用还是学术研究使用都可以免费使用。学术研究机构可能用到PostgreSQL更多。SQLite 是一款轻型的数据库是遵守ACID的关系型数据库管理系统它包含在一个相对小的C库中。它的设计目标是嵌入式的而且目前已经在很多嵌入式产品中使用了它它占用资源非常的低在嵌入式设备中可能只需要几百K的内存就够了。用于嵌入式开发。H2 是一个用Java开发的嵌入式数据库它本身只是一个类库可以直接嵌入到应用项目中。 2.为什么要学习MySQL 因为MySQL开源使用成本低生态好社区活跃而且在不断迭代更新下现在MySQL的效率并不差对于百万、千万级别的数据完全hold住所以互联网公司一般都会使用MySQL因此MySQL水平是衡量一个程序员水平的重要指标。 三、MySQL的基本使用
0. 安装MySQL 关于Linux上MySQL的安装请看博主这篇文章「MySQL-00」MySQL在Linux上的安装 1. 数据库客户端链接服务端 mysql -h 127.0.0.1 -P 3306 -u root -p-h : 主机由于MySQL默认禁止跨网络服务现在先本地回环127.0.0.1
-P : 端口号MySQL服务端的端口号默认为3306
-u : 以哪个用户登录
-p : 用户密码 「拓1」如何更改MySQL服务端的默认端口号? 使用vim打开MySQL配置文件 : vim /etc/my.cnf 然后在最后一行之前加上 : port修改后端口号即可 最后重启MySQL客户端 : systemctl restart mysqld 在工作中建议修改如果仅是练习就没有必要修改了。 「拓2」如何查看MySQL服务端的默认端口号 在Linux输入命令 netstat -nltp 进行查询。 2. Windows下的MySQL服务端管理 执行 winr 输入 services.msc 打开服务管理器 通过下图左侧停止暂停重启动按钮进行服务管理 3. 数据库表服务端客户端的本质和关系 3.1 创建一个数据库的本质 在mysql中建立一个数据库create database XXX本质在linux下是建立了一个目录! 3.2 在数据库中建表的本质 在mysql中建立一个表create table 表名(); 本质是在Linux上对应的数据库目录下创建对应的文件! 3.3 对数据库操作的本质 所以我们对数据库或数据库里的表进行操作本质上就是在对Linux上对应的目录和文件进行操作。 3.4 数据库服务端的本质: 所谓安装数据库服务端只是在机器上安装了一个数据库管理系统程序即musqld(数据库服务端)这个管理程序可以管理多个数据库。 3.5 数据库客户端的本质: Linux中的mysql通过命令行访问MySQL服务端这是一个客户端。 图像界面中访问数据库的软件也是一个客户端。 程序中引入MySQL中通过的第三方库来访问MySQL服务端那么这个程序也是一个客户端。 3.6 总结 数据库客户端、服务端、数据库和表的关系如下 MySQL的客户端通过SQL语句向服务端发起请求服务端再根据请求对数据库进行操作。 4.数据库的物理存储和逻辑存储 4.1 物理存储以二进制的形式保存在文件中。 4.2 逻辑存储 以行和列的形式保存在表中。 「拓」对数据库的简单操作 show databases; : 展示已创建的数据库(注意数据库命令以分号结尾)。 create database 数据库名称; : 创建一个数据库(注意数据库命令以分号结尾)。system 系统命令 : 执行Linux系统命令经常使用system clear (执行系统命令清屏结尾不用带;)。use 数据库名称; : 进入一个数据库。select database(); : 查看当前正在哪一个数据库里。(需要先进入一个数据库)create table 表名(表头); : 创建一个表。(需要先进入一个数据库)show tables; : 查看数据库里所有的表。(需要先进入一个数据库) 四、MySQL架构
1. MySQL 是一个可移植的数据库 MySQL 是一个可移植的数据库几乎能在当前所有的操作系统上运行如 Unix/Linux、Windows、 Mac 和 Solaris。各种系统在底层实现方面各有不同但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。即MySQL的底层实现在各平台上不同但是在各平台上对外暴露的上层接口是一样的。 2. 这是怎么做到的呢 MySQL的服务端架构主要分三层 链接层对与客户端的链接进行管理如鉴权。SQL语句的接口识别语法解析性能调优层SQL语句在传入下层时就已经被处理、解析好了。插件(存储引擎)层把解析好的SQL语句给选出的存储引擎存储引擎根据SQL语句和OS的文件系统进行交互。 3. MySQL服务端插件层的设计思想 MySQL服务端插件层里有多个存储引擎对于这些存储引擎必须要进行管理怎么管当然是先描述再组织了。由于MySQL是使用C/C写的所以对于这些存储引擎可以使用类来描述类中的成员方法中既有提供给上层的调用接口也有对下层的操作方法。在未来用户要使用某个存储引擎直接靠类new一个对象出来即可不需要了直接delete掉即可这就是插件式开发。对于已经存在的存储引擎对象用列表、顺序表等数据结构进行组织这样就完成了对所有存储引擎的管理。 五、存储引擎 1.是什么 存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术 的实现方法。真正执行SQL语句的部分。(MySQL的核心就是插件式存储引擎且支持多种存储引擎。 ) 2. 查看存储引擎 show engines; 3. 常用的存储引擎 InnoDB 建议设置为默认存储引擎因为它支持事物。MyISAM 常用于大量查找的情况。 4.设置存储引擎 使用vim打开MySQL配置文件 : vim /etc/my.cnf然后在最后一行skip-grant-tables前面加上行default-storage-engine存储引擎名最后重启MySQL客户端 : systemctl restart mysqld 六、SQL语句分类 根据SQL语句的应用场景对其分类 DDL【data definition language】 数据定义语言用来创建、修改、删除存储数据的结构(如数据库、表、视图)代表指令: create, drop, alter DML【data manipulation language】 数据操纵语言用来对数据进行操作 代表指令 insertdeleteupdate DML中又单独分了一个DQL数据查询语言代表指令 select DCL【Data Control Language】 数据控制语言主要负责权限管理和账户管理代表指令 grantrevokecommit ------------------------END-------------------------
才疏学浅谬误难免欢迎各位批评指正。