首页 > 数据库 >SQLite 和 MySQL语法区别

SQLite 和 MySQL语法区别

时间:2024-11-16 21:44:17浏览次数:3  
标签:SQLite name column 语法 MySQL TABLE example

SQLite 和 MySQL 在 SQL 语法上有一些差异,这些差异主要体现在数据类型、函数、表和索引的管理等方面。以下是一些主要的不同之处:

1. 数据类型

SQLite
  • 支持的数据类型包括:TEXTINTEGERREALBLOB
  • 动态类型系统,允许在插入时自动转换数据类型。
MySQL
  • 支持更丰富的数据类型,如:
    • 数值类型:INTBIGINTFLOATDOUBLEDECIMAL 等。
    • 字符串类型:CHARVARCHARTEXTTINYTEXTMEDIUMTEXTLONGTEXT 等。
    • 时间日期类型:DATETIMEDATETIMETIMESTAMP 等。
    • 二进制类型:BINARYVARBINARYBLOB 等。
    • 枚举类型:ENUM
    • 集合类型:SET

2. 创建表

SQLite
1CREATE TABLE example (
2    id INTEGER PRIMARY KEY,
3    name TEXT NOT NULL,
4    age INTEGER
5);
MySQL
1CREATE TABLE example (
2    id INT AUTO_INCREMENT PRIMARY KEY,
3    name VARCHAR(255) NOT NULL,
4    age INT
5);

3. 自增主键

SQLite
  • 使用 AUTOINCREMENT 关键字。
  • 也可以使用 INTEGER PRIMARY KEY 来实现自增主键。
MySQL
  • 使用 AUTO_INCREMENT 关键字。

4. 修改表结构

SQLite
  • 添加列:
  •  
    1CREATE TABLE new_example AS SELECT column1, column2 FROM example;
    2DROP TABLE example;
    3ALTER TABLE new_example RENAME TO example;
MySQL
  • 添加列:
    1ALTER TABLE example ADD COLUMN new_column_name data_type;
  • 删除列:
    1ALTER TABLE example DROP COLUMN column_name;
  • 修改列的数据类型:
    1ALTER TABLE example MODIFY COLUMN column_name new_data_type;
  • 修改列的名称:
    1ALTER TABLE example CHANGE COLUMN old_column_name new_column_name new_data_type;

5. 索引

SQLite
  • 创建索引:
    1CREATE INDEX idx_name ON table_name (column_name);
  • 删除索引:
    1DROP INDEX idx_name;
MySQL
  • 创建索引:
    1CREATE INDEX idx_name ON table_name (column_name);
  • 删除索引:
    1DROP INDEX idx_name ON table_name;

6. 函数

SQLite
  • 常用函数:LOWER()UPPER()LENGTH()SUBSTR()REPLACE() 等。
  • 没有 IFNULL() 函数,可以使用 COALESCE() 替代。
MySQL
  • 常用函数:LOWER()UPPER()LENGTH()SUBSTRING()REPLACE()IFNULL() 等。

7. 子查询

SQLite
  • 支持子查询,但某些复杂子查询可能不被支持或性能较差。
MySQL
  • 支持复杂的子查询,并且优化器通常能更好地处理子查询。

8. 联接(JOIN)

SQLite
  • 支持标准的联接操作,如 INNER JOINLEFT JOINRIGHT JOINFULL OUTER JOIN
MySQL
  • 同样支持标准的联接操作,但在某些情况下可能会有不同的性能表现。

9. 事务

SQLite
  • 支持事务,但默认是自动提交模式。
  • 可以通过 BEGIN TRANSACTION; 开始一个事务,通过 COMMIT; 提交事务,通过 ROLLBACK; 回滚事务。
MySQL
  • 支持事务,具体行为取决于所使用的存储引擎(如 InnoDB 支持事务,MyISAM 不支持)。
  • 事务管理与 SQLite 类似,可以通过 BEGIN;COMMIT;ROLLBACK; 控制。

10. 其他特性

SQLite
  • 支持部分正则表达式匹配。
  • 支持虚拟表和模块化架构。
MySQL
  • 支持视图、存储过程、触发器等高级特性。
  • 支持分区表,可以在物理层面上将大表分成多个小表。

标签:SQLite,name,column,语法,MySQL,TABLE,example
From: https://blog.csdn.net/2301_76541209/article/details/143824152

相关文章

  • Python 语法基础:赋值、深浅拷贝、可变与不可变对象
    Python是一种广泛使用的高级编程语言,其语法简洁且功能强大。本文将详细讲解Python中的赋值、深浅拷贝以及可变与不可变对象的基本概念和使用方法。一、赋值赋值是编程中最基本的操作之一,它用于将值或对象绑定到变量名。在Python中,赋值使用等号=来进行。a=10......
  • 记一次Mysql远程连接报错
    问题描述:Plugincachingsha2passwordcouldnotbeloaded:在wsl2用docker中拉取了mysql镜像,启动后想在win下的环境远程连接到docker中的mysql,报错了,报错如下所示搜寻了相关的资料发现,在拉下来的myslq版本是8.0+,caching_sha2_password是默认的身份验证插件,既然sqlyog无......
  • 《MySQL必知必会》_9
    更新数据UPDATEcustomersSETcust_email='[email protected]'WHEREcust_id=10005;更新的表的名字为customers,SET命令用来将新值赋给被更新的列UPDATEcustomersSETcust_email='[email protected]',    cust_name='TheFudds'WHEREcust_id=10005;在更......
  • 【Python】基础语法速览(上)
    本文力图用最快的方式向大家陈列Python的基础语法,适合接触过其他编程语言后快速上手Python或供查阅巩固用参考书籍:《Python程序设计人工智能案例实践》[美]保罗·戴特尔哈维·戴特尔著码字不易,求点赞收藏加关注有问题欢迎评论区讨论目录Python基础语法速览(上)变......
  • 基于Java+SSM+JSP+MYSQL实现的宠物领养收养管理系统功能设计与实现四
    一、前言介绍:免费学习:猿来入此1.1项目摘要随着人们生活水平的提高,宠物已经成为越来越多家庭的重要成员。然而,宠物的数量增长也带来了一系列问题,如流浪宠物数量的增加、宠物健康管理的缺失以及宠物领养收养信息的不透明等。这些问题不仅影响了宠物的生存状况,也给社会带来了一定......
  • 基于Java+SSM+JSP+MYSQL实现的宠物领养收养管理系统功能设计与实现三
    一、前言介绍:免费学习:猿来入此1.1项目摘要随着人们生活水平的提高,宠物已经成为越来越多家庭的重要成员。然而,宠物的数量增长也带来了一系列问题,如流浪宠物数量的增加、宠物健康管理的缺失以及宠物领养收养信息的不透明等。这些问题不仅影响了宠物的生存状况,也给社会带来了一定......
  • 数据库基础(13) . MySQL视图
    1.介绍1.1.什么是视图MySQL中的视图是一种虚拟表,它并不存储实际的数据,而是存储了一条SELECT查询语句的结果集。视图可以简化复杂的查询操作,保护数据,并且可以使数据库结构更加清晰易懂。1.2.视图的作用简化查询:视图可以将复杂的查询包装起来,使得最终用户只需要执行简单......
  • MySQL数据库1——数据库概论
    一.数据库概论1.数据库数据库(DataBase,DB):是长期存储在计算机内、有组织的、统一管理的相关数据的集合。简单来说,它就是一个存储各种数据的仓库,且存储过程不是随便而是有组织的。数据库管理系统(DBMS):位于用户与操作系统制键的一层数据管理软件,为用户提供访问DB的方法。我......
  • CSP/信奥赛C++语法基础刷题训练(9):洛谷P1035:[NOIP2002 普及组] 级数求和
    CSP/信奥赛C++语法基础刷题训练(9):洛谷P1035:[NOIP2002普及组]级数求和题目描述已知:Sn=1......
  • CSP/信奥赛C++语法基础刷题训练(10):洛谷P1307:[NOIP2011 普及组] 数字反转
    CSP/信奥赛C++语法基础刷题训练(10):洛谷P1307:[NOIP2011普及组]数字反转题目描述给定一个整数NNN,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,......