MySQL操作数据库

数据库是指长期存储在计算机、有组织的、可共享的数据集合。简而言之,数据库就是一个存储数据的地方。只是,其存储方式有特定的规律。这样可以方便处理数据。数据库的操作包括创建数据库和删除数据库。这些操作都是数据库管理的基础。

- 创建数据库

- 删除数据库

- 数据库的存储引擎

- 如何选择存储引擎

5.1 创建数据库

创建数据库是指在数据库系统中划分一块空间,用来存储相应的数据。这是进行表操作的基础,也是进行数据库管理的基础。

创建数据库是通过SQL语言CREATE DATABASE命令实现的。

CREATE DATABASE 数据库名;

-- MySQL命令以分号(;)或\g结束命令

SHOW DATABASES; -- 用列表显示所有数据库

CREATE DATABASE example; -- 创建数据库

CREATE DATABASE IF NOT EXISTS example; -- 如果没有example数据库则创建example数据库

5.2 删除数据库

删除数据库是指数据库系统中删除已经存在的数据库。删除数据库之后,原来分配的空间将被收回。值得注意的是,删除数据库会删除该数据库中所有的表和所有数据。

删除数据库是通过SQL语句DROP DATABASE命令实现的。

DROP DATABASE 数据库名

DROP DATABASE IF EXISTS example; -- 如果example数据库存在的话删除example数据库

5.3 数据库的存储引擎

MySQL中提到了存储引擎的概念。简而方之,存储引擎就是指表的类型。数据库存储引擎决定了表在计算机中的存储方式。

type=InnoDB

engine=InnoDB

MyISAM:

优点:

1. OPTIMIZE TABLE 表名; # 整理碎片

2. 强调快速读取操作

缺点:有一些功能不支持

InnoDB:

优点:

1. 支持多功能(事务、外键)

2. 强调快速读取操作

缺点:速度不如MyISAM,占用空间大

5.3.1 MySQL存储引擎简介

存储引擎的概念是MySQL的特点,而且是一种插入式的存储引擎概念。这决定了MySQL数据库中的表可以用不同的方式存储。用户可以根据自己的不同要求,选择不同的存储方式、是进行事务处理等。

使用SHOw ENGINES语句可以查看MySQL数据库支持的存储引擎类型。

SHOW ENGINES \G

Engine : MyISAM

Support: YES

Comment: Default Engine at of MySQL 3.23 with great performance(描述说明)

Transaction: NO (是否支持事务)

XA: NO (是不否支持分布式XA规范)

Savepoints: NO (是否支持保存点)

SHOW VARIABLES LIKE ‘have%‘;

SHWO VARIABLES LIKE ‘storage_engine‘; # 数据库默认引擎[storage:存储]

1. 可以在mysql.ini配置文件中修改数据库默认引擎

default-storage-engine = INNODB

5.3.2 InnoDB存储引擎

InnoDB是MySQL数据库的一个存储引擎。InnoDB给MySQL的表提供了事务、回滚、崩溃修复能力、多版本并发控制的事务安全。在MySQL从3.23.34a开始包含InnoDB存储引擎。InnoDB是MySQL上第一个提供外键约束的引擎。而且InnoDB对事务处理的能力,也是MySQL其他存储引擎所无法与之比拟的。

(1)InnoDB存储引擎中支持自动增长列(AUTO_INCREMET)

自动增长列的值不能为空,且值必须惟一。MySQL中规定自增列必须为主键。在插入值时,如果自动增长列不输入值,则插入的值为自动增长后的值;如果输入的值为0或者空(NULL),则插入的值也为自动增长后的值;如果插入某个确定的值,且该值在前面没有出现过,则可以直接插入。

(2) InnoDB存储引擎中支持外键(FOREIGN KEY)

(3) InnoDB存储引擎中,创建表的表结构存储在.frm文件中。数据和索引存储innodb_data_home_dir和innodb_data_file_path定义的表空间中。

(4) InnoDB存储引擎的优势在于提供良好的事务管理、崩溃修复能力和并发控制。

缺点是读写效率稍差,占用的数据空间相对比较大。

5.3.3 MyISAM存储引擎

MyISAM存储引擎是MySQL中常见的存储引擎,是以前MySQL的默认存储引擎。MyISAM存储引擎是基于ISAM存储引擎发展起来的。MyISAM增加了很多用的扩展。

MyISAM存储引擎的表存储成三个文件。文件的名字与表名相同。扩展名包括frm、MYD和MYI。其中frm为扩展名的文件存储表的结构;MYD为扩展名的文件存储数据,基是MYData的缩写;MYI为扩展名的文件存储索引,其是MyIndex的缩写。

MyISAM存储引擎的优势在于占用空间小、处理速度快。

缺点是不支持事务的完整性和并发性。

5.3.4 MEMORY存储引擎

MEMORY存储引擎是MySQL中的一个特殊的存储引擎。基使用存储在内存中内容来创建表,而且所有数据也放在内存中。这些特性都与InnoDB存储引擎、MyISAM存储引擎不同。

每个基于MEMORY存储引擎的表实际对应一个磁盘文件。该文件的文件名与表名相同,类型为frm类型。该文件的只存储表的结构。而其数据文件,都是存储在内存中。这样有利于对数据的快速的处理,提高整个表的处理效率。值得注意的是,服务器需要有足够的内存来维持MEMORY存储引擎的表的使用。如果不需要使用了,可以释放这些内存,甚至可以删除不需要的表。

MEMORY表的大小是受到限制的。表的大小主要取决于两个参数,分别是max_rows和max_heap_table_size。

