Hi! Could we please enable some services and cookies to improve your experience and our website?

SQLize | PHPize | SQLtest

Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code

A A A
Login    Share code      Blog   FAQ
Copy Format Clear
-- Create the customers table CREATE TABLE customers ( customer_id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, name VARCHAR(255) NOT NULL ); -- Insert 25 random customer records INSERT INTO customers (name) VALUES ('Alice Smith'), ('Bob Johnson'), ('Charlie Brown'), ('Diana Prince'), ('Ethan Hunt'), ('Fiona Gallagher'), ('George Miller'), ('Hannah Abbott'), ('Ian Fleming'), ('Jane Austen'), ('Kevin Spacey'), ('Laura Croft'), ('Michael Jordan'), ('Nancy Drew'), ('Oliver Twist'), ('Penelope Cruz'), ('Quentin Tarantino'), ('Rachel Green'), ('Steve Rogers'), ('Tina Turner'), ('Ursula K. Le Guin'), ('Victor Hugo'), ('Wendy Darling'), ('Xavier Roberts'), ('Yvonne Craig'); -- Create the orders table CREATE TABLE orders ( order_id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, customer_id INT, order_date TIMESTAMP, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) ON DELETE CASCADE ); -- Fill orders table by 1000 records INSERT INTO orders (customer_id, order_date) SELECT FLOOR(DBMS_RANDOM.VALUE * 25) + 1, SYSTIMESTAMP - NUMTODSINTERVAL(FLOOR(DBMS_RANDOM.VALUE * 365), 'DAY') FROM (SELECT LEVEL AS n FROM dual CONNECT BY LEVEL <= 1000); CREATE INDEX idx_orders_customer_id ON orders(customer_id); SELECT customers.customer_id, COUNT(order_id) AS orders_count FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id GROUP BY customers.customer_id; SELECT customers.customer_id, ( SELECT COUNT(order_id) FROM orders WHERE orders.customer_id = customers.customer_id ) AS orders_count FROM customers; -- Find queries execution time SELECT sql_text, (elapsed_time / 1000 / executions) AS "Среднее время (ms)" FROM V$SQLAREA WHERE executions > 0 AND UPPER(sql_text) LIKE 'SELECT CUSTOMERS%'; -- Generate query plan EXPLAIN PLAN FOR SELECT c.customer_id, COUNT(o.order_id) AS orders_count FROM customers c LEFT JOIN orders o ON c.customer_id = o.customer_id GROUP BY c.customer_id; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); -- Generate query plan EXPLAIN PLAN FOR SELECT c.customer_id, (SELECT COUNT(o.order_id) FROM orders o WHERE o.customer_id = c.customer_id) AS orders_count FROM customers c; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

Stuck with a problem? Got Error? Ask AI support!

Copy Clear