区别

type
status
date
slug
summary
tags
category
icon
password

区别

mysql&sqlserver

  1. mysql必须用结尾,sqlserver可以选择不加批处理语句时需要加go
    1. 在mysql中常用的有InnoDB | MyISAM | MEMORY | MERGE等存储引擎,其中使用最多的是InnoDB
      1. 而在SQLServer中数据库的存储分为逻辑实现与物理实现
        notion image
        notion image
        以下是InnoDB存储引擎的一些关键特点和功能:
      2. 事务支持:InnoDB存储引擎支持事务,这意味着它可以确保数据库操作的一致性和可靠性。事务是一组数据库操作,要么全部成功,要么全部失败,这有助于维护数据的完整性。
      3. 行级锁定:InnoDB使用行级锁定(Row-Level Locking)来管理并发访问数据。这意味着多个事务可以同时访问同一表的不同行,而不会导致整个表的锁定,提高了数据库的并发性能。
      4. 外键支持:InnoDB支持外键约束,这允许在表之间建立关系,确保数据的引用完整性。外键是表之间的连接,可以保证数据的一致性。
      5. ACID特性:InnoDB存储引擎遵循ACID(原子性、一致性、隔离性和持久性)特性,这是数据库管理系统必须提供的核心特性。它确保了数据的可靠性和一致性。
      6. 热备份:InnoDB支持在线热备份,这意味着可以在数据库运行时备份数据而无需停止数据库服务。
      7. 崩溃恢复:InnoDB具有崩溃恢复机制,可以在数据库崩溃后自动恢复数据到一致的状态,减少了数据丢失的风险。
      8. 自动增长:InnoDB支持自动增长的表列,使得插入新数据时不需要手动指定列的值。
      9. 多版本并发控制:InnoDB使用多版本并发控制(MVCC)来处理并发事务,每个事务看到的数据是独立的版本,不会相互干扰。
     
    1. MySQL可以使用单引号与双引号,而SQLServer只支持单引号
      1. 都不严格区分大小写
     
    1. 定位某张表
      1. mysql:库名.表名,示例:Student.SC
        SQLServer:库名.dbo.表名 或者 库名…表名
         
    1. 在负载压力相同时,MySQL消耗的内存和CPU更少
    1. 在SQLServer中还提供了打印语句print,mysql中没有,示例:
      1. 系统数据库区别
          • SQLServer中的系统数据库:
            • master:记录系统的所有系统级信息
              model:模板数据库
              msdb:存储计划信息,备份与恢复相关信息,SQLServer代理程序调度报警与作业调度等信息
              tempdb:临时数据库,他为所有的临时表,临时存储过程以及其他所有临时操作提供存储空间
              resource:隐藏的只读数据库,包含所有系统对象,但不含用户数据或用户原数据
          • mysql中的系统数据库:
            • information_schema:提供了访问数据库元数据的方式。(元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有时用于表述该信息的其他术语包括“数据词典”和“系统目录”) ,即保存着关于MySQL服务器所维护的所有其他数据库的信息,如数据库名,数据库的表,表栏的数据类型与访问权限等
              在INFORMATION_SCHEMA中,有几张只读表。它们实际上是视图,而不是基本表
              mysql:核心数据库(类似于SQLServer的master表),存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息,例如修改root用户密码就需要使用这个数据库
              performance_schema;
              sys;
      1. 数据类型
          • MySQL中没有nchar,nvarchar,ntext等类型
          • SQLServer使用datetime类型作为获取默认值为当前时间的数据类型
            • 而MySQL使用timestamp时间错类型实现这个效果
          • MySQL支持无符号的整数类型,而SQLServer不支持
      1. 约束/索引
          • 递增语句MySQL是AUTO_INCREMENT,SQLServer是identify(10.1),从10开始一次加1
          • mysql不支持检查索引(check),SQLServer支持
      1. 获取当前时间
        1. MySQL可以使用current_date()函数获取当前日期,或者使用CURRENT_TIME()函数只获取当前时间,或者使用CURRENT_TIMESTAMP()函数与now()函数获取当前的完整时间,示例:
          而SQLServer可以使用getdate()方法获取当前时间日期,示例:
      1. 字符串连接函数
      1. 视图
        1. mysql视图中的from子句不允许存在子查询,而SQLServer支持
      1. 循环结构
        1. 基本一致
          但是在MySQL中在while循环后面需要加上do关键字
          同时在end后面需要写上循环类型与循环表示,例如:WHILE [标签];
          SQLServer不用
      1. case结构(一致)
        1. 都需要使用then
          不需要写Begin,只需要写END,分为俩种形式:
          • case后可以带一个值,在when中通过判断这个值的取值来达到选择效果(switch-case形式)
          • 也可以不带值,在when语句中写条件判断式(多重IF形式)
      1. IF结构
        1. mysql需要在if 条件后以及else后添加then再写语句
          并且mysql中的IF结构只能写在begin end块中
          而在SQLServer中不需要写then
      1. 判空函数
         
        五大数据库有关