3.1   创建数据库

MySQL安装好之后,首先需要创建数据库,这是使用MySQL各种功能的前提。本章将详细介绍数据的基本操作,主要内容包括:创建数据库、删除数据库、不同类型的数据存储引擎和存储引擎的选择。

MySQL安装完成之后,将会在其data目录下自动创建几个必需的数据库,可以使用SHOW DATABASES;

语句来查看当前所有存在的数据库,如下。

可以看到,数据库列表中包含了4个数据库,

information_schema  :

mysql是用户的详细信息的,它描述用户访问权限,用户经常利用test数据库做测试的工作,其他数据库将在后面的章节中介绍。

performance_schema 性能 :事件的进程

test  :自带的测试库 是空的,对所有的用户都有权限

创建数据库是在系统磁盘上划分一块区域用于数据的存储和管理,如果管理员在设置权限的时候为用户创建了数据库,则可以直接使用,否则,需要自己创建数据库。MySQL中创建数据库的基本SQL语句格式为:CREATE  DATABASE  database_name;

“database_name”为要创建的数据库的名称,该名称不能与已经存在的数据库重名。

CREATE DATABASE test_db;

Query OK, 1 row affected (0.00 sec)

3.2    删除数据库

删除数据库是将已经存在的数据库从磁盘空间上清除,清除之后,数据库中的所有数据也将一起被删除。删除数据库语句和创建数据库的命令相似,MySQL中删除数据库的基本语法格式为:

DROP  DATABASE  database_name;

“database_name”为要删除的数据库的名称,如果指定的数据库不存在,则删除出错。

DROP DATABASE test_db;

Query OK, 0 rows affected (0.00 sec)

3.3   数据库存储引擎

数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是存储引擎。

Support  //是否支持

SHOW VARIABLES LIKE 'storage_enggine';    //查看默认的引擎

3.3.1   MySQL存储引擎简介

MySQL提供了多个不同的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在MySQL中,不需要在整个服务器中使用一种引擎,针对具体要求可以对每一个表使用不同的存储引擎。MySQL5.5支持的存储引擎有:InnoDB、MyISAM、Memory等。查看引擎的命令用

SHOW ENGINES\G

SHOW ENGINES\G

*************************** 1. row ***************************

Engine: CSV

Support: YES

Comment: CSV storage engine

Transactions: NO

XA: NO

Savepoints: NO

*************************** 2. row ***************************

Engine: PERFORMANCE_SCHEMA

Support: YES

Comment: Performance Schema

Transactions: NO

XA: NO

Savepoints: NO

*************************** 3. row ***************************

Engine: InnoDB

Support: DEFAULT

Comment: Supports transactions, row-level locking, and foreign keys

Transactions: YES

XA: YES

Savepoints: YES

*************************** 4. row ***************************

Engine: MRG_MYISAM

Support: YES

Comment: Collection of identical MyISAM tables

Transactions: NO

XA: NO

Savepoints: NO

*************************** 5. row ***************************

Engine: MyISAM

Support: YES

Comment: MyISAM storage engine

Transactions: NO

XA: NO

Savepoints: NO

*************************** 6. row ***************************

Engine: MEMORY

Support: YES

Comment: Hash based, stored in memory, useful for temporary tables

Transactions: NO

XA: NO

Savepoints: NO

6 rows in set (0.00 sec)

查看默认存储引擎:

SHOW VARIABLES LIKE 'storage_engine';

+----------------+--------+

| Variable_name  | Value  |

+----------------+--------+

| storage_engine | InnoDB |

+----------------+--------+

1 row in set (0.00 sec)

一、存储引擎简介

(1) 存储引擎说白了就是数据存储的格式,不同的存储引擎功能不同,占用的空间大小不同,读取性能也不同

(2) 数据库存储引擎是数据库底层软件组件,不同的存储引擎提供不同的存储机制

(3) 在 MySQL 中,不需要在整个服务器中使用同一种存储引擎,可以对每一个表使用不同的存储引擎

(4) MySQL 支持多种存储引擎,如 InnoDB 、MyISAM 、Memory 、Merge 、Archive 、CSV 、Federated 等等

MyISAM 存储引擎特点:

(1) MySQL 5.5 之前使用 MyISAM 引擎,MySQL 5.5 之后使用 InnoDB 引擎

