From a8cd4bbc055676782178fbfe051596c4415885b8 Mon Sep 17 00:00:00 2001 From: mariamnez Date: Mon, 18 Aug 2025 17:03:39 +0200 Subject: [PATCH 1/3] Solved lab --- erd1.png | Bin 0 -> 25514 bytes seeding.sql | 33 +++++++++++++++++++++++++++++++++ update&delete.sql | 20 ++++++++++++++++++++ verify.sql | 12 ++++++++++++ 4 files changed, 65 insertions(+) create mode 100644 erd1.png create mode 100644 seeding.sql create mode 100644 update&delete.sql create mode 100644 verify.sql diff --git a/erd1.png b/erd1.png new file mode 100644 index 0000000000000000000000000000000000000000..f65e96f740b4dd0b6cf6a807a77076f6ce3223fb GIT binary patch literal 25514 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 ACjbBd literal 0 HcmV?d00001 diff --git a/seeding.sql b/seeding.sql new file mode 100644 index 0000000..f7ff57c --- /dev/null +++ b/seeding.sql @@ -0,0 +1,33 @@ +-- seeding.sql +USE lab_mysql; + +-- Insert sample data (don’t set the auto-increment id; let MySQL assign 1,2,3…) +INSERT INTO cars (vin, manufacturer, model, year, color) VALUES +('3K096I98581DHSNUP', 'Volkswagen', 'Tiguan', 2019, 'Blue'), +('ZM8G7BEUQZ97IH46V', 'Peugeot', 'Rifter', 2019, 'Red'), +('RKXVNNIHLVVZOUB4M', 'Ford', 'Fusion', 2018, 'White'), +('HKNDGS7CU31E9Z7JW', 'Toyota', 'RAV4', 2018, 'Silver'), +('DAM41UDN3CHU2WVF6', 'Volvo', 'V60', 2019, 'Gray'), +('DAM41UDN3CHU2WVF6', 'Volvo', 'V60 Cross Country', 2019, 'Gray'); + +INSERT INTO customers (cust_id, cust_name, cust_phone, cust_email, cust_address, cust_city, cust_state, cust_country, cust_zipcode) VALUES +(10001, 'Pablo Picasso', '+34 636 17 63 82', NULL, 'Paseo de la Chopera, 14', 'Madrid', 'Madrid', 'Spain', '28045'), +(20001, 'Abraham Lincoln', '+1 305 907 7086', NULL, '120 SW 8th St', 'Miami', 'Florida', 'United States', '33130'), +(30001, 'Napoléon Bonaparte', '+33 1 79 75 40 00', NULL, '40 Rue du Colisée', 'Paris', 'Île-de-France', 'France', '75008'); + +INSERT INTO salespersons (staff_id, name, store) VALUES +(1, 'Petey Cruiser', 'Madrid'), +(2, 'Anna Sthesia', 'Barcelona'), +(3, 'Paul Molive', 'Berlin'), +(4, 'Gail Forcewind', 'Paris'), +(5, 'Paige Turner', 'Mimia'), +(6, 'Bob Frapples', 'Mexico City'), +(7, 'Walter Melon', 'Amsterdam'), +(8, 'Shonda Leer', 'São Paulo'); + +-- The following INSERTs assume the ids assigned by AUTO_INCREMENT are: +-- cars: 1..6 in the order inserted; customers: 1..3; salespersons: 1..8 +INSERT INTO invoices (invoice_number, invoice_date, car_id, customer_id, salesperson_id) VALUES +(852399038, '2018-08-22', 1, 1, 3), +(731166526, '2018-12-31', 3, 3, 5), +(271135104, '2019-01-22', 2, 2, 7); diff --git a/update&delete.sql b/update&delete.sql new file mode 100644 index 0000000..51d5a4d --- /dev/null +++ b/update&delete.sql @@ -0,0 +1,20 @@ +-- update.sql +USE lab_mysql; + +-- Safe-update mode can block these; disable it if you get a warning. +SET SQL_SAFE_UPDATES = 0; + +UPDATE customers SET cust_email = 'ppicasso@gmail.com' +WHERE cust_name = 'Pablo Picasso'; + +UPDATE customers SET cust_email = 'lincoln@us.gov' +WHERE cust_name = 'Abraham Lincoln'; + +UPDATE customers SET cust_email = 'hello@napoleon.me' +WHERE cust_name = 'Napoléon Bonaparte'; +-- delete.sql +USE lab_mysql; + +-- The README asks to remove the entry with car ID #4. +DELETE FROM cars +WHERE id = 4; diff --git a/verify.sql b/verify.sql new file mode 100644 index 0000000..f4fa6ff --- /dev/null +++ b/verify.sql @@ -0,0 +1,12 @@ +USE lab_mysql; + +SELECT * FROM cars; +SELECT * FROM customers; +SELECT * FROM salespersons; +SELECT * FROM invoices; + +-- After updates: +SELECT cust_name, cust_email FROM customers; + +-- After delete: +SELECT id, vin, manufacturer, model FROM cars ORDER BY id; From cf91d23ec1008165852601bb6054bd8af0de721f Mon Sep 17 00:00:00 2001 From: mariamnez Date: Mon, 18 Aug 2025 17:08:23 +0200 Subject: [PATCH 2/3] Add files via upload --- ERD diagram.mwb | Bin 0 -> 9310 bytes create.sql | 56 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 ERD diagram.mwb create mode 100644 create.sql diff --git a/ERD diagram.mwb b/ERD diagram.mwb new file mode 100644 index 0000000000000000000000000000000000000000..91cf75f6a6cc0518f4566f26f06b846301c7648f GIT binary patch literal 9310 zcmZ{KWl&r}w=FQZyUXAN9VED0@Zhe41$Rw?y9Jj77$CR=ch}(V?(Xh9^4+?(UcGv^ zPj&6nd#&AncK_&Fy_Dqvu((h#P>4{EVc2?lD=2q?lu%IFPtZ`9P*6~24yJB)=Ju|v zb{=3>PdnR_?+Y#@eDQZr&v@u3OOm3|&3@tb4(rEmrAsGc&SRs(d~#;8yQ!fep>{Vt zuV)kyxn^>kDhOspU+%@|(CD^|l*T^@K8&UKJ~Tqc zt_V`59zr7rTocE9`8qcU*d7yB!Rk?a6uWa;y=?UD29THbIks0zju%(MsIL@8&)f$D z-3f}|>%`2K=b=af5#Q0!$j#p3h3#jEl!MPDm>a_C?E)J8w6T#w!dT$`5}!a2_{v8A z#%*Y(%!^ohgRPtgs|?E@n|2QAR07Jqoh56ZnNB=$=|%bQ`5SRcjz0t^%A+4%fYSBR zy&uk9SANq{N8uEN)%aNkK{E;g7Uf|u-RE7P*@HX8m*QU z=erGS;TO!s#J5<R$cDN|Yybj9SMwEQ` zI}odhjOwA}Z$ zZB4FuB!OHaf_g>~#Wv@w>+E!Sxd%!1b$r_E?!2FBGru`(VEZsyg2XU(d9pM6#qUtBY7>|VBZ=g0#zNzR> zcXWGDpOkvG_E|Y^?kgDk#6P^&B6@Fx#4SA92q`5-bq-t}fOW6s^;z^*&t0D)?>0e5AsT<}Ln_Zk5Ej}C*F6Ayx(Lb#7p z99xLX6+2|N)r(z-Y1binwioO}d8$J=Q=}Nu-BM%G7We3=18YM~;j@o+tF}_?u;}mq z)WWruLW;k$Cqd2C@N%_krv3;e^>)|$yiHpw1Z=g68;b-AVw}_hURcqjn2L#;Livbx ztDTeorX)2qilEC!-rZfCHw^$whi4|--o9x~A?MpPCO+z&%*oLW=D+9$?|HE|Jz@rx zEQ+pVT+RHn8h7S6ZeOriEMKzwK0j{k81Ds}0T2UR7}FI_Hr0@trTq?5=@;B{LJeV_ zLLJ&O10|9=U0=g@JDZ)mfC%N33cX_BB?gG7KRbY!=b}7G12=?GYID669cZUJGh>&H zfnh;@*3y0!+<-;nqv#}7PM>CFwZ0F%3~OCO!of+tZQpnvE}ICAMnz7iJ)YLxM!M|P z7eZqV2}!#ZQFjNyTx~O}J1GmZ{)Ky=%8UM3gir_NnTmQbL+u1W`6nWA{$?RaW!Q2b z9`<6D^jC2}kPryvHX5cc@9TWkHo;otYkxcC0ZVzHxixJtCzJvexcB0c?TwK~?v z5?B3T_R|ReCbbb|93yJQI=7BRbXAEb%{hO>j5Krau6Hxrz8L&L&dkOb!Dz( zBa0`seI%v1ng#KXU|@SnyF*h9w^hr}RvpyPB!cO>qTlvs(<>%#;8Y{cj93R$3=0Rk zD?CV{PD-fF3^H*YM$QsRsagGpa2+-bD7EYdN@`)|yXww;Ywcwov}6qV>h*2&ij28K zmqihZky(g?=9bmEbu;DKDr5O!AL?T?((=!{P%EyLp>i|mW0J1csE<-27GcP2w@~al zr?SoniEglFO6H3;!I)n9*MUec|Rp zCzKU1aa&!Y;kmc5K&b4wPC%kR(+CVE<5`1pIw%SU-W?ObnFy-*O&DhD0gCMm@*hJ0 ze0uPFKioVu1t*;q=(StoQky28A{u_)DNvEWe$X|kq0vjnSvTYXf&fu=hG2%cqGJYC`KkJ;%aDj=6R2{~&9Aj7rC9A=$Joj5p#+;?S)iYZu(f!BK z2SgcDnvxVDx3CcuSwZI#!t-P+)moNlS4VHGf8H$l831a;tFUzJtdmazHH7*x08Spc zliN=8nYtgp3B@qV`(8GWqW_TIA+%C;&1`?1m>Dr+43{JY04SlSLGY3mCilgOb^73a zk5q#f7nOi@K?|?E);qeEm3{SnaOZT?-~SHdiFG^nkpaV0L|b>VT3`?= z;)0wD&`boV-1v53GZR+HM{j#7lbDzFr$vGioq*u-{xR>~hPC7bVs{UX`_^jQ{9Y+` z7HX@>`Z%Qjcjv0xy@Uuu;rKEK%~RvOQ`$K7Fu-2 zOCIGuYG<$YL?VF;O9#e@pWl&Vxk25FN4PGZSNa0{{^hw(COmVbK)Mfb@osos29>LVm<_zzbE-w;f-zba^*Fv!H zTli#z1V($-wHuz795#}hjA!3w{G;}69isd zPJL%>f3av^t9479<eC zva&k6yK#!Ha3!|(O+RXhAx@9D8Xs0yq09BMmyHvP+g9Y)-jz-f{3>4Sw|N_h9lNwu zM{W_bg_Ff9X4&+eox07X=c;9OKeRCBQIh>6JF-RKw302)hu+v_MQ@hb5st}ruH0ke z#gHHpqhus{!#3g{^qM>c)rqgkE$MKA#a!fi{xs6qg?Ce(J3DsBeGi9vcpdZCbfdeG zSJEXST&?JrJl6B~-$6+9Q+X6qwpODKi0LAVq08n=hV7tMd^q^0+tqPB528?9Hl0 z({^+rB*-vgz}C%$3MH%v&)`B3fC{sf~vz$|R+|p{h)$ zW|$OXKrBXd6Ok`ZP1eFymEPp)P-T-Mt!kJAu(U{G_B-=2R|QcDn!zxfa)=_iiG~?3 zU>Bv>h-o6*hlB2piI61EJFh~juH)f|*@-J~o(@KkLuC??4(MjgjX}YT zwu~h%h8he5O!Fbs^mF)C21e=SmIWYT3Lu8@(=OXWg*m)>zVMSX%KjvW6ogh>1 ziK5m1W>KLXb=e8RX4cGc)30Fokf+3i<%mfs%DL^INCcg1@lyZ}j*GDqJZG$8IawgU zl@TnJ@qqz{nNHglJ<_Y)i1DvXhj!dzoI%9|vdRXnG7XL&|DhjuI>3aBz0;}(I}SE_ zB~Tj9DWLCE{P%T}z<4S;0fd4Jexe~JC{ja)jDW!#qp=orF5Zn1kp)dPMfZ&(3N!aZ zF1J4zK@2NTf5re_>IjE{PT3Yc!d%WzyC5>@3mE~kb4kk{7eE0XgZ-S|PnsASj!ZoW zo6?NYe7e_8J>^o%g9txEu_D#DGPqout}ad5g`h-5ppI86rv`cai<8A5qc0(%1=;wb z+(vCDgZxrqMxZox+88#MJ09`SfeRVGi9-MVa_q%er-sAij~x!p+*{H(cD%2J*`137 zU(c0N_cV?>1!9_&kNp{k3Ws?ehk~#aB!DIrL+M@k&S$ain-6$j5tVx>kHD1(`{98x zGJdfHJ2U)%=OxnmRTkBcH~J%mYPc}o3GW->eU<4YN4JeJ*ZEJi z?UfWTSwyZf)I23Z{UY0`H#87H*nAAQif0eQ9nTDb-cg0JYlJ7~E95gxKW1bd@2$cx zmo?9AR=Mr;3}miB?!OG7mBNG>!GjkE$w^w&sXKGYIwfQ#LP_|;Gq3n`r`iY17J1YUYkv5_nEivWhJ~W5=q|XQWtVoKC z;yk*cy^JEHj6p;Fh0q5YUYN8HW)Msv8f! zSo2y>sX&{F>(!AR{n>F;8h~SB&}~ZP(ii~$Nd-K4q%6QHGp)p4+5n?~1yeXiIIa&C z4I6;vfG0V`rg2BbmTxVdRI<{dRM~_Lw<@T)g?1K>R->%I&Y*Td4J42$8-Su=%>pJM z_5(xwtVjcDQ31 z&AWG1pGz~_p6dfM!u9aZWNEh>LZC=?`3NSTSD zLwBt(K^5Ftln(d*0pX+UH)Cg8WeLGMjz?xXF_gP`UzU<5EoFhy8 zY5hnAeWV6eGLnf^q1t0B-2#_36aZ7D15aZK>&Sw79Rkkrf|H@1Oa|&rV*JQ}(59S>A<=SAN39yzJJ+*HzV}8X(ikgjc4(kNgC@JW3t~6r}XNPFS%h7(0b~%7&pY z`CW&>0|DRa@XdmngFf4dNjD^=F!!5@kte||oQEts5yuh9N}JI~_n$eFanAfwy2Bdy0jPH{W}zXw|itC*x4@4CRdBNU>Ypfq&-Ls=Gh{KtxcF zI|33`5E3!~*JrdK?^^gHX|l+Ygb5zwC-^{2fi1=LUYNB;8o z_Ycvnnqo}Lp`@JlQ0`PZV7CxX-BTSOOIg&oD7-6{5CdY;U_fXT*i2~uiTz3%37sY% zQ8@=uxeL*_3tN-*SsD}4b&_eH>)W`%q^+U@h_XZ&}tRr1sher^N~dx$Ul(cG=*|0a&O+=#P})y#TQrg^Hh@Y8}4*@5Y_GlcY6C1{FSrn z)UI>w$WHOs!5e=}HUHoOLT#KH))`5-v>c*yO&fW3`phA1(XbZI&nQ8N%`s5f-19mL zLyoX&hy3XNeb8upD#c0-~5{wA-dF*P5UC>QeZi1{!McUjOsI6JT@%1cDor&5VGal+ zFa+jc+?}X7o1w{M$I-=QViF*B={_3z67S9FY(5dLp?asiXwROG0Y=}BH@=?GuO@Pl z8AF&TJsdF8-mbi7?2A-kZqHAxN0Mf26{FJg3iKV0I1n;&th^}nhDV&v{1JUOcH5(T zvZ#CiHI2%_Il*fM`A3Th(K$MmDBtLyge*#7&7cc&?Tz&lx_R;*AIl?8_l1|D`HxF@;@3s zIqEb3zIdA3i!*Jnq~);nV0-8o%#n7MQ?1yVoty?>`*fw|GBgZ0J>5_HPH?3ArJgO} zpx_F;{N(9QmxwAjVyKCid}v*D-GA)DS_bRLHofdg|^}T+643}_`#;@+y2hf z%E1}8Y|@gu2hz*dU1VhIgAqo}+nVl)4IT9I%_(@9hh^bSI!6j4qWsFr{!${C%Kfrp zqQ&bIcNpoZTyW}{ka_H&OH0&;989?7LE}&1S+cp4*n~Z>xP#-v5i5J10*@f#>!&>~OqA8@&apLbYW>g1B)O}=q28MNI_tSLqt{;y zn+kNWvy5|-=hH2NP9~=3NQm8D(tOHwHA|?IqBwv2a2d4Q0(2d2 zeg}?SqBhGQCSvY417owp9<$8-<|Y#(K0#5^APHw;1zAorTxHR!OtT<9o z8v>$=qV0JQ?|78ADAHe1*zW*TJalIgT-d<>fU?oFbuch-l^~o+(JUJL4$DESat0K~ zSkZm20OgT{fGWph*NV?0#|!$?EhoF185)k2&)8OKPH6|vA(OHg3}~JR3hk6%!!=jXAT>>Q=Q6IJS-kR}^n@7QeS!%A(SXaXyFQF6wD` zoJTZWwfo~!bYJ_TS_>oU=}Eoux3>vBlCg@kKi6w59->-xM638A`}<`r`$aigNB8L3 z=#$um_DZd%MmBA!Yj)Yz@V`sxaTsIpzO2-|hZ2|HoZT)t0>$hO&(CU!@glGSZbO zRoEb-ZGrMNQeIjYkqMVR$U7%q=Nf^%h!y9Z`U!&w`fmTD)cq)KsRYV;i4sD1> z?%w}ZT|H6@E|^$PYH7;tgop=nvJnN!1Z&9gW$D9H3|y`gQ6hY_jKZNycv!(hi}`St zjBJ_8rMa>Fx2oOYb`K&MsI`c%K>YlHi`Q+MXcw--Bnc+sf#V}C6AmFtlGACKn@B1A znk6M2+UvA5@2C$0nqhXEbNBZbJ9!AAC!@~F_wT`rr$-`~sR**(=+Ox-XNINpb?8s# ztuEnpJ8)_GLJiS|rqM5&uTf6j?d;^`p|0UQNv>m>G}7NCzw!ySmmP4Xl_Sm#ELKkM zqcNIN@LMmEQTTaUYE{v~`drl>~-I|ng7SW-GKpBmV-7HUs0iOEC&}oT6K1Wq+j~^X zS}4^H6*~)_bqK6zV01y+e@O;+6Rpi0+pOH_&)J>tnQ<%%mt&Z&7bDD-jc@1~udtB6 z)iAX=e)h|-F;RNq&wz{s(l24OEQ`+ZerqAo(CW0&4>@RMqRw^5@_q37dVd{Q(X%2p zP-9+PnkVa6os(iz42zn4u=YI5wO@VYbavwE%-)bf=xpSaQ#$j!j5X-xV-=8Spp+k& zV_&lYU#77FXW7VQ2wy!)Et)puhc5}BrghT>5x3daUp~g(NnseKPgghIfHmn@Qd>Ri z3Gtn}Lr4|}lgvH!B#Z3W%YTD2A#G!9?TR)+;Y%S7t-Y?qhOSo?l;bA}h=xLxn{8ET zWoVUamj?xUzs+i%RW*uhi}zb*LXP`v=I)I(Q4suV#R!X3VHjY@`W5cSjOj63eLKGI z?Rc~w7ab`(J)+yhKOY`WD|ts=P9Bw9^lsDX5>Y~kkfA4$0dje8P0TJKeD0m4Dbj~z zNF<|UR|*|2PR&fjUsiA3_9V9>AO22iFyDz>eZ5lI5Ptl%ITV?)ljFVCBapa^EU&DT{mD;AI@6$|@nmoGWPj6c(H1FH*ye`7 z^9Lu9l;zTi?rE@RV33ote-k-apkqateS8<}d6{;v#(yn%m$`^#IQKwHL_^n}9dadMD{j91OUGgRVhHUl9|mmQJrn>NVM(hre0bqfLShmNAZE?%>J~QX`(oA^pk1FcB5M7r=~ zW3B|o=Jlz1wKV4=bu}4D-keNJ=>4ve!}lhZCM_l^@j7Dt{peY>zR%GlX2Z0bM9&ao zMmz@OKw^Y^gFWw&ch3pKrmit?0XvXL?v#(({@a&IpON4%0K zVFCMZ;SA^bKpj%JSYK2o*@4S9JX$(T#8*IseqYJ;-!o--Xc!T||L(7OZ^eH`o&Ue^ z|GI7dyZRsY|7-TY{J&A>U-|CY`PcgYuK3^j{$Kom74z>E|JNx{mWPA?2Lj%|qW5S> z4Fx3zrRb%mq5#x#aJB)P+nas?Dms{%+X79TO}|*Vn*-TdLCALhGAu5pU(D@HT=;=@ UUS?ospsfkm$j-~f$rkzl0EP>Vj{pDw literal 0 HcmV?d00001 diff --git a/create.sql b/create.sql new file mode 100644 index 0000000..c67cc00 --- /dev/null +++ b/create.sql @@ -0,0 +1,56 @@ +-- create.sql +-- Create database and all tables from scratch + +CREATE DATABASE IF NOT EXISTS lab_mysql; +USE lab_mysql; + +-- Drop in child→parent order (disable FKs while dropping) +SET FOREIGN_KEY_CHECKS = 0; +DROP TABLE IF EXISTS invoices; +DROP TABLE IF EXISTS salespersons; +DROP TABLE IF EXISTS customers; +DROP TABLE IF EXISTS cars; +SET FOREIGN_KEY_CHECKS = 1; + +-- Parent tables +CREATE TABLE cars ( + id INT AUTO_INCREMENT PRIMARY KEY, + vin VARCHAR(32) NOT NULL, + manufacturer VARCHAR(50) NOT NULL, + model VARCHAR(80) NOT NULL, + year YEAR NOT NULL, + color VARCHAR(30) NOT NULL +) ENGINE=InnoDB; + +CREATE TABLE customers ( + id INT AUTO_INCREMENT PRIMARY KEY, + cust_id INT NOT NULL, + cust_name VARCHAR(100) NOT NULL, + cust_phone VARCHAR(30), + cust_email VARCHAR(255), + cust_address VARCHAR(255), + cust_city VARCHAR(100), + cust_state VARCHAR(100), + cust_country VARCHAR(100), + cust_zipcode VARCHAR(20) +) ENGINE=InnoDB; + +CREATE TABLE salespersons ( + id INT AUTO_INCREMENT PRIMARY KEY, + staff_id INT NOT NULL, + name VARCHAR(100) NOT NULL, + store VARCHAR(100) +) ENGINE=InnoDB; + +-- Child table with FKs to the three parents +CREATE TABLE invoices ( + id INT AUTO_INCREMENT PRIMARY KEY, + invoice_number BIGINT NOT NULL, + invoice_date DATE NOT NULL, + car_id INT NOT NULL, + customer_id INT NOT NULL, + salesperson_id INT NOT NULL, + CONSTRAINT fk_invoices_car FOREIGN KEY (car_id) REFERENCES cars(id), + CONSTRAINT fk_invoices_customer FOREIGN KEY (customer_id) REFERENCES customers(id), + CONSTRAINT fk_invoices_salesperson FOREIGN KEY (salesperson_id) REFERENCES salespersons(id) +) ENGINE=InnoDB; From 15a31bda665b5a400f4440c6749d34859022f59e Mon Sep 17 00:00:00 2001 From: mariamnez Date: Mon, 18 Aug 2025 17:15:28 +0200 Subject: [PATCH 3/3] Add files via upload --- ERD.png | Bin 0 -> 25514 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ERD.png diff --git a/ERD.png b/ERD.png new file mode 100644 index 0000000000000000000000000000000000000000..f65e96f740b4dd0b6cf6a807a77076f6ce3223fb GIT binary patch literal 25514 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 ACjbBd literal 0 HcmV?d00001