5.3.5 存储引擎的选择

在实际工作中,选择一个合适的存储引擎是一个很复杂的问题。每种存储引擎都有各自的优势,不能笼统的说谁比谁好。

存储引擎的对比

特性       InnoDB   MyISAM   MEMORY

事务安全     支持      不支持   不支持

数据行锁定    支持      不支持   不支持

外键约束         支持        不支持   不支持

存储限制     64TB      有     有

空间占用     高         低     低

全文索引     不支持     支持    不支持

内存使用     高       低       高

插入数据的速度   低        高       高

对外键的支持      支持        无      无

常见问题及解答

1. 如何修改默认存储引擎?

(1) 使用配置向导,修改默认存储引擎。

(2) 修改配置文件my.ini,default_storage_engine=INNODB修改即可

2. 如何选择存储引擎?

CREATE TABLE  `test`.`test` (

`a` INT NOT NULL

) ENGINE = MYISAM ;

时间: 2024-11-03 12:45:13

MySQL操作数据库的相关文章

nodejs mysql 操作数据库方法二

node.js 开发指南 – Node.js 连接 MySQL 并进行数据库操作 通常在NodeJS开发中我们经常涉及到操作数据库,尤其是 MySQL ,作为应用最为广泛的开源数据库则成为我们的首选,本篇就来介绍下如何通过NodeJS来操作 MySQL 数据库. Node.js是一套用来编写高性能网络服务器的JavaScript工具包 通常在NodeJS开发中我们经常涉及到操作数据库,尤其是 MySQL ,作为应用最为广泛的开源数据库则成为我们的首选,本篇就来介绍下如何通过NodeJS来操作 M

MySQL 操作数据库、数据表

通过mysql-client连接到mysql-server,sql语句要以分号结尾,这样按Enter才会执行sql语句. mysql关键字不区分大小写 字符串.时间日期类型的值要引起来 数据库操作 show databases; #显示已有的数据库 create database db_student character set utf8; #新建数据库并指定使用的字符集 create database db_student; #新建数据库,使用默认的字符集 drop database db_s

nodejs mysql 操作数据库方法一详解

nodejs mysql 数据查询例子 时间 2014-11-11 15:28:01  姜糖水原文  http://www.cnphp6.com/archives/59864 1.安装nodejs 2.安装mysql  npm包 地址:https://github.com/felixge/node-mysql npm install mysql 3.相应API查看及调用: var mysql = require('mysql'); var connection = mysql.createCon

mysql操作数据库进行封装实现增删改查功能

SqlTool.class.php <?php class SqlTool{ private $conn; private $host = "localhost"; private $user = "root"; private $password = "root"; private $db = "test1"; /* 连接数据库的构造方法 */ function SqlTool(){ $this->conn =

mysql——操作数据库

一.查看数据库 show databases; 二.创建数据库 create database 数据库名; 三.删除数据库 drop database 数据库名; 四.查看数据库存储引擎 show engines; PS:可以用 \g结尾,作用和 ; 一样: 用\G结尾,显示更美观点: ======================================================================= 原文地址:https://www.cnblogs.com/xiaob

Mysql基础知识:操作数据库

Mysql操作数据库 1.创建数据库 CREATE DATABASE 数据库名; 2.显示已创建数据库 SHOW DATABASES; 3.选择已创建数据库 USE 数据库名; 4.删除数据库 DROP DATABASE 数据库名; 5.数据库存储引擎 InnoDB: 是一个可靠的事务处理引擎,它不支持全文本搜索: MyISAM: 在功能等同于 MyISAM ,但由于数据存储在内存(不是磁盘)中,速度很快(特别适合于临时表): MEMORY:是一个性能极高的引擎,它支持全文本搜索,但不支持事务处

边记边学PHP-(十六)PHP使用MySQL扩展库操作数据库

PHP提供了很多扩展库,这里说的是使用MySQL扩展库,但是这种扩展库在不久的将来就会被摒弃,因为如果使用MySQL扩展库编写的代码在运行的时候会有warning的提示.我本来想直接写另一种,但是感觉这是基础.MySQL扩展库,一说到库,自然而然就想到是一堆函数,很多函数组成一个库,使用扩展库也就是使用里面的函数.MySQL扩展库是完全面向过程的,显然不符合面向对象的特性,被摒弃也是可以理解的.废话不多说,直接上重点. 一.PHP使用MySQL扩展库操作数据库的示意图 此图是我自己画的,可能有不

Python操作数据库(mysql redis)

一.python操作mysql数据库: 数据库信息:(例如211.149.218.16   szz  123456) 操作mysql用pymysql模块 #操作其他数据库,就安装相应的模块 import  pymysql ip='211.149.218.16' port=3306 passwd='123456' user='root' db='szz' conn=pymysql.connect(host=ip,user=user,port=port,passwd=passwd,db=db,cha

mysql基本认识【关系型数据库和nosql、mysql操作流程和体系,库操作,表操作,数据的操作,字符集的操作,以及php作为client操作数据库】对连接本身没有疑问

1.关系型数据库永久性保存数据的仓库php的变量只是php脚本执行期间,临时性保存变量的空间[使用内存空间临时保存] 关系型数据库:利用二者的关系来描述实体的信息.[利用二维表字段名和字段值来进行描述][关系型数据库根本不是可以使用外键将两个表构建成关联的意思,而是实现描述实体的二维表的形式] nosql:not only sql[sql表示操作关系型数据的语言]所以nosql指的就是非关系型数据库[典型的是键值对型的数据(redis.memcache)][nosql可以视情况添加信息,不需要对