(2) MyISAM 引擎读取速度较快,占用资源相对较少,不支持事】务,不支持外键约束,但支持全文索引

(3) 读写互相阻塞,也就是说读数据的时候你就不能写数据,写数据的时候你就不能读数据

(4) MyISAM 引擎只能缓存索引,而不能缓存数据

MyISAM 适用场景:

(1) 不需要事务支持的业务,例如转账就不行

(2) 适用于读数据比较多的业务,不适用于读写频繁的业务

(3) 并发相对较低、数据修改相对较少的业务

(4) 硬件资源比较差的机器可以考虑使用 MyISAM 引擎

InnoDB 存储引擎特点:

(1) 事务型数据库的首选引擎,支持事务安全表,支持行锁定和外键,MySQL 5.5.5 版本之后,InnoDB 作为默认存储引擎

(2) 具有提交、回滚和崩溃恢复能力的事务安全存储引擎,能处理巨大数据量,性能及效率高,完全支持外键完整性约束

(3) 具有非常高效的缓存特性,能缓存索引也能缓存数据,对硬件要求比较高

(4) 使用 InnoDB 时,将在 MySQL 数据目录下创建一个名为 ibdata1 的 10MB 大小的自动扩展数据文件,以及两个名为 ib_logfile0 和 ib_logfile1 的 5MB 大小的日志文件

InnoDB 适用场景:

(1) 需要事务支持的业务、高并发的业务

(2) 数据更新较为频繁的场景,比如 BBS、SNS、微博等

(3) 数据一致性要求较高的业务,比如充值转账、银行卡转账

Memory 存储引擎特点:

(1) Memory 存储引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问

(2) Memory 存储引擎执行 HASH 和 BTREE 索引,不支持 BLOB 和 TEXT 列,支持 AUTO_INCREMENT 列和对可包含 NULL 值得列的索引

(3) 当不再需要 Memory 表的内容时,要释放被 Memory 表使用的内存,应该执行 DELETE FROM 或 TRUNCATE TABLE ,或者删除整个表

二、存储引擎的选择

(1) 如果要提供提交、回滚和奔溃恢复能力的事务安全能力,并要求实现并发控制,InnoDB 是个很好的选择

(2) 如果数据表主要用来插入和查询记录,则 MyISAM 引擎能提供较高的处理效率

(3) 如果只是临时存放数据,数据量不大,并且不需要较高的安全性,可以选择将数据保存在内存中的 Memory 引擎,MySQL 使用该引擎作为临时表,存放查询的中间结果

(4) 如果只有 INSERT 和 SELECT 操作,可以选择 Archive 引擎,支持高并发的插入操作,如记录日志信息可以使用 Archive 引擎

功能     MyISAM   Memory    InnoDB     Archive

存储限制  256TB     RAM   64TB      None

支持事务   No      No        Yes      No

支持全文索引 Yes      No       No       No

支持数索引   Yes      Yes       Yes      No

支持哈希缓存  No      Yes         No      No

支持数据缓存  No      N/A   Yes      No

支持外键   No       No    Yes       No

