二、数据库的基本操作

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的核心就是存储引擎。

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

选择引擎的标准:

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

时间: 2024-11-09 01:30:24

二、数据库的基本操作的相关文章

android小功能实现之SQLite数据库的基本操作

 创建一个Android工程 一 新建数据库 1 新建一个类DBOpenHelper 内容如下: import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DBOpenHelper extends SQLiteOpenHelper { public DBOpenHelpe

TP框架对数据库的基本操作

数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是对数据的增删改的操作,一步步的讲述一下框架对数据库的操作 想要操作数据库,第一步必然是要:链接数据库 一.链接数据库 (1)找到模块文件夹中的Conf文件夹,然后进行编写config.php文件 我这里是这样的文件路径 (2)打开这个config.php文件,然后找到父类配置文件convention.php文件,将关于"数据库"的部分复制粘贴到config.php配置文件中 1 2 3 4 5 6 7 8 9 /

通过sql语句对MySql数据库的基本操作

一.数据库的基本操作 1 CREATE DATABASE mybookstore; 2 DROP DATABASE mybookstore; 二.表的基本操作 1.创建表 insert into 表名(字段名1,字段名2) values(值1,值2); 1 CREATE TABLE student( 2 id INT, 3 `name` VARCHAR(50) 4 ); 2.删除表 delete from 表名 where语句; DROP TABLE student; 3.修改表 update

数据库的基本操作Ⅲ

数据库的基本操作Ⅲ 因为数据库已经建立,所以只要使用它 格式:USE+库名: 先创建一个数据表,并查看一下 格式如下两图: 23.使用INSERT语句向数据表中添加一条新记录 格式:INSERT INTO + 表名 + VALUES(值1,值2,……); 注意:要一一对应 24.此时需要使用SELECT语句查看数据表中的数据 格式:SELECT * FROM +表名; 因为性别那一栏未填值,所以为空(NULL). 25.我们可以继续使用INSERT语句向表中添加数据,这次加上“性别”栏,并查看

Linux下MYSQL数据库的基本操作

建立数据库: mysql> create database test; //建立一个名为"test"的数据库 建立数据库表: mysql> create table test -> (name char(16) not null, -> passwd char(16) ->); //建立一个名为"test"的表,里面有两个字段,一个字段名为"name",类型为char,大小为16,非空:另一个字段名为"pa

PHP对于数据库的基本操作——更新数据

PHP对于数据库的基本操作--更新数据 主要的语句:$update = mysql_query("update user set password='abc' where username='123'"); 这句话的意思是,更新user表,设置passWord字段的值为abc,筛选条件为username为123的数据.就是修改user表里面username为123字段里面的password,将password的值为abc. 前面的随笔里面忘了说  where 这个了,这个我理解为筛选,

oracle学习入门系列之二 数据库基础知识

oracle学习入门系列之二 数据库基础知识 本篇蛤蟆要梳理下那些被淡忘的数据库基础知识,也许根本就没被人记住过.不管是哪种情况,该记住的必须记住,记不住就把他记下来吧. 首先问几个问题如下: 数据库基础知识是什么? 好吧,蛤蟆直接吐后而不亡,看目录开始吧. 本人邮箱:[email protected] 微信公众号:HopToad 欢迎各界交流 1      基本概念 概念就是概念,大伙对这些名词不要死磕,但是对定义一定要理解,理解方能领悟,领悟方能运用自如后创新. 1.1      数据 数据

实验二 数据库和表的创建与管理

实验二 数据库和表的创建与管理  创建用于企业管理的员工管理数据库,数据库名为YGGL中,YGGL数据库中包括三个表:Employees(员工信息表).Departments(部门信息表).Salary(员工薪水情况表).各表的结构如下表: 表1   Employees表结构 列名 数据类型 长度 是否允许为空 说明 EmployeeID char 6 not null 员工编号,主键 Name char 10 not null 姓名 Education char 4 not null 学历 B

MySQL数据库起步 关于数据库的基本操作(更新中...)

mysql的基本操作 连接指定的服务器(需要服务器开启3306端口) mysql -h ip地址 -P 端口号 -u 账号 -p 密码 删除游客模式 mysql -h ip地址 -P 端口号 -u 账号 -p 密码 修改root密码(修改之后需要重启mysql服务) 第一种:进入数据库 #这里的密码设置为123456 update mysql.user set password=password("123456") where host='localhost'; 第二种:不用进入数据库

对数据库的基本操作步骤

对数据库的基本操作步骤 + 面试题 MyBatis 最初的设计是基于 XML 配置文件的,但随着 Java 的发展(Java 1.5 开始引入注解)和 MyBatis 自身的迭代升级,终于在 MyBatis 3 之后就开始支持基于注解的开发了. 下面我们使用 Spring Boot + MyBatis 注解的方式,来实现对数据库的基本操作,具体实现步骤如下. MyBatis 注解版 1)创建数据表 drop table if exists `t\_user`; create table `t\_