澳门十大赌场最新排名 > 澳门十大赌场 > 数据库小结1,MyISAM和InnoDB的主要区别和应用场景

原标题:数据库小结1,MyISAM和InnoDB的主要区别和应用场景

浏览次数:87 时间:2019-08-07

 一、基础

主要区别:

0.sql的执行顺序
手写顺序
图片 1
机读顺序
图片 2
总结
图片 3
①From:对from左边的表和右边的表计算笛卡尔积,产生虚拟表c1
②On:对c1中的数据进行on过滤,只有符合过滤条件的数据记录才会记录在虚拟表c2中
③Join:若指定了连接条件(left、right),主表中的未匹配的行就会作为外部行添加到c2中,生成虚拟表c3
④Where:对虚拟表c3中的数据进行条件过滤,符合过滤条件的记录插入到虚拟表c4中
⑤Group by:根据group by子句中的列,对c4中的记录进行分组操作,生成c5
⑥Having:对虚拟表c5中的记录进行having过滤,符合筛选条件的记录插入虚拟表c6中
⑦Select:执行select操作,选择指定的列,插入到虚拟表c7中
⑧Distinct:对c7中的数据去重,生成虚拟表c8
⑨Order by:对虚拟表c8中的数据按照指定的排序规则进行排序,生成虚拟表c9
⑩Limit:取出指定的记录,产生虚拟表c10,将结果返回
1.join图
图片 4
2.数据准备
图片 5
①C、Z两表共有(交集部分)
Select * from tbl_emp inner join tal
图片 6
②C、Z共有 C的独有
图片 7
③ C、Z共有 Z的独有
图片 8
④C的独有
图片 9
⑤Z的独有
图片 10
⑥C的独有 Z的独有
图片 11
⑦AB全有
图片 12

1、创建数据库

  • 1).MyISAM是非事务安全型的,而InnoDB是事务安全型的。
  • 2).MyISAM锁的粒度是表级,而InnoDB支持行级锁定。
  • 3).MyISAM支持全文类型索引,而InnoDB不支持全文索引。
  • 4).MyISAM相对简单,所以在效率上要优于InnoDB,小型应用可以考虑使用MyISAM。
  • 5).MyISAM表是保存成文件的形式,在跨平台的数据转移中使用MyISAM存储会省去不少的麻烦。
  • 6).InnoDB表比MyISAM表更安全,可以在保证数据不会丢失的情况下,切换非事务表到事务表(alter table tablename type=innodb)。

CREATE DATABASE database-name

应用场景:

2、删除数据库

  • 1).MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择。
  • 2).InnoDB用于事务处理应用程序,具有众多特性,包括ACID事务支持。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能。

 drop database dbname

3、备份sql server

 --- 创建 备份数据的 device

USE master

EXEC sp_addumpdevice 'disk',’testBack', :mssql7backupMyNwind_1.dat' --- 开始 备份

BACKUP DATABASE pubs TO testBack

4、创建新表

 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

例子:

CREATE TABLE tableA(

    [id] [int] NOT NULL PRIMARY KEY,

    [Name][nvarchar](50) NOT NULL,

    [Age] [int] NOT NULL,)

根据已有的表创建新表:

A:create table tab_new like tab_old (使用旧表创建新表SQL server2008不可以)

B:create table tab_new as select col1,col2… from tab_old definition only

C: select *into  tableAnew from tableA(复制表结构和表数据。旧表创建新表无主键。SQL server2008R2可以用 亲测)

D:select * into table3 from tableA where 1=2;(复制表数据,主键复制不过去)

E: insert into table3 select * from tableA where id=1;(如果表存在,导入数据)

F: select * into table5 from tableA where 1<>1;(旧表创建新表,只有表结构)

5、删除新表

drop table tabname

6、增加一个列

Alter table tabname add column col type

本文由澳门十大赌场最新排名发布于澳门十大赌场,转载请注明出处:数据库小结1,MyISAM和InnoDB的主要区别和应用场景

关键词: AG游戏平台

上一篇:sql最简单的查询语句,SQLServer约束介绍

下一篇:没有了