首页 > 数据库 >三、(4)数据库的基本操作

三、(4)数据库的基本操作

时间:2023-09-17 10:08:09浏览次数:110  
标签:存储 记录 数据库 事务 引擎 mysql 基本操作


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

MySQL存储引擎介绍 
文件系统: 操作系统组织和存取数据的一种机制。文件系统是一种软件。 
类型:ext2 3 4 ,xfs
不管使用什么文件系统,数据内容不会变化 不同的是,存储空间、大小、速度。 
MySQL引擎: 可以理解为,MySQL的“文件系统”,只不过功能更加强大。 
MySQL引擎功能: 除了可以提供基本的存取功能,还有更多功能事务功能、锁定、备份和恢复、优化以及特殊功能。
1、InnoDB存储引擎:默认引擎,最常用的。
  InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键;InnoDB是默认的MySQL引擎
InnoDB特点: 
  支持事务处理,支持外键,支持崩溃修复和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。

2、MyISAM存储引擎:(了解)
     MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事务。
MyISAM特点: 
     插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比较低,也可以使用。
12306查询 只生成一条数据这种适合

3、MEMORY内存型引擎(了解)
   MEMORY存储引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问
MEMORY特点: 
   所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表。

4、Archive(归档引擎)

**如何选择引擎:**如果要提供提交、回滚、并要求实现并发控制,InnoDB是一个好的选择;如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率;如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的Memory引擎;MySQL中使用该引擎作为临时表,存放查询的中间结果;如果只有INSERT和SELECT操作,可以选择Archive,Archive支持高并发的插入操作,但是本身不是事务安全的。Archive非常适合存储归档数据,如记录日志信息可以使用Archive。

使用哪一种引擎需要灵活选择,一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求,使用合适的存储引擎,将会提高整个数据库的性能。

存储引擎查看:

mysql> show engines;

三、(4)数据库的基本操作_android

修改搜索引擎

ALTER TABLE 表名 ENGINE=引擎;

看你的mysql当前默认的存储引擎:

mysql> show variables like '%storage_engine%';

如何查看Mysql服务器上的版本

mysql> select version();

创建时候指定引擎

mysql> create table t1(id int,manager char(10)) engine =innodb;

了解:

1.什么是外键:外键的主要作用是保持数据的一致性、完整性。
2.什么是索引:索引相当于书中的目录,可以提高数据检索的效率,降低数据库的IO的压力。MySQL在300万条记录左右性能开始逐渐下降,虽然官方文档说500~800w记录,所以大数据量建立索引是非常有必要的
3.什么是行锁定与锁表:可以将一张表锁定和可以单独锁一行的记录。为了防止你在操作的同时也有别人在操作。
4.什么是事务:事务是由一步或几步数据库的操作。这系列操作要么全部执行,要么全部放弃执行。

事务控制语言(TCL)

事务控制语言 (Transation Control Language)  有时可能需要使用 DML 进行批量数据的删除,修改,增加。比如,在一个员工系统中,想删除一个人的信息。除了删除这个人的基本信息外,还应该删除与此人有关的其他信息,如邮箱,地址等等。那么从开始执行到结束,就会构成一个事务。对于事务,要保证事务的完整性。要么成功,要么撤回。
事务要符合四个条件(ACID):

事务具有四个特性原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这四个特性也简称ACID性。

(1)原子性:事务是应用中最小的执行单位,就如原子是自然界最小颗粒,事务要么成功,要么撤回.具有不可再分的特征一样。事务是应用中不可再分的最小执行体。(最小了,不可再分了)

(2)一致性:事务执行的结果,必须使数据库从一个一致性状态,变到另一个一致性状态比如:当数据库中只包含事务成功提交的结果时,数据库处于一致性状态。一致性是通过原子性来保证的。

(3)隔离性:当涉及到多用户操作同一张表时,数据库会为每一个用户开启一个事务。各个事务的执行互不干扰,任意一个事务的内部操作对其他并发的事务都是隔离的。也就是说:并发执行的事务之间不能看到对方的中间状态,并发执行的事务之间不相互影响。(说白了,就是你做你的,我做我的!)

(4)持续性:持续性也称为持久性指事务一旦提交对数据所做的任何改变,都要记录到永久存储器中,通常是保存进物理数据库。即使数据库崩溃了,我们也要保证事务的完整性。

二、sql语句

增删改查

SQL(Structured Query Language 即结构化查询语言)
SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。
DDL语句	数据库定义语言:数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
DML语句   数据库操纵语言(对记录的操作): 插入数据INSERT、删除数据DELETE、更新数据UPDATE
DCL语句	数据库控制语言(和权限有关): 例如控制用户的访问权限GRANT、REVOKE
DQL语句   数据库查询语言:查询数据SELECT

程序连接数据库的文件:

A. ODBC --------- PHP<.php>
B. JDBC ----------- JAVA <.jsp>

==========================================================================

库----相当于一个目录,存放数据的

库里面存放的表, 相当于是文件。
每一行叫做记录,除第一行。
每一列叫一个字段。列上面的第一个叫字段名称。
创建一个库:---->查看库--->进入这个库----->创建表----->查看表:查看表名,表的字段(表结构),表里面的内容(表记录),查看表的状态----->修改表:添加字段,删除字段,修改字段----->修改记录(更新记录),添加记录,删除记录。各种查询,删除表,删除库。
1.创建库
mysql> create database 库名;
2.查看数据库
mysql> show databases;
3.进入库
mysql> use 库名
4.查看当前所在的库
mysql> select database();
5.查看当前库下所有的表格
mysql> show tables;