mysql学习 第二章 数据库的基本操作的更多相关文章

  1. mysql学习5:数据库设计

    mysql学习5:数据库设计 本文转载:https://blog.51cto.com/9291927/2087925:原创为天山老妖S 一.数据库设计简介 按照规范设计,将数据库的设计过程分为六个阶段 ...

  2. oracle学习 第二章 限制性查询和数据的排序 ——03

    这里.我们接着上一小节2.6留下的问题:假设要查询的字符串中含有"_"或"%".又该如何处理呢? 開始今天的学习. 2.7  怎样使用转义(escape)操作符 ...

  3. MySQL(一) -- MySQL学习路线、数据库的基础、关系型数据库、关键字说明、SQL、MySQL数据库、MySQL服务器对象、SQL的基本操作、库操作、表操作、数据操作、中文数据问题、 校对集问题、web乱码问题

    1 MySQL学习路线 基础阶段:MySQL数据库的基本操作(增删改查),以及一些高级操作(视图.触发器.函数.存储过程等). 优化阶段:如何提高数据库的效率,如索引,分表等. 部署阶段:如何搭建真实 ...

  4. MySql学习 (一) —— 基本数据库操作语句、三大列类型

    注:该MySql系列博客仅为个人学习笔记. 在使用MySql的时候,基本都是用图形化工具,如navicat.最近发现连最基本的创建表的语法都快忘了... 所以,想要重新系统性的学习下MySql,为后面 ...

  5. MySQL(一) 数据表数据库的基本操作

    序言 这类文章,记录我看<MySQL5.6从零开始学>这本书的过程,将自己觉得重要的东西记录一下,并有可能帮助到你们,在写的博文前几篇度会非常基础,只要动手敲,跟着我写的例子全部实现一遍, ...

  6. JAVA / MySql 编程——第二章 初始MySQL

    1. MySQL:        ●  MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.            MySQL最流行的关系型数据库管理系统, ...

  7. Asp.Net MVC4 + Oracle + EasyUI 学习 第二章

    Asp.Net MVC4 + Oracle + EasyUI 第二章 --使用Ajax提升网站性能 本文链接:http://www.cnblogs.com/likeli/p/4236723.html ...

  8. Ruby学习-第二章

    第二章 类继承,属性,类变量 1.如何声明一个子类 class Treasure < Thing 这样Thing类中的属性name,description都被Treasure继承 2.以下三种方 ...

  9. Java基础知识二次学习-- 第二章 基础语法与递归补充

    第二章 基础语法与递归补充   时间:2017年4月24日10:39:18 章节:02章_01节,02章_02节 视频长度:49:21 + 15:45 内容:标识符,关键字与数据类型 心得:由字母,下 ...

随机推荐

  1. ubuntu wubi.exe 直接加载下载好的 amd64.tar.xz

    玩了这么久的LINUX,一直都是直机装UBUNTU,虚一下XP的,后来不得不直机用WIN7,只能WUBI装一下UBUNTU了.不得不说,在WIN7下虚一个UBUNTU真是相当麻烦.网络那块很是难搞,而 ...

  2. Android 免Root实现Apk静默安装,覆盖兼容市场主流的98%的机型

    地址:http://blog.csdn.net/sk719887916/article/details/46746991 作者: skay 最近在做apk自我静默更新,在获取内置情况下,或者已root ...

  3. Cocos2D场景中对象引用为nil时的判断

    如果该对象在SpriteBuilder中属性中设置了name,则检查是否 [self.scene getChildByName:@"theNameOfTheNode" recurs ...

  4. 漫谈程序员(十八)windows中的命令subst

    漫谈程序员(十八)windows中的命令subst 用法格式 一.subst [盘符] [路径]  将指定的路径替代盘符,该路径将作为驱动器使用 二.subst /d 解除替代 三.不加任何参数键入  ...

  5. 【一天一道LeetCode】#32. Longest Valid Parentheses

    一天一道LeetCode系列 (一)题目 Given a string containing just the characters '(' and ')', find the length of t ...

  6. Mplayer 的编译

    由于项目要用到mplayer,所以要对mplayer进行编译,首先我的平台如下: 系统:windows xp2 安装好mingw+msys,目录为c:/mingw,其中装的gcc是4.3.2版本的. ...

  7. 部署与管理ZooKeepe

    1.部署 本章节主要讲述如何部署ZooKeeper,包括以下三部分的内容: 1. 系统环境 2. 集群模式的配置 3. 单机模式的配置 系统环境和集群模式配置这两节内容大体讲述了如何部署一个能够用于生 ...

  8. javascript访问html元素的内容(2)

    对于(1)中最后一个包装方式创建的是一个方法,我们必须以方法调用的方式来使用它,这和其他默认的以属性返回结果略有不同,如果有强迫症的童鞋有些伤不起,那么我们下面就把它实现为属性返回的方式: //chi ...

  9. 树的广度优先遍历和深度优先遍历(递归非递归、Java实现)

    在编程生活中,我们总会遇见树性结构,这几天刚好需要对树形结构操作,就记录下自己的操作方式以及过程.现在假设有一颗这样树,(是不是二叉树都没关系,原理都是一样的) 1.广度优先遍历 英文缩写为BFS即B ...

  10. javaScript(2)---简单使用

    javaScript(2)---简单使用 学习要点: 1.创建一张HTML页面 2.<Script>标签解析 3.JS代码嵌入的一些问题 一.创建一张HTML页面 <!DOCTYPE ...