SQLite和MySQL都是常用的关系型数据库管理系统(RDBMS),它们的SQL写法在很多基本操作上是相似的,但也存在一些差异。以下是一些主要的不同点及相应的SQL语法示例。
数据类型SQLiteINTEGERREALTEXTBLOBMySQLINTVARCHARTEXTBLOBFLOATDOUBLEDATETIME示例:
SQLite:
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER,
balance REAL
); MySQL:
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
age INT,
balance DOUBLE
); 自增字段SQLite在SQLite中,自增字段使用INTEGER PRIMARY KEY AUTOINCREMENT。
MySQL在MySQL中,自增字段使用AUTO_INCREMENT。
示例:
SQLite:
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL
); MySQL:
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL
); 日期和时间SQLiteSQLite没有单独的DATETIME类型,可以使用TEXT、REAL或INTEGER来存储日期和时间。
MySQLMySQL有专门的日期和时间类型,如DATE、DATETIME、TIMESTAMP等。
示例:
SQLite:
CREATE TABLE events (
id INTEGER PRIMARY KEY,
event_date TEXT
); MySQL:
CREATE TABLE events (
id INT PRIMARY KEY AUTO_INCREMENT,
event_date DATETIME
); 限制和分页SQLite分页使用LIMIT和OFFSET。
MySQLMySQL使用相同的LIMIT和OFFSET语法,但有些MySQL版本也支持LIMIT的另一种写法。
示例:
SQLite:
SELECT * FROM users LIMIT 10 OFFSET 20;
MySQL:
SELECT * FROM users LIMIT 20, 10;插入或替换数据SQLite
SQLite提供INSERT OR REPLACE语法。
MySQLMySQL使用REPLACE INTO或者INSERT ... ON DUPLICATE KEY UPDATE。
示例:
SQLite:
INSERT OR REPLACE INTO users (id, name) VALUES (1, 'John Doe');
MySQL:
REPLACE INTO users (id, name) VALUES (1, 'John Doe'); -- 或者 INSERT INTO users (id, name) VALUES (1, 'John Doe') ON DUPLICATE KEY UPDATE name='John Doe';事务处理SQLite
SQLite支持标准的事务处理语法。
MySQLMySQL也支持标准的事务处理语法,但在某些引擎(如MyISAM)中不支持事务。
示例:
SQLite:
BEGIN TRANSACTION;
INSERT INTO users (name) VALUES ('Alice');
INSERT INTO users (name) VALUES ('Bob');
COMMIT; MySQL:
START TRANSACTION;
INSERT INTO users (name) VALUES ('Alice');
INSERT INTO users (name) VALUES ('Bob');
COMMIT; 字符串拼接SQLite使用||操作符进行字符串拼接。
MySQL使用CONCAT函数。
示例:
SQLite:
SELECT 'Hello' || ' ' || 'World';
MySQL:
SELECT CONCAT('Hello', ' ', 'World'); 总结虽然SQLite和MySQL在许多基本的SQL操作上是相似的,但它们在数据类型、自增字段、日期和时间处理、分页、插入或替换数据、事务处理、字符串拼接等方面有一些显著的差异。了解这些差异可以帮助你在不同的数据库环境中正确编写和转换SQL语句。
网友回复
有没有不依赖embedding向量的RAG技术?
有没有支持实时打断语音通话并后台帮你执行任何的ai模型?
开源ai大模型文件格式GGUF、MLX、Safetensors、 ONNX 有什么区别?
出海挣钱支付收款PayPal、Wise 、PingPong、Stripe如何选择?
如何实现类似google的图片隐形水印添加和识别技术?
linux上如何运行任意windows程序?
ai能写出比黑客还厉害的零日漏洞等攻击工具攻击任意软件系统工程?
js如何获取浏览器的音频上下文指纹、Canvas指纹、WebGL渲染特征?
为啥ai开始抛弃markdown文本,重新偏好html文本了?
网站有没有办法鉴别访问请求是由ai操控chrome-devtools-mcp发出的?


