Advertisement
Guest User

Untitled

a guest
Nov 14th, 2018
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE TABLE Product
  2. (
  3.     productId NUMBER (10) PRIMARY KEY,
  4.     name VARCHAR2(60) NOT NULL,
  5.     description VARCHAR2(100),
  6.     price NUMBER (18,2) NOT NULL, --16 numra para presjes, 2 pas presjes
  7.     registerDate DATE NOT NULL
  8. );
  9.  
  10. --varchar (15) - kjo nuk i rezervon ne memorie
  11. --char (15) - kjo i rezervon ne memorie
  12. --per 10 shkronja, chari i rezervon 15 batje, kurse te varchari 11 bajte (bajti shtes tregon sa karaktere jan rujt, psh 10+1 bajt)
  13. --per 200 shkronja, 200+2 rezervohen ne varchar (2 bajta kallzojn sa karaktere jan rujt)
  14.  
  15. --nvarchar/nchar (nationalVarchar) per shkronja UNICODE (arabisht, kinez, japan) (karakteret zan hapesire ka 2 bajta)
  16. --varchar edhe char ASCIICODE (shkronjat e vogla + t'mdhaja + numrat + simbole tjera) (256 karaktere i permban) (รง edhe รซ te UNICODE)
  17.  
  18. CREATE TABLE Client
  19. (
  20.     clientId NUMBER (10),
  21.     firstName VARCHAR2 (50) NOT NULL,
  22.     lastName VARCHAR2 (50) NOT NULL,
  23.     tel VARCHAR2 (15),
  24.     email VARCHAR2 (80),
  25.     address VARCHAR2 (80),
  26.     registerDate DATE NOT NULL,
  27.    
  28.     PRIMARY KEY (clientId)
  29. );
  30.  
  31. CREATE TABLE PaymentType (
  32.     paymentTypeId NUMBER (10),
  33.     name VARCHAR2 (100) NOT NULL,
  34.    
  35.     PRIMARY KEY (paymentTypeId)
  36. );
  37.  
  38. CREATE TABLE Location (
  39.     locationId NUMBER (10),
  40.     address VARCHAR2 (100) NOT NULL,
  41.     email VARCHAR2 (80),
  42.     telephone VARCHAR2 (15),
  43.     PRIMARY KEY (locationId)
  44. );
  45.  
  46. CREATE TABLE Invoice (
  47.     InvoiceNo CHAR(15) PRIMARY KEY,
  48.     clientId NUMBER(10) NOT NULL,
  49.     invoiceDate DATE NOT NULL,
  50.     totalAmount NUMBER(18,2) NOT NULL,
  51.     paymentType NUMBER(10),
  52.     locationId NUMBER(10) NOT NULL,
  53.    
  54.     foreign KEY (clientId) references Client(clientId),
  55.     foreign KEY (paymentType) references PaymentType(paymentTypeId),
  56.     foreign KEY (locationId) references Location(locationId)
  57. );
  58.  
  59. CREATE TABLE InvoiceDetails (
  60.     InvoiceNo CHAR(10),
  61.     productId NUMBER(10),
  62.     quantity NUMBER(18,2) NOT NULL,
  63.     productPrice NUMBER(18,2) NOT NULL,
  64.    
  65.     PRIMARY KEY (InvoiceNo, productId),
  66.     foreign KEY (InvoiceNo) References Invoice (InvoiceNo) ON DELETE CASCADE, --
  67.     foreign KEY (productId) references Product (productId)
  68. );
  69.  
  70. --Nr. identifikues i klientit te vendoset si autonumber, duhemi me sekuenc e me e thirr tani
  71. --Krijimi i sekuences:
  72. CREATE SEQUENCE client_seq START WITH 1;
  73. CREATE OR REPLACE TRIGGER trg_clientSEQ before INSERT ON Client FOR each ROW
  74. BEGIN
  75.     SELECT client_seq.NEXTVAL
  76.     INTO :NEW.clientId --eshte objekti i ri, perkatesisht reshti i ri qe po regjistrohet
  77.     FROM dual;
  78. END;
  79.  
  80. INSERT INTO client (
  81.     firstname,
  82.     lastname,
  83.     tel,
  84.     email,
  85.     address,
  86.     registerdate
  87. ) VALUES (
  88.     'Agim',
  89.     'Gashi',
  90.     '044/111-222',
  91.     'agim@gmail.com',
  92.     'Rr. Adem Jashari',
  93.     (SELECT SYSDATE FROM dual) --e merr daten aktuale
  94. );
  95.  
  96. SELECT * FROM Client;
  97. SELECT client_seq.NEXTVAL FROM dual; --nese e ekzekutojm ket sen, nuk mundemi ma t'njejtat numra ne ID se e ndryshon at klientin nalt
  98. -- nese e regjistrojm ket tjetrin, kcen IDja n'4
  99.  
  100. SELECT * FROM dual;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement