UsepSumaryana / training-sql

0 stars 0 forks source link

Assignment Week 2 SQL #1

Open UsepSumaryana opened 1 year ago

UsepSumaryana commented 1 year ago

Task Week#2 - SQL

  1. Melakukan Transaction SQL : https://github.com/UsepSumaryana/training-sql/issues/1#issuecomment-1544464714
  2. Membuat table struktur dari form yang disediakan : https://github.com/UsepSumaryana/training-sql/issues/1#issuecomment-1544558878
  3. Eksekusi script sql subquery pada modul training: https://github.com/UsepSumaryana/training-sql/issues/1#issuecomment-1544635365
UsepSumaryana commented 1 year ago

Melakukan Transaction SQL

SET autocommit=0;


a. Insert 5 record & commited.

START TRANSACTION;

INSERT INTO offices (officeCode, city, phone, addressLine1, addressLine2, state, country, postalCode, territory)
  VALUES (8, 'Burnham', '707-862-0868', '36557 Union Crossing', 'Room 1928', NULL, 'New Zealand', '7600', 'NZ'),
  (9, 'Tianya', '508-742-4665', '05 Graedel Terrace', 'Apt 174', NULL, 'China', '2341', 'CN'),
  (10, 'Dalan', '790-328-7138', '3032 Spenser Point', 'Apt 869', NULL, 'China', '1124', 'CN'),
  (11, 'Malonty', '233-233-1130', '19206 Banding Terrace', '12th Floor', NULL, 'Czech Republic', '3821', 'CZ'),
  (12, 'Ezeiza', '238-733-7589', '1 Green Trail', 'PO Box 47673', NULL, 'Argentina', '1804', 'AR');

COMMIT;

image

b. Insert/update/delete di 1 sesi dan read table di sesi yg berbeda.

START TRANSACTION;

UPDATE offices SET city = 'JAKARTA';

SESI 1 :
image

SESI 2 : image

ROLLBACK;

image

c. Rollback ke savepoint.

START TRANSACTION;

DELETE FROM Offices WHERE officeCode = 12;

SAVEPOINT save_point_1;

DELETE FROM Offices WHERE officeCode = 11;

ROLLBACK TO SAVEPOINT save_point_1;

DELETE FROM Offices WHERE officeCode = 10;

COMMIT;

image image

UsepSumaryana commented 1 year ago

Membuat table struktur dari form yang disediakan

image

UsepSumaryana commented 1 year ago

Eksekusi script sql subquery pada modul training


a. SELECT statement

SELECT
  *
FROM customers c
WHERE customerNumber IN (SELECT
  customerNumber
FROM payments
WHERE amount > 100000);

image

b. INSERT statement

INSERT INTO customers_backup SELECT * FROM customers WHERE customerNumber BETWEEN 100 AND 120;

image

c. UPDATE statement

UPDATE orders
SET STATUS = 'On Hold'
WHERE customerNumber IN (SELECT
  customerNumber
FROM customers
WHERE country = 'USA');

image

d. DELETE statement

DELETE FROM payments WHERE customerNumber IN (SELECT customerNumber FROM customers WHERE creditLimit > 200000);

image

e. Filter dari column dengan agregasi nilai paling besar

SELECT * FROM customers c WHERE creditLimit = (SELECT MAX(creditLimit) FROM customers c2);

image

f. Query dari Subquery sebagai source data

SELECT
  sales.firstName,
  sales.lastName,
  office.city
FROM (SELECT
  firstName,
  lastName,
  officeCode
FROM employees e
WHERE jobTitle = 'VP Sales') AS sales
JOIN offices office
  ON sales.officeCode = office.officeCode

image

g. Combine query UNION

SELECT
  e.firstName
FROM employees e
UNION
SELECT
  c.contactFirstName
FROM customers c;

image

h. Combine query INTERSECT

Karena di mysql tidak ada intersect di ubah menggunakan distinct dan join

SELECT DISTINCT 
   customerNumber 
FROM orders o 
   INNER JOIN customers c USING(customerNumber);

image