1. 数据类型兼容性
以下是一些常见的 MySQL 数据类型及其在 OpenGauss 中的对应类型:
数值类型:
INT
对应INTEGERBIGINT
对应BIGINTFLOAT
对应FLOATDOUBLE
对应DOUBLE PRECISION字符串类型:
VARCHAR
对应VARCHARCHAR
对应CHARTEXT
对应TEXTLONGTEXT
对应TEXT
(虽然没有直接的LONGTEXT
类型,但TEXT
类型可以存储非常大的文本)日期和时间类型:
DATE
对应DATEDATETIME
对应TIMESTAMPTIME
对应TIMETIMESTAMP
对应TIMESTAMP二进制类型:
BLOB
对应BYTEATINYBLOB
对应BYTEAMEDIUMBLOB
对应BYTEALONGBLOB
对应BYTEA
2. SQL 语法兼容性
一些简单例子如下:
创建表:
CREATE TABLE users (id INT PRIMARY KEY,name VARCHAR(100),email VARCHAR(150));CREATE TABLE
插入数据:
INSERT INTO users (id, name, email) VALUES (1, 'Alice', 'alice@example.com');INSERT 0 1
查询数据:
SELECT * FROM users WHERE id = 1;id | name | email----+-------+-------------------1 | Alice | alice@example.com(1 row)
更新数据:
UPDATE users SET name = 'Bob' WHERE id = 1;--更新后数据如下id | name | email----+------+-------------------1 | Bob | alice@example.com(1 row)
删除数据:
DELETE FROM users WHERE id = 1;DELETE 1
分页查询:
SELECT * FROM users LIMIT 10 OFFSET 0;id | name | email----+------+-------(0 rows)
聚合函数:
CREATE TABLE employees(id INT PRIMARY KEY,name VARCHAR(100),age INT,salary NUMBER,email VARCHAR(150));SELECT COUNT(*), AVG(age), MAX(salary), MIN(salary) FROM employees;count | avg | max | min-------+-----+-----+-----0 | | |(1 row)
子查询:
CREATE TABLE ORDERS(userid INT,order_detail VARCHAR(150));SELECT * FROM users WHERE id IN (SELECT user_id FROM orders);id | name | email----+------+-------(0 rows)
联合查询:
CREATE TABLE customers (id INT PRIMARY KEY,name VARCHAR(100),email VARCHAR(150));SELECT * FROM users UNION SELECT * FROM customers;id | name | email----+------+-------(0 rows)
3. 其他兼容性特性
自动递增字段:
CREATE TABLE users (id SERIAL PRIMARY KEY,name VARCHAR(100));
外键约束:
CREATE TABLE orders (order_id SERIAL PRIMARY KEY,user_id INT,FOREIGN KEY (user_id) REFERENCES users(id));NOTICE: CREATE TABLE will create implicit sequence "orders_order_id_seq" for serial column "orders.order_id"NOTICE: CREATE TABLE PRIMARY KEY will create implicit index "orders_pkey" for table "orders"CREATE TABLE
- **索引**:```sqlCREATE INDEX idx_user_name ON users(name);CREATE INDEX
结论
openGauss 6.0.0 在 MySQL 语法兼容性方面做了大量的工作,无论是数据类型、SQL 语法、存储过程和函数、触发器,还是其他高级特性,都表现出色。这使得从 MySQL 迁移到 openGauss 变得更加容易,几乎不需要对现有应用程序进行重大修改。对于希望利用 openGauss 高性能、高可靠性优势的企业和开发者来说,这是一个非常吸引人的特点。
点击阅读原文跳转作者文章
文章转载自openGauss,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




