First Commit

This commit is contained in:
LeviM0323 committed 2026-10-07 15:17:53 -04:00
commit d861a1a02c
36 files changed
+2996

No files matched your search

+144
View File
@@ -0,0 +1,144 @@
-- (1) Categories ---
-- DROP TABLE Categories CASCADE CONSTRAINTS; -- uncomment after 1st run
CREATE TABLE categories (
categoryId NUMBER(8,0),
categoryName VARCHAR2(15) NOT NULL,
categoryCode NUMBER(6,0),
description VARCHAR2(300),
CONSTRAINT Categories_CategoryID_pk PRIMARY KEY (CategoryId),
);
-- (2) Customers --
-- DROP TABLE Customers CASCADE CONSTRAINTS; -- uncomment after 1st run
CREATE TABLE customers (
customerId CHAR(5),
companyName VARCHAR2(40) NOT NULL,
contactName VARCHAR2(30),
contactTitle VARCHAR2(30),
address VARCHAR2(60),
city VARCHAR2(15),
region VARCHAR2(15),
postalCode VARCHAR2(10),
country VARCHAR2(15),
phone VARCHAR2(24),
fax VARCHAR2(24),
email VARCHAR2(50),
CONSTRAINT Customers_CustomerId_pk PRIMARY KEY (customerId)
);
-- (3) Employees --
-- DROP TABLE Employees CASCADE CONSTRAINTS; -- uncomment after 1st run
CREATE TABLE employees (
employeeId NUMBER(8,0),
lastName VARCHAR2(20) NOT NULL,
firstName VARCHAR2(10) NOT NULL,
title VARCHAR2(30),
titleOfCourtesy VARCHAR2(25),
birthDate DATE,
hireDate DATE,
address VARCHAR2(60),
city VARCHAR2(15),
region VARCHAR2(15),
postalCode VARCHAR2(10),
country VARCHAR2(15),
homePhone VARCHAR2(24),
extension VARCHAR2(4),
notes VARCHAR2(600),
reportsTo NUMBER(8,0),
photograph VARCHAR2(255),
SIN CHAR(9),
CONSTRAINT Employees_EmployeeId_pk PRIMARY KEY (employeeId),
);
-- (4) OrderDetails --
-- DROP TABLE OrderDetails CASCADE CONSTRAINTS; -- uncomment after 1st run
CREATE TABLE orderDetails (
orderId NUMBER(8,0) NOT NULL,
productId NUMBER(8,0) NOT NULL,
unitPrice NUMBER(8,2) NOT NULL,
quantity NUMBER(6,0) NOT NULL,
discount NUMBER(5,2) NOT NULL,
CONSTRAINT orderDetails_OID_PID_pk PRIMARY KEY (orderId, productId),
);
-- (5) Orders --
-- DROP TABLE Orders CASCADE CONSTRAINTS; -- uncomment after 1st run
CREATE TABLE orders (
orderId NUMBER(8,0) NOT NULL,
customerId CHAR(5),
employeeId NUMBER(8,0),
territoryId VARCHAR2(20),
orderDate DATE,
requiredDate DATE,
shippedDate DATE,
shipVia NUMBER(8,0),
freight NUMBER(8,2),
shipName VARCHAR2(40),
shipAddress VARCHAR2(60),
shipCity VARCHAR2(15),
shipRegion VARCHAR2(15),
shipPostalCode VARCHAR2(10),
shipCountry VARCHAR2(15),
CONSTRAINT Orders_OrderId_pk PRIMARY KEY (orderId),
);
-- (6) Products --
-- DROP TABLE Products CASCADE CONSTRAINTS; -- uncomment after 1st run
CREATE TABLE products (
productId NUMBER(8,0) NOT NULL,
productName VARCHAR2(40) NOT NULL,
supplierId NUMBER(8,0),
categoryId NUMBER(8,0),
quantityPerUnit VARCHAR2(20),
unitPrice NUMBER(8,2),
unitsInStock NUMBER(6,0),
unitsOnOrder NUMBER(6,0),
reorderLevel NUMBER(6,0),
discontinued NUMBER(1,0) NOT NULL,
CONSTRAINT Products_ProductID_pk PRIMARY KEY (productId)
);
-- (7) Suppliers --
-- DROP TABLE Suppliers CASCADE CONSTRAINTS; -- uncomment after 1st run
CREATE TABLE suppliers (
supplierId NUMBER(8,0) NOT NULL,
companyName VARCHAR2(40) NOT NULL,
contactName VARCHAR2(30),
contactTitle VARCHAR2(30),
address VARCHAR2(60),
city VARCHAR2(15),
region VARCHAR2(15),
postalCode VARCHAR2(10),
country VARCHAR2(15),
phone VARCHAR2(24),
fax VARCHAR2(24),
homepage VARCHAR2(200),
CONSTRAINT Suppliers_SupplierId_pk PRIMARY KEY (supplierId),
);
-- (8) Shippers --
-- DROP TABLE Shippers CASCADE CONSTRAINTS; -- uncomment after 1st run
CREATE TABLE shippers (
shipperId NUMBER(8,0) NOT NULL,
companyName VARCHAR2(40) NOT NULL,
phone VARCHAR2(24),
CONSTRAINT Shippers_Shipper_ID_pk PRIMARY KEY (shipperId),
);
SELECT table_name, 'Levi McLean' FROM user_tables
WHERE table_name != 'HTMLDB_PLAN_TABLE';
@@ -0,0 +1,48 @@
CREATE TABLE test_customer (
Id NUMBER(6,0),
Name VARCHAR2(20)
);
INSERT INTO test_Customer (Id, Name) VALUES (100,'SMITH');
INSERT INTO test_Customer (Id, Name) VALUES (101,'JONES');
INSERT INTO test_Customer (Id, Name) VALUES (100,'BROWN');
SELECT * FROM test_customer;
--TRUNCATE TABLE test_customer;
DROP TABLE test_customer;
CREATE TABLE test_customer (
Id NUMBER(6,0) PRIMARY KEY,
Name VARCHAR2(20)
);
DROP TABLE IF EXISTS test_customer;
CREATE TABLE test_customer (
Id NUMBER(6,0),
Name VARCHAR2(20),
CONSTRAINT test_customer_Id_pk PRIMARY KEY (Id)
);
-- Viewing the Data Dictionary
SELECT table_name, num_rows FROM USER_TABLES WHERE table_name != 'HTMLDB_PLAN_TABLE';
-- Table Creation through Sub Queries
CREATE TABLE cust_marketing AS
(SELECT Id, Lastname, FirstName, City, Province FROM Customers);
SELECT * FROM cust_marketing;
-- Modify Existing Tables
ALTER TABLE Vendors ADD Ext NUMBER(4,0);
ALTER TABLE VENDORS MODIFY Ext NUMBER(5,0);
ALTER TABLE vendors DROP COLUMN Ext;
SELECT table_name, num_rows FROM user_tables
WHERE table_name != 'HTMLDB_PLAN_TABLE';
@@ -0,0 +1,51 @@
DROP TABLE test_customers;
CREATE TABLE test_customers (
CustomerID NUMBER(8),
CustName VARCHAR2(35) NOT NULL,
CustAge NUMBER(2),
CONSTRAINT pk_test_customers_CustomerID PRIMARY KEY(CustomerID),
CONSTRAINT uk_test_customers_CustName UNIQUE(CustName),
CONSTRAINT ck_test_customers_CustAge CHECK(CustAge>=16 AND CustAge<=70)
);
INSERT INTO test_customers VALUES(100, 'John Smith', null);
INSERT INTO test_customers VALUES(350, 'Mark Smith', 20);
SELECT * FROM test_customers;
CREATE TABLE test_orders (
OrderID NUMBER(8),
CustomerID NUMBER(8),
OrderDate Date,
OrderAmount NUMBER(8,2),
CONSTRAINT pk_test_orders_OrderID PRIMARY KEY(OrderID),
CONSTRAINT fk_test_orders_test_customers FOREIGN KEY(CustomerID) REFERENCES test_customers(CustomerID)
);
INSERT INTO test_orders VALUES(1, 100, '2023-01-15', 125.3);
INSERT INTO test_orders VALUES(2, 100, '2023-01-18', 300.3);
SELECT * FROM test_orders;
SELECT * FROM test_customers c JOIN test_orders o ON c.CustomerID = o.CustomerID;
SELECT constraint_name, constraint_type, search_condition, table_name, 'Levi McLean' AS "Created By"
FROM user_constraints
WHERE table_name IN('CATEGORIES','EMPLOYEES','CUSTOMERS', 'ORDERS','ORDER_DETAILS','PRODUCTS','VENDORS','PRODUCT_VENDORS')
AND constraint_name NOT LIKE 'SYS%'
ORDER BY 1;
SELECT 'Customers' AS "Levi McLean's Tables", COUNT(*) AS "Row Count" FROM CUSTOMERS
UNION
SELECT 'Employees', COUNT(*) FROM Employees UNION
SELECT 'Orders', COUNT(*) FROM Orders UNION
SELECT 'Orders Details', COUNT(*) FROM OrderDetails UNION
SELECT 'Products', COUNT(*) FROM Products UNION
SELECT 'Categories', COUNT(*) FROM Categories UNION
SELECT 'Shippers', COUNT(*) FROM Shippers UNION
SELECT 'Suppliers', COUNT(*) FROM Suppliers;
+162
View File
@@ -0,0 +1,162 @@
-- (1) Customers --
DROP TABLE Customers CASCADE CONSTRAINTS; -- uncomment after 1st run
CREATE TABLE customers (
customerId CHAR(5),
companyName VARCHAR2(40) NOT NULL,
contactName VARCHAR2(30),
contactTitle VARCHAR2(30),
address VARCHAR2(60),
city VARCHAR2(15),
region VARCHAR2(15),
postalCode VARCHAR2(10),
country VARCHAR2(15),
phone VARCHAR2(24),
fax VARCHAR2(24),
email VARCHAR2(50),
CONSTRAINT Customers_CustomerId_pk PRIMARY KEY (customerId),
CONSTRAINT Customers_Email_uk UNIQUE(email),
);
-- (2) Employees --
DROP TABLE Employees CASCADE CONSTRAINTS; -- uncomment after 1st run
CREATE TABLE employees (
employeeId NUMBER(8,0),
lastName VARCHAR2(20) NOT NULL,
firstName VARCHAR2(10) NOT NULL,
title VARCHAR2(30),
titleOfCourtesy VARCHAR2(25),
birthDate DATE,
hireDate DATE,
address VARCHAR2(60),
city VARCHAR2(15),
region VARCHAR2(15),
postalCode VARCHAR2(10),
country VARCHAR2(15),
homePhone VARCHAR2(24),
extension VARCHAR2(4),
notes VARCHAR2(600),
reportsTo NUMBER(8,0),
photograph VARCHAR2(255),
SIN CHAR(9),
CONSTRAINT Employees_EmployeeId_pk PRIMARY KEY (employeeId),
CONSTRAINT Employees_SIN_uk UNIQUE (SIN),
CONSTRAINT Employees_ReportsTO_fk REFERENCES employees(employeeId),
);
-- (3) Shippers --
DROP TABLE Shippers CASCADE CONSTRAINTS; -- uncomment after 1st run
CREATE TABLE shippers (
shipperId NUMBER(8,0) NOT NULL,
companyName VARCHAR2(40) NOT NULL,
phone VARCHAR2(24),
CONSTRAINT Shippers_Shipper_ID_pk PRIMARY KEY (shipperId),
);
-- (4) Suppliers --
DROP TABLE Suppliers CASCADE CONSTRAINTS; -- uncomment after 1st run
CREATE TABLE suppliers (
supplierId NUMBER(8,0) NOT NULL,
companyName VARCHAR2(40) NOT NULL,
contactName VARCHAR2(30),
contactTitle VARCHAR2(30),
address VARCHAR2(60),
city VARCHAR2(15),
region VARCHAR2(15),
postalCode VARCHAR2(10),
country VARCHAR2(15),
phone VARCHAR2(24),
fax VARCHAR2(24),
homepage VARCHAR2(200),
CONSTRAINT Suppliers_SupplierId_pk PRIMARY KEY (supplierId),
);
-- (5) Categories ---
DROP TABLE Categories CASCADE CONSTRAINTS; -- uncomment after 1st run
CREATE TABLE categories (
categoryId NUMBER(8,0),
categoryName VARCHAR2(15) NOT NULL,
categoryCode NUMBER(6,0),
description VARCHAR2(300),
CONSTRAINT Categories_CategoryID_pk PRIMARY KEY (categoryId),
CONSTRAINT Categories_CategoryCode_uk UNIQUE(categoryCode),
);
-- (6) Orders --
DROP TABLE Orders CASCADE CONSTRAINTS; -- uncomment after 1st run
CREATE TABLE orders (
orderId NUMBER(8,0) NOT NULL,
customerId CHAR(5),
employeeId NUMBER(8,0),
territoryId VARCHAR2(20),
orderDate DATE,
requiredDate DATE,
shippedDate DATE,
shipVia NUMBER(8,0),
freight NUMBER(8,2),
shipName VARCHAR2(40),
shipAddress VARCHAR2(60),
shipCity VARCHAR2(15),
shipRegion VARCHAR2(15),
shipPostalCode VARCHAR2(10),
shipCountry VARCHAR2(15),
CONSTRAINT Orders_OrderId_pk PRIMARY KEY (orderId),
CONSTRAINT Orders_CustomerId_fk REFERENCES customers(customerId),
CONSTRAINT Orders_EmployeeId_fk REFERENCES employees(employeeId),
CONSTRAINT Orders_ShippedVia_fk REFERENCES shippers(shipperId),
);
-- (7) Products --
DROP TABLE Products CASCADE CONSTRAINTS; -- uncomment after 1st run
CREATE TABLE products (
productId NUMBER(8,0) NOT NULL,
productName VARCHAR2(40) NOT NULL,
supplierId NUMBER(8,0),
categoryId NUMBER(8,0),
quantityPerUnit VARCHAR2(20),
unitPrice NUMBER(8,2),
unitsInStock NUMBER(6,0),
unitsOnOrder NUMBER(6,0),
reorderLevel NUMBER(6,0),
discontinued NUMBER(1,0) NOT NULL,
CONSTRAINT Products_ProductID_pk PRIMARY KEY (productId),
CONSTRAINT Products_UnitPrice_ck CHECK (unitPrice >= 0),
CONSTRAINT Products_ReorderLevel_ck CHECK (reorderLevel >= 0),
CONSTRAINT Products_Quantity_ck CHECK (quantity >= 0),
CONSTRAINT Products_UnitsOnOrder_ck CHECK (unitsOnOrder >= 0),
CONSTRAINT Products_SupplierId_fk REFERENCES suppliers(supplierId),
CONSTRAINT Products_CategoryId_fk REFERENCES categories(categoryId),
);
-- (8) OrderDetails --
DROP TABLE OrderDetails CASCADE CONSTRAINTS; -- uncomment after 1st run
CREATE TABLE orderDetails (
orderId NUMBER(8,0) NOT NULL,
productId NUMBER(8,0) NOT NULL,
unitPrice NUMBER(8,2) NOT NULL,
quantity NUMBER(6,0) NOT NULL,
discount NUMBER(5,2) NOT NULL,
CONSTRAINT orderDetails_OID_PID_pk PRIMARY KEY (orderId, productId),
CONSTRAINT orderDetails_Discount_ck CHECK (discount >= 0 AND discount <= 1),
CONSTRAINT orderDetails_Quantity_ck CHECK (quantity > 0),
CONSTRAINT orderDetails_UnitPrice_ck CHECK (unitPrice >= 0),
CONSTRAINT orderDetails_ProductId_fk REFERENCES products(productId),
);
SELECT table_name, 'Levi McLean' FROM user_tables
WHERE table_name != 'HTMLDB_PLAN_TABLE';