MySql:理解数据库

打印 上一主题 下一主题

主题 774|帖子 774|积分 2322

       
目录
一、什么是数据库
第一层理解
第二层理解
第三层理解
二、Linux下的数据库
三、根本认识

        登录数据库时,
  1. mysql -u root -h 127.0.0.1 -P 3306 -p
复制代码
        -h指定MySql服务器所在主机,若在当地则为回环地址。-P表示目标主机上MySql服务端标语
        一样平常简单写成下面这个样子。
  1. mysql -uroot -p
复制代码
        退出MySql时,输入quit即可。 
一、什么是数据库

第一层理解




  • 不难知道,由Linux对可执行程序的归类(Linux的指令都在bin和sbin目录下),mysql、mysqld这两条命令都是可执行程序。
  • mysqld,带d说明mysqld是一种网络服务。
  • 于是,mysql是客户端,mysqld是服务端。
  • 总结,数据库就是一种基于C(mysql)-S(mysqld)的一种网络服务。
  • 一样平常服务端的MySql端标语为3306。
第二层理解

        理解平时口述的三个概念,它们最常用的一层意义。


  • 一样平常提到mysql,指的是一套网络程序,用来帮助利用者存储数据。
  • 数据库一样平常指,存储在磁盘上的一套管理数据的方案。
  • 数据库服务,就是指mysqld。
第三层理解

        从文件的角度理解。
   文件存储数据的缺点:
             文件的安全性问题                文件不利于数据查询和管理(增删查改)               文件不利于存储海量数据                文件在程序中控制不方便       于是,发明了数据库管理:
          本质就是对文件的一套存储办理方案(方便增删查改)。因此,提到“数据库”,也大概是在说某个数据库文件。
          当利用者增删查改的时候,基于客户端请求数据库(服务器)来完成,具体操纵由数据库(数据库文件)完成后,返回给利用者,这个过程就叫数据库,是一套办理方案。
        换句话说,是把存储数据的办理方案,由传统的普通文件存储,转换为可以帮助我们增删查改的数据库文件。


二、Linux下的数据库

        登录成功后,输入show databases;
        留意,MySql语句差别于命令行指令,要加分号

        而在Linux的 /var/lib/mysql目录下,

        蓝色的打印信息表示是一个目录,于是,不难总结出一点,创建了一个数据库的本质,就是Linux下的一个目录


  • 创建一个数据库
  1. create database school;
复制代码
        留意不要漏写分号。


  • 创建一张学生表
        建表之前,指定要在哪个数据库建表。
  1. use school;
复制代码
        创建一张学生表,表中有学号、姓名、性别。
  1. create table student(
  2. id int,
  3. name varchar(32),
  4. gender varchar(2)
  5. );
复制代码
        留意student反面是()而不是{},分号在最后加。



  • 在表中插入数据       
  1. insert into student(id,name,gender)
  2.             values(1,'张三','男');
复制代码


  •  查询表中数据
  1. select * from stduent;
复制代码
        以上过程都由服务端的mysqld完成。
三、根本认识



  • 主流数据库
           SQL Sever: 微软的产品,  .Net  程序员的最爱,常用于中大型项目。             Oracle:  甲骨文产品,得当大型项目,复杂的业务逻辑,并发一样平常来说不如  MySQL  。             MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不得当做复杂的业务。主要用在电商,SNS  ,论坛。对简单的  SQL  处理效果好。             PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,照旧学术研究利用,可以免费利用,修改和分发。             SQLite: 是一款轻型的数据库,是遵守  ACID  的关系型数据库管理系统,它包含在一个相对小的  C  库中。它的设计目标是嵌入式的,而且现在已经在许多嵌入式产品中利用了它,它占用资源非常的低,在嵌入式设备中,大概只需要几百K  的内存就够了。             H2: 是一个用  Java  开发的嵌入式数据库,它自己只是一个类库,可以直接嵌入到应用项目中。   

  • 服务器、数据库、表关系



  • MySql三层架构

        Connection Pool,链接池:一样平常做权限管理
        词法分析、语法分析。
        Storage Engines,存储引擎:MySql一样平常利用的是InnoDB,支持热插拔,具体的文件操纵是由它来完成。


  • SQL语句分类
        SQL语句大抵可以分为三类:
        DDL(data definition language),数据界说语言,这种SQL语句用来维护存储数据的布局,比如建库、建表。代表的指令有create、drop、alter
        DML(data manipulation language),数据操纵语言,这种SQL语句就是用来操纵数据的,代表的指令有insert、delete、update。DML又有一个分支叫DQL,数据查询语言,比如select
        DCL(data control language),数据控制语言,主要用来赋权、减权、事物管理。代表指令有grant、revoke、commit


  • 存储引擎
        存储引擎是位于最底层,和数据库文件直接交互的。
        存储引擎是数据库管理系统如何存储数据、如何创建索引和如何更新数据、查询数据等技术的具体实现方法。
           MySQL的焦点就是插件式存储引擎,支持多种存储引擎。              检察支持的存储引擎:   
  1. show engines;
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

欢乐狗

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表