Topography of IT

갈대적 속성의 ITer

Data

[RDMS] 주요 DB 비교

옹단 2020. 8. 19. 16:24

https://www.sql-workbench.eu/dbms_comparison.html

 

SQL Feature Comparison

Last updated: 2020-07-19 Items with (*) have a comment (or explanation) that is shown as a tooltip when hovering the mouse over them (The tooltips don't work on Internet Explorer 10 or older versions. Please use a different browser) Please send feedback or

www.sql-workbench.eu

Feature Oracle MSSQL Postgres MySQL SQLite
Queries          
Window functions Yes Yes(*) Yes(*) Yes(*) Yes(*)
Common Table Expressions Yes Yes Yes Yes(*) Yes(*)
CTE in a sub-query(*) Yes Yes No Yes(*) Yes
Recursive Queries Yes Yes Yes Yes(*) Yes(*)
Row constructor(*) No Yes Yes(*) No Yes
Filtered aggregates(*) No Yes(*) No No Yes(*)
PIVOT Support Yes No(*) Yes No No
GROUP BY .. ROLLUP Yes Yes(*) Yes Yes No
GROUP BY .. GROUPING SETS(*) Yes Yes(*) Yes No No
Temporal queries(*) Yes No Yes(*) No No
SELECT without a FROM clause No Yes Yes (Yes)(*) Yes
Parallel queries(*) Yes Yes(*) Yes No No
Aggregates for strings Yes(*) Yes Yes(*) Yes Yes
Tuple comparison (Yes)(*) Yes No Yes(*) (Yes)(*)
Tuple updates Yes Yes(*) No No Yes(*)
UPDATE with a join No Yes Yes Yes No
ANSI date literals(*) Yes Yes No Yes No
Query variables(*) No No Yes Yes No
UNNEST(*) No Yes No No No
Split string to rows(*) No Yes Yes(*) No No
Regular Expressions Oracle Postgres SQL Server MySQL SQLite
Comparison based on RegEx(*) Yes Yes No Yes No
Substring(*) Yes Yes No Yes(*) No
Replace(*) Yes Yes No Yes(*) No
Constraints Oracle Postgres SQL Server MySQL SQLite
Deferred foreign key constraints(*) Yes Yes No No Yes
Check constraints Yes Yes Yes Yes(*) Yes
Check constraints with sub-query No No No No No
Check constraints using custom functions(*) No Yes Yes No No(*)
Exclusion constraints(*) No Yes No No No
Statement based constraint evaluation Yes Yes Yes No Yes
ON DELETE CASCADE(*) Yes Yes (Yes)(*) Yes Yes
ON UPDATE CASCADE(*) No Yes (Yes)(*) Yes Yes
Foreign keys using MATCH FULL(*) No Yes No No(*) No(*)
Indexing Oracle Postgres SQL Server MySQL SQLite
Partial index(*) Yes(*) Yes (Yes)(*) No Yes
Descending Index(*) Yes Yes Yes Yes(*) Yes
Index on expression(*) Yes Yes (No)(*) (No)(*) Yes(*)
Index using a custom function(*) Yes Yes No No No(*)
Index include columns(*) No Yes(*) Yes No No
Multi-column statistics(*) Yes Yes Yes No No
Clustered index(*) Yes(*) No Yes Yes Yes
Duplicate NULL values in unique index(*) No(*) Yes No Yes(*) Yes
DML Oracle Postgres SQL Server MySQL SQLite
Writeable CTEs(*) No Yes(*) Yes(*) No No
Multi-row INSERTs(*) No Yes Yes Yes Yes
TRUNCATE table with FK(*) Yes(*) Yes No No No
Read consistency during DML operations(*) Yes Yes Yes No Yes
Use target table in sub-queries(*) Yes Yes Yes No No(*)
MERGE support(*) Yes Yes(*) Yes Yes(*) No
SELECT .. FOR UPDATE NOWAIT(*) Yes Yes No(*) Yes(*) No
RETURNING clause as a result set No Yes Yes No No
Parallel DML(*) Yes No No No No
Data Types(*) Oracle Postgres SQL Server MySQL SQLite
User defined datatypes(*) Yes Yes No(*) No No
Domains(*) No Yes (Yes)(*) No No
Distinct types(*) No No No No No
Arrays No Yes No No No
Enums(*) No Yes No Yes No
IP address No Yes No No No
BOOLEAN(*) No(*) Yes No(*) No(*) No
Interval Yes Yes No No No
TIME(*) No Yes Yes Yes No
DATE(*) No(*) Yes Yes Yes No
TIMESTAMP(*) Yes Yes Yes(*) Yes(*) No
TIME ZONE Support(*) Yes Yes Yes(*) No No
Range types(*) (No)(*) Yes No No No
DDL Oracle Postgres SQL Server MySQL SQLite
Transactional DDL(*) No Yes Yes No Yes
Computed columns(*) Yes Yes(*) Yes Yes(*) No
Functions as column default(*) (Yes)(*) Yes Yes No (Yes)(*)
Sequences Yes Yes Yes No No
Auto increment columns(*) Yes(*) Yes Yes Yes Yes
Synonyms Yes No Yes No No
Non-blocking index creation(*) Yes Yes Yes No No
Partitioning Yes (Yes)(*) Yes (Yes)(*) No
Cascading DROP(*) Yes Yes No No(*) No
DDL Triggers(*) Yes Yes Yes No No
TRUNCATE Trigger(*) (No)(*) Yes No No No
Custom name for PK constraint(*) Yes Yes Yes No Yes
ALTER a table used in a view(*) Yes No(*) Yes Yes Yes
Add table column at specific position(*) No No No Yes No
Materialized views(*) Yes Yes Yes(*) No No
MVIEW with query rewrite(*) Yes No Yes No No
Automatically updated MVIEWS(*) Yes No Yes No No
Temporary Tables Oracle Postgres SQL Server MySQL SQLite
Permanent global temporary tables(*) Yes No No No No
Global temporary tables(*) No No Yes No No
Session local temporary tables(*) No Yes Yes Yes Yes
Use a temporary table twice in a single query Yes Yes Yes No Yes
Programming Oracle Postgres SQL Server MySQL SQLite
Stored procedures(*) Yes Yes(*) Yes Yes No(*)
Table functions(*) Yes Yes Yes No No(*)
Custom aggregates(*) Yes Yes No(*) No No
Function overloading(*) Yes(*) Yes No No No
User defined operators(*) No(*) Yes No No No
Statement level triggers(*) Yes Yes Yes No No
Row level triggers(*) Yes Yes No Yes Yes
RETURNING clause in a programming language(*) Yes Yes Yes No No
Before triggers(*) Yes Yes (No)(*) Yes Yes
Dynamic SQL in functions(*) Yes Yes No(*) No No
Dynamic SQL in triggers(*) Yes Yes Yes No No
Delete triggers fired by cascading deletes(*) Yes Yes Yes No Yes(*)
Built-in scheduler Yes No Yes Yes No
Views Oracle Postgres SQL Server MySQL SQLite
Updateable Views Yes Yes Yes Yes No
WITH CHECK OPTION(*) Yes Yes Yes Yes No
Triggers on views Yes Yes Yes No Yes
Views with derived tables(*) Yes Yes Yes No Yes
JOINs and Operators Oracle Postgres SQL Server MySQL SQLite
CROSS JOIN Yes Yes Yes Yes Yes
FULL OUTER JOIN Yes Yes Yes No No
LATERAL JOIN Yes(*) Yes (Yes)(*) No No
JOIN ... USING (...)(*) Yes Yes No Yes Yes
JOINs using tuple comparison(*) Yes Yes No Yes No
INTERSECT (Yes)(*) Yes (Yes)(*) No (Yes)(*)
EXCEPT (Yes)(*) Yes (Yes)(*) No (Yes)(*)
ORDER BY ... NULLS LAST Yes Yes No No Yes(*)
IS DISTINCT FROM No Yes No Yes(*) No
BETWEEN SYMMETRIC No Yes No No No
OVERLAPS(*) (Yes)(*) Yes No No No(*)
Partitioned outer join(*) Yes No(*) No No No
Other Oracle Postgres SQL Server MySQL SQLite
Catalogs ("databases") (Yes)(*) (Yes)(*) Yes Yes Yes
Schemas Yes Yes Yes No No
INFORMATION_SCHEMA(*) No Yes Yes Yes No
NoSQL Features Oracle Postgres SQL Server MySQL SQLite
XML Support(*) Yes Yes Yes Yes No
XPath(*) Yes Yes Yes Yes No
XQuery Yes No Yes No No
JSON(*) Yes(*) Yes Yes(*) Yes(*) Yes(*)
SQL/JSON Path(*) Yes(*) Yes(*) Yes(*) No No
Indexes on JSON documents(*) Yes(*) Yes (No)(*) (No)(*) (Yes)(*)
Key/Value storage No Yes No No(*) No
Security Oracle Postgres SQL Server MySQL SQLite
User groups / Roles Yes Yes Yes Yes(*) No
Row level security(*) Yes Yes(*) Yes No No
Grant on column level(*) (Yes)(*) Yes Yes Yes No

'Data' 카테고리의 다른 글

SQL Function Reference: Oracle vs. MSSQL Server  (0) 2020.08.19
[Hadoop] Linux/Mac에서 설치  (0) 2020.08.19