千家信息网

二、数据库的基本操作

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,MySQL命令主要分为以下几类:DML:Data Manapulate Language: 数据操作语言(操作表中数据)INSERT, REPLACE, UPDATE, DELETEDDL:Data
千家信息网最后更新 2025年01月31日二、数据库的基本操作

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: testCreate 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\GERROR 1049 (42000): Unknown database 'test_tb'

2.3、数据库存储引擎

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

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

mysql> SHOW ENGINES \G*************************** 1. row ***************************      Engine: CSV     Support: YES     Comment: CSV storage engineTransactions: NO          XA: NO  Savepoints: NO*************************** 2. row ***************************      Engine: PERFORMANCE_SCHEMA     Support: YES     Comment: Performance SchemaTransactions: NO          XA: NO  Savepoints: NO*************************** 3. row ***************************      Engine: MyISAM     Support: YES     Comment: MyISAM storage engineTransactions: 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 tablesTransactions: NO          XA: NO  Savepoints: NO*************************** 6. row ***************************      Engine: MEMORY     Support: YES     Comment: Hash based, stored in memory, useful for temporary tablesTransactions: NO          XA: NO  Savepoints: NO*************************** 7. row ***************************      Engine: FEDERATED     Support: NO     Comment: Federated MySQL storage engineTransactions: NULL          XA: NULL  Savepoints: NULL*************************** 8. row ***************************      Engine: InnoDB     Support: DEFAULT     Comment: Supports transactions, row-level locking, and foreign keysTransactions: YES          XA: YES  Savepoints: YES8 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中专用的存储引擎。

存储引擎比较:

功能MyISAMMemoryInnoDBArchive
存储限制256TBRAM64TBNone
支持事务NoNoYesNo
支持全文索引YesNoNoNo
支持数索引
YesYesYesNo
支持哈希索引
NoYesNoNo
支持数据索引
NoN/AYesNo
支持外键
NoNoYesNo

第三方的存储引擎:

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: 能数据切分成不同分片,在分片上支持并行查询。

选择引擎的标准:

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








数据 支持 存储 引擎 数据库 索引 事务 格式 空间 不同 语言 安全 全文 文件 特性 处理 管理 功能 场景 日志 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全人民警察心得体会 网络安全的7种问题 wcl中国服务器注册 网络安全工程师初中毕业 印度为什么软件开发那么厉害 阿里云数据库租费每年多少钱 区妇联网络安全宣传 软件开发工程师的述职报告 数据库公交安全管理系统 数据库应用支撑层有哪些技术 慈溪游戏软件开发流程 it服务器制造 网络安全作文400字四年级 后端语言和数据库的关系 广州系统软件开发要多少钱 云南什么是软件开发检测中心 车载网络技术发展怎么样 服务器里面成员也可以使用的指令 数据库判断题100道及答案 无线网络安全密钥忘了 建立网络安全检查制度 创建企业级地理数据库 江苏什么是网络技术服务五星服务 普陀区品牌网络技术服务什么价格 互联网科技十大影响力 怎样将数据库表结构导出 北京建设网络安全态势感知 与思讯会员积分数据库同步 联想服务器电源 药品数据库实战
0