二、数据库的基本操作

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

MySQL命令主要分为以下几类:

  DML:Data Manapulate Language: 数据操作语言(操作表中数据)

    INSERT, REPLACE, UPDATE, DELETE

  DDL:Data Defination Lanuage: 数据定义语言(操作表)

    CREATE, ALTER, DROP

  DCL:Data Control Language: 数据控制语言

    GRANT, REVOKE

  DQL:Data Query Language:数据查询语言

    SELECT,WHERE,ORDER BY,GROUPBY,HAVING

  TPL:事物处理语言

    BEGIN,TRANSACTION,COMMIT

2.1、创建数据库

  MySQL安装完成后,将在其data目录下自动创建几个必须的数据库,可以使用SHOW DATABASES语句来查看当前所有存在的数据库。

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

  上面的数据库中mysql是必须的,它描述用户访问权限,用户可以利用test数据库来做测试工作。

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

CREATE DATABASE db_name;                 #直接创建数据库
CREATE DATABASE [IF NOT EXISTS] db_name; #当数据库不存在时创建

  数据库创建好后可以使用SHOW CREATE DATABASES声明查看数据库的定义。

mysql> SHOW CREATE DATABASE test\G
*************************** 1. row ***************************
       Database: test
Create Database: CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */
1 row in set (0.00 sec)

2.2、删除数据库

  删除数据库是将已经存在的数据库从磁盘空间上清除,清除后,数据库中的所有数据也将一同被删除。MySQL中删除数据库的基本语法格式为:

DROP DATABASE [IF EXISTS] db_name;
mysql> CREATE DATABASE test_tb; 
Query OK, 1 row affected (0.00 sec)
mysql> DROP DATABASE test_tb;
Query OK, 0 rows affected (0.02 sec)
mysql> SHOW CREATE DATABASE test_tb\G
ERROR 1049 (42000): Unknown database 'test_tb'

2.3、数据库存储引擎

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

wKioL1lnFOmSfn9lAAGaxjAYVZs454.png-wh_50

  MySQL提供了多种不同的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在MySQL中,不需要在整个服务器中使用同一种存储引擎,针对每个表可以使用不同的引擎。可以使用SHOW ENGINES语句查看系统所支持的引擎类型:

mysql> 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: MyISAM
     Support: YES
     Comment: MyISAM storage engine
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 4. row ***************************
      Engine: BLACKHOLE
     Support: YES
     Comment: /dev/null storage engine (anything you write to it disappears)
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 5. row ***************************
      Engine: MRG_MYISAM
     Support: YES
     Comment: Collection of identical MyISAM tables
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
*************************** 7. row ***************************
      Engine: FEDERATED
     Support: NO
     Comment: Federated MySQL storage engine
Transactions: NULL
          XA: NULL
  Savepoints: NULL
*************************** 8. row ***************************
      Engine: InnoDB
     Support: DEFAULT
     Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
          XA: YES
  Savepoints: YES
8 rows in set (0.00 sec)

  常见存储引擎的特性主要有:

MyISAM: 存储格式:.frm: 表结构.MYD:表数据.MYI:表索引

  特性:支持全文索引,能够压缩:用于实现数据仓库,能节约存储空间并提升性能;支持空间索引;支持表级锁;支持延迟更新索引;不支持事务、外键和行级锁;崩溃后无法安全恢复数据

  适用场景:只读数据、较小的表、能够容忍崩溃后的修改操作和数据丢失。

InnoDB: 两种存储格式

    innodb_file_per_table=OFF,即使用共享表空间

    每张表一个独有的格式定义文件: tb_name.frm

    默认数据目录下共享的表空间文件:ibdata#

innodb_file_per_table=ON,即使用独立表空间

    每个表在数据库目录下存储两个文件:tb_name.frm tb_name.ibd

表空间:由InnoDB管理的特有格式数据文件,内部可同时存储数据和索引

特性:支持事务、有事务日志;支持外键;多版本并发控制MVCC;支持聚簇索引

    (聚簇索引之外的其它索引,通常称为辅助索引);支持行级锁(间隙锁);支持辅助索引;支持自适应hash索引;支持热备份。

