Oracle 11g Cheat Sheet

Database Connection

CONNECT username/password@hostname:port/SID
CONNECT sys/password AS SYSDBA
DISCONNECT

Basic Queries

SELECT * FROM table_name;
SELECT column1, column2 FROM table_name;
SELECT DISTINCT column1 FROM table_name;
SELECT * FROM table_name WHERE condition;
SELECT * FROM table_name ORDER BY column1 [ASC|DESC];

Filtering

WHERE column = value
WHERE column LIKE 'pattern%'
WHERE column IN (value1, value2)
WHERE column BETWEEN value1 AND value2
WHERE condition1 AND condition2
WHERE condition1 OR condition2
WHERE NOT condition

Joins

SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column
SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column
SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column
SELECT * FROM table1 FULL OUTER JOIN table2 ON table1.column = table2.column

Aggregation

SELECT COUNT(*) FROM table_name;
SELECT SUM(column) FROM table_name;
SELECT AVG(column) FROM table_name;
SELECT MIN(column), MAX(column) FROM table_name;
SELECT column, COUNT(*) FROM table_name GROUP BY column;
SELECT column, COUNT(*) FROM table_name GROUP BY column HAVING COUNT(*) > 1;

Data Modification

INSERT INTO table_name (col1, col2) VALUES (val1, val2);
UPDATE table_name SET column1 = value1 WHERE condition;
DELETE FROM table_name WHERE condition;
MERGE INTO target_table USING source_table ON (condition)
  WHEN MATCHED THEN UPDATE SET col1 = val1
  WHEN NOT MATCHED THEN INSERT (col1, col2) VALUES (val1, val2);

Table Management

CREATE TABLE table_name (col1 datatype, col2 datatype);
CREATE TABLE new_table AS SELECT * FROM existing_table;
ALTER TABLE table_name ADD column_name datatype;
ALTER TABLE table_name DROP COLUMN column_name;
ALTER TABLE table_name MODIFY column_name new_datatype;
DROP TABLE table_name;
TRUNCATE TABLE table_name;

Indexes

CREATE INDEX index_name ON table_name (column);
CREATE UNIQUE INDEX index_name ON table_name (column);
DROP INDEX index_name;

Views

CREATE VIEW view_name AS SELECT columns FROM table WHERE condition;
CREATE OR REPLACE VIEW view_name AS SELECT columns FROM table WHERE condition;
DROP VIEW view_name;

Sequences

CREATE SEQUENCE seq_name START WITH 1 INCREMENT BY 1;
SELECT seq_name.NEXTVAL FROM dual;
SELECT seq_name.CURRVAL FROM dual;
DROP SEQUENCE seq_name;

PL/SQL Basics

DECLARE
  variable_name datatype [:= value];
BEGIN
  -- statements
EXCEPTION
  WHEN exception_name THEN
    -- handler
END;

Cursors

DECLARE
  CURSOR cursor_name IS SELECT statement;
BEGIN
  OPEN cursor_name;
  FETCH cursor_name INTO variables;
  CLOSE cursor_name;
END;

Stored Procedures

CREATE OR REPLACE PROCEDURE proc_name (param1 IN datatype, param2 OUT datatype)
IS
BEGIN
  -- procedure body
END;
/

EXEC proc_name(param1_value, param2_value);

Functions

CREATE OR REPLACE FUNCTION func_name (param1 IN datatype) RETURN datatype
IS
  return_value datatype;
BEGIN
  -- function body
  RETURN return_value;
END;
/

SELECT func_name(param1) FROM dual;

Triggers

CREATE OR REPLACE TRIGGER trigger_name
BEFORE|AFTER INSERT|UPDATE|DELETE ON table_name
[FOR EACH ROW]
BEGIN
  -- trigger body
END;
/

DROP TRIGGER trigger_name;

Transactions

COMMIT;
ROLLBACK;
SAVEPOINT savepoint_name;
ROLLBACK TO savepoint_name;
SET TRANSACTION READ ONLY;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

Performance Tuning

EXPLAIN PLAN FOR SELECT statement;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
CREATE INDEX index_name ON table_name(column1, column2);
ANALYZE TABLE table_name COMPUTE STATISTICS;

User Management

CREATE USER username IDENTIFIED BY password;
ALTER USER username IDENTIFIED BY new_password;
GRANT privilege_name ON object_name TO username;
REVOKE privilege_name ON object_name FROM username;
DROP USER username [CASCADE];

Export/Import

-- Data Pump Export
expdp username/password DIRECTORY=dir_name DUMPFILE=file_name.dmp SCHEMAS=schema_name

-- Data Pump Import
impdp username/password DIRECTORY=dir_name DUMPFILE=file_name.dmp SCHEMAS=schema_name

Common Functions

-- String
UPPER(), LOWER(), INITCAP(), CONCAT(), SUBSTR(), LENGTH(), INSTR(), TRIM(), REPLACE()

-- Numeric
ROUND(), TRUNC(), MOD(), ABS(), CEIL(), FLOOR(), POWER(), SQRT()

-- Date
SYSDATE, ADD_MONTHS(), MONTHS_BETWEEN(), LAST_DAY(), NEXT_DAY(), TRUNC(), ROUND()

-- Conversion
TO_CHAR(), TO_NUMBER(), TO_DATE(), CAST()

-- NULL handling
NVL(), NVL2(), COALESCE(), NULLIF()

System Views

SELECT * FROM all_tables;
SELECT * FROM all_tab_columns;
SELECT * FROM all_views;
SELECT * FROM all_indexes;
SELECT * FROM all_constraints;
SELECT * FROM all_sequences;
SELECT * FROM all_users;
SELECT * FROM v$session;
SELECT * FROM v$database;

Generated from Deepseek Ai

Comments

Popular posts from this blog

Terminal-Based Writing

Markdown Quick Tutorial

To install Jupyter Notebook on Ubuntu (Linux)