创建表

语法:
create table 表名(
		字段名1  类型[(宽度) 约束条件],
		字段名2  类型[(宽度) 约束条件],
		字段名3  类型[(宽度) 约束条件]
)[存储引擎 字符集];
==在同一张表中,字段名是不能相同
==宽度和约束条件可选
==字段名和类型是必须的
=========================================================
1.创建表:
创建表 create table t1(id int,name varchar(20),age int); 
                      字段 类型 字段 类型(长度),字段 类型 
mysql> create table t1(id int,name varchar(50),sex enum('m','f'),age int);

2.查看有哪些表
mysql> show tables;

3.查看表结构:
mysql> desc t1;

4.查看表里面的所有记录:
语法: select 内容 from 表名;
mysql> select * from t1;
*:代表所有内容

5.查看表里面的指定字段:
语法:select 字段,字段 from 表名;
mysql> select name,sex from t1;

6.查看表的状态
mysql> show table status like '表名'\G    ---每条SQL语句会以分号结尾,想看的清楚一些以\G结尾,一条记录一条记录显示。(把表90度向左反转,第一列显示字段,第二列显示记录)使用的\G就不用添加分号了

7.修改表名称
方式一、语法:rename table 旧表名 to 新表名;
mysql> rename table t1 to t2;
Query OK, 0 rows affected (0.00 sec)
方式二、语法:alter table 旧表名 rename 新表名;
mysql> alter table t2 rename t3;

8.使用edit(\e)编辑------了解
mysql> \e  #可以写新的语句,调用的vim编辑器,在里面结尾的时候不加分号,保存退出之后在加“;”
    -> ;
    
9.删除表
mysql> drop table 表名;

10.删除库
mysql> drop database 库名;


标签:存储,记录,数据库,事务,引擎,mysql,基本操作
From: https://blog.51cto.com/u_15135903/7499506

相关文章

  • 三、(3)Mysql数据库的安装
    关闭防火墙和selinux1、编译安装mysql5.71、清理安装环境:#yumerasemariadbmariadb-servermariadb-libsmariadb-devel-y#userdel-rmysql#rm-rf/etc/my*#rm-rf/var/lib/mysql2、创建mysql用户[root@mysql-server~]#useradd-rmysql-M-s/bin/false#-M-s/b......
  • 三、(1)关系型数据库管理系统介绍
    1、什么是数据库数据库就是一个存放计算机数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来对数据进行组织和存储的,可以通过数据库提供的多种方法来管理其中的数据。2、数据库的种类最常用的数据库模式主要有两种,即关系型数据库和非关系型数据......
  • Sql server 对数据库、表、字段的一些操作
    usemaster--修改数据库名称--方法一。alterdatabaseTestDatamodifyname=new_TestData--方法二。(需要比较高的权限)execsp_renamedbTestData,new_TestData--修改逻辑名(主数据库逻辑名称)alterdatabaseTestDatamodifyfile(name=TestData_Data,newname=new_Te......
  • openGauss学习笔记-71 openGauss 数据库管理-创建和管理普通表-删除表中数据
    openGauss学习笔记-71openGauss数据库管理-创建和管理普通表-删除表中数据在使用表的过程中,可能会需要删除已过期的数据,删除数据必须从表中整行的删除。SQL不能直接访问独立的行,只能通过声明被删除行匹配的条件进行。如果表中有一个主键,用户可以指定准确的行。用户可以删除匹配......
  • python | 连接数据库
    介绍一些python中用于连接常用数据库的依赖库。SQLite3SQLite3是Python中自带的数据库模块,适用于小型应用和快速原型开发。SQLite是一个进程内的库,实现了自给自足的、无服务器的、是非常小的,是轻量级的、事务性的SQL数据库引擎。它是一个零配置的数据库,不需要在系统中配置......
  • Python 基本操作
    Python语法可以直接在命令行中编写并执行:>>>print("Hello,World!")Hello,World!或者,可以在服务器上创建一个带有.py文件扩展名的Python文件,并在命令行中运行它:C:\Users\YourName>pythonmyfile.pyPython缩进缩进是指代码行开头的空格。在其他编程语言中,代码中的缩进......
  • 【php基础】php连接mysql数据库及基本操作02
    一、php连接mysql数据库<?php$servername="localhost";$username="root";$password="root";$dbname="mysql";//创建连接$conn=newmysqli($servername,$username,$password,$dbname);//检测连接i......
  • OceanBase数据库培训内部资料
    概述 OceanBase是阿里巴巴集团自主研发的分布式关系型数据库系统。它是一个高性能、高可用性和高扩展性的数据库解决方案,专为处理大规模数据和高并发负载而设计。OceanBase数据库的一些关键特性和功能分布式架构:OceanBase采用分布式架构,将数据分散存储在多个节点上,实现了数据......
  • 数据库设计
       ......
  • Hyperledger Fabric开发之启动CouchDB作为状态数据库
    测试环境MacCatalinaDockerDesktop3.6.0HyperledgerFabric2.5.4CouchDB3.3.2简单分析当前版本的Fabric2.5.4默认支持的LevelDB仅能够实现存储简单的键值对数据,并且LevelDB与Peer节点并存于同一个操作系统进程中。CouchDB适用于存储JSON文件,并支持富查询和对更多数据类型的操......