ARCHIVE:仅支持INSERT和SELECT,支持很好压缩功能;不支持事务,不能很好的支持索引;适用于存储日志信息,或其它按时间序列实现的数据采集类的应用。
CSV:将数据存储为CSV格式;不支持索引;仅适用于数据交换场景。
BLACKHOLE:没有存储机制,任何发往此引擎的数据都会丢弃;其会记录二进制日志,因此,常用于多级复制架构中作中转服务器。
MEMORY:保存数据在内存中,内存表;常用于保存中间数据,如周期性的聚合数据等;也用于实现临时表;支持hash索引,使用表级锁,不支持BLOB和TEXT数据类型。
MRG_MYISAM:是MYISAM的一个变种,能够将多个MyISAM表合并成一个虚表。
NDB:是MySQL CLUSTER中专用的存储引擎。

存储引擎比较:

功能 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

第三方的存储引擎:

   OLTP类:(On-Line Transaction Processing在线事务处理)

   XtraDB: 增强的InnoDB,由Percona提供;编译安装时,用XtraDB的源码替换MySQL存储引擎中的InnoDB的源码。

   PBXT: MariaDB自带此存储引擎,支持引擎级别的复制、外键约束,对SSD磁盘提供适当支持;支持事务、MVCC

  TokuDB: 使用Fractal Trees索引,适用存储大数据,拥有很压缩比;MariaDB引入。

列式存储引擎:

   Infobright: 目前较有名的列式引擎,适用于海量数据存储场景,如PB级别,专为数据分析和数据仓库设计。

   InfiniDB、MonetDB、LucidDB

开源社区存储引擎:

   Aria:前身为Maria,可理解为增强版的MyISAM(支持崩溃后安全恢复,数据缓存)

   Groona:全文索引引擎,Mroonga是基于Groona的二次开发版

   OQGraph: 由Open Query研发,支持图结构的存储引擎

   SphinxSE: 为Sphinx全文搜索服务器提供了SQL接口

   Spider: 能数据切分成不同分片,在分片上支持并行查询。

选择引擎的标准:

   是否需要事务;备份的类型的支持;崩溃后的恢复;特有的特性。





本文转自 梦想成大牛 51CTO博客,原文链接:http://blog.51cto.com/yinsuifeng/1947106,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
存储 SQL 关系型数据库
2:数据库的基本操作-MySQL
2:数据库的基本操作-MySQL
41 0
|
1月前
|
SQL 存储 关系型数据库
【C/C++ 应用开发 数据库】入门 Qt数据库编程:从基本操作到高级技巧
【C/C++ 应用开发 数据库】入门 Qt数据库编程:从基本操作到高级技巧
74 0
|
3月前
|
存储 SQL 关系型数据库
『 MySQL数据库 』数据库基础之表的基本操作
『 MySQL数据库 』数据库基础之表的基本操作
|
3月前
|
关系型数据库 MySQL 数据库
『 MySQL数据库 』数据库基础之库的基本操作
『 MySQL数据库 』数据库基础之库的基本操作
|
8月前
|
关系型数据库 中间件 数据库
Mariadb数据库基本操作之用户管理
Mariadb数据库基本操作之用户管理
206 1
|
8月前
|
存储 关系型数据库 MySQL
数据库的基本操作
数据库的基本操作
|
4月前
|
SQL 存储 关系型数据库
【SQL server】数据库入门基本操作教学
【SQL server】数据库入门基本操作教学
62 0
|
4月前
|
NoSQL MongoDB 数据库
数据库的基本操作
数据库的基本操作
|
4月前
|
关系型数据库 数据挖掘 数据库连接
Python数据分析中的数据库连接的基本操作,轻松完成与数据库的交互
Python数据分析中的数据库连接的基本操作,轻松完成与数据库的交互
49 0
|
8月前
|
SQL 关系型数据库 MySQL
MySQL基本操作指南:从数据库创建到数据操作
本文深入探讨了MySQL数据库的基本操作,涵盖了数据库的创建与删除、数据表的创建与删除、数据类型与约束,以及基本的数据操作语句。读者将了解如何使用SQL语句来创建数据库、数据表,并定义不同类型的数据字段及其约束。此外,本文还详细介绍了数据的插入、查询、更新和删除操作,为读者提供了在MySQL中进行数据管理的基本技能。通过掌握这些关键操作,读者将能够有效地操作MySQL数据库,为应用程序的开发和数据管理提供了可靠的基础。
91 0

热门文章

最新文章