Advertisement
Darkness4869

Tutorial 1.2

Sep 14th, 2020
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 12.80 KB | None | 0 0
  1. -- Creating the database for testing and only for the first tutorial.
  2. CREATE SCHEMA `AdvancedDatabasesTest`;
  3. -- Question 1 Part A
  4. CREATE TABLE `AdvancedDatabasesTest`.`Customer` (
  5.     CustomerNumber INT,
  6.     CustomerName VARCHAR(32),
  7.     CustomerAddress VARCHAR(128),
  8.     Balance DECIMAL(6 , 2 ),
  9.     CreditLimitation INT
  10. );
  11. CREATE TABLE `AdvancedDatabasesTest`.`Order` (
  12.     OrderNumber INT,
  13.     OrderDate INT,
  14.     CustomerNumber INT
  15. );
  16. CREATE TABLE `AdvancedDatabasesTest`.`OrderedPart` (
  17.     OrderNumber INT,
  18.     PartNumber VARCHAR(4),
  19.     NumbersOrdered INT,
  20.     QuotationPriced DECIMAL(6 , 2 )
  21. );
  22. CREATE TABLE `AdvancedDatabasesTest`.`Part` (
  23.     PartNumber VARCHAR(4),
  24.     PartDescription VARCHAR(32),
  25.     UnitsOnHand INT,
  26.     ItemClass VARCHAR(2),
  27.     WarrantyHighStandardNumber INT,
  28.     UnitPrice DECIMAL(6 , 2 )
  29. );
  30. DROP TABLE `AdvancedDatabasesTest`.`Customer`;
  31. DROP TABLE `AdvancedDatabasesTest`.`Order`;
  32. DROP TABLE `AdvancedDatabasesTest`.`OrderedPart`;
  33. DROP TABLE `AdvancedDatabasesTest`.`Part`;
  34. -- Question 1 Part B
  35. CREATE TABLE `AdvancedDatabasesTest`.`Customer` (
  36.     CustomerNumber INT NOT NULL,
  37.     CustomerName VARCHAR(32),
  38.     CustomerAddress VARCHAR(128),
  39.     Balance DECIMAL(6 , 2 ),
  40.     CreditLimitation INT,
  41.     CONSTRAINT PK_CustomerNumber PRIMARY KEY (CustomerNumber)
  42. );
  43. CREATE TABLE `AdvancedDatabasesTest`.`Order` (
  44.     OrderNumber INT NOT NULL,
  45.     OrderDate INT,
  46.     CustomerNumber INT NOT NULL,
  47.     CONSTRAINT PK_OrderNumber PRIMARY KEY (OrderNumber),
  48.     CONSTRAINT FK_CustomerNumber FOREIGN KEY (CustomerNumber)
  49.         REFERENCES `AdvancedDatabasesTest`.`Customer` (CustomerNumber)
  50. );
  51. CREATE TABLE `AdvancedDatabasesTest`.`Part` (
  52.     PartNumber VARCHAR(4) NOT NULL,
  53.     PartDescription VARCHAR(32),
  54.     UnitsOnHand INT,
  55.     ItemClass VARCHAR(2),
  56.     WarrantyHighStandardNumber INT,
  57.     UnitPrice DECIMAL(6 , 2 ),
  58.     CONSTRAINT PK_PartNumber PRIMARY KEY (PartNumber)
  59. );
  60. CREATE TABLE `AdvancedDatabasesTest`.`OrderedPart` (
  61.     OrderNumber INT NOT NULL,
  62.     PartNumber VARCHAR(4) NOT NULL,
  63.     NumbersOrdered INT,
  64.     QuotationPriced DECIMAL(6 , 2 ),
  65.     PRIMARY KEY (OrderNumber , PartNumber),
  66.     FOREIGN KEY (OrderNumber)
  67.         REFERENCES `AdvancedDatabasesTest`.`Order` (OrderNumber),
  68.     FOREIGN KEY (PartNumber)
  69.         REFERENCES `AdvancedDatabasesTest`.`Part` (PartNumber)
  70. );
  71. DROP TABLE `AdvancedDatabasesTest`.`OrderedPart`;
  72. DROP TABLE `AdvancedDatabasesTest`.`Part`;
  73. DROP TABLE `AdvancedDatabasesTest`.`Order`;
  74. DROP TABLE `AdvancedDatabasesTest`.`Customer`;
  75. -- Question 1 Part C
  76. -- Question 2: Declaration of Primary Key for Customer Table at Line 79.
  77. -- Question 7: Addition of Unique Constraint at Line 81
  78. CREATE TABLE `AdvancedDatabasesTest`.`Customer` (
  79.     CustomerNumber INT NOT NULL PRIMARY KEY,
  80.     CustomerName VARCHAR(32),
  81.     CustomerAddress VARCHAR(128) UNIQUE,
  82.     Balance DECIMAL(6 , 2 ),
  83.     CreditLimitation INT
  84. );
  85. -- Question 3: Declaration of Foreign Key for Order Table at Line 90.
  86. CREATE TABLE `AdvancedDatabasesTest`.`Order` (
  87.     OrderNumber INT NOT NULL PRIMARY KEY,
  88.     OrderDate INT,
  89.     CustomerNumber INT NOT NULL,
  90.     FOREIGN KEY (CustomerNumber)
  91.         REFERENCES `AdvancedDatabasesTest`.`Customer` (CustomerNumber)
  92. );
  93. -- Question 6: Addition of Check Constraint at Line 101.
  94. CREATE TABLE `AdvancedDatabasesTest`.`Part` (
  95.     PartNumber VARCHAR(4) NOT NULL PRIMARY KEY,
  96.     PartDescription VARCHAR(32),
  97.     UnitsOnHand INT,
  98.     ItemClass VARCHAR(2),
  99.     WarrantyHighStandardNumber INT,
  100.     UnitPrice DECIMAL(6 , 2 ),
  101.     CONSTRAINT CHK_PartDescription CHECK (PartDescription = 'IRON')
  102. );
  103. -- Question 2: Declaration of Primary Key for OrderedPart Table at Line 111.
  104. -- Question 3: Declaration of Foreign Key for OrderedPart Table at Line 112 and Line 114.
  105. -- Question 5: Addition of Default Constraint at Line 106.
  106. CREATE TABLE `AdvancedDatabasesTest`.`OrderedPart` (
  107.     OrderNumber INT NOT NULL,
  108.     PartNumber VARCHAR(4) NOT NULL,
  109.     NumbersOrdered INT DEFAULT 1,
  110.     QuotationPriced DECIMAL(6 , 2 ),
  111.     PRIMARY KEY (OrderNumber , PartNumber),
  112.     FOREIGN KEY (OrderNumber)
  113.         REFERENCES `AdvancedDatabasesTest`.`Order` (OrderNumber),
  114.     FOREIGN KEY (PartNumber)
  115.         REFERENCES `AdvancedDatabasesTest`.`Part` (PartNumber)
  116. );
  117. -- Question 4 Part A
  118. ALTER TABLE `AdvancedDatabasesTest`.`Customer`
  119.     ADD Region VARCHAR(16);
  120. -- Question 4 Part B
  121. ALTER TABLE `AdvancedDatabasesTest`.`Customer`
  122.     MODIFY COLUMN CustomerAddress VARCHAR(256);
  123. -- Question 4 Part C
  124. ALTER TABLE `AdvancedDatabasesTest`.`Customer`
  125.     DROP COLUMN CustomerAddress;
  126. -- Question 8
  127. ALTER TABLE `AdvancedDatabasesTest`.`Part` DROP CHECK CHK_PartDescription;
  128. DROP TABLE `AdvancedDatabasesTest`.`OrderedPart`;
  129. DROP TABLE `AdvancedDatabasesTest`.`Part`;
  130. DROP TABLE `AdvancedDatabasesTest`.`Order`;
  131. DROP TABLE `AdvancedDatabasesTest`.`Customer`;
  132. CREATE TABLE `AdvancedDatabasesTest`.`Customer` (
  133.     CustomerNumber INT NOT NULL,
  134.     CustomerName VARCHAR(32),
  135.     CustomerAddress VARCHAR(128),
  136.     Balance DECIMAL(6 , 2 ),
  137.     CreditLimitation INT,
  138.     CONSTRAINT PK_CustomerNumber PRIMARY KEY (CustomerNumber),
  139.     CONSTRAINT UC_CustomerAddress UNIQUE (CustomerAddress)
  140. );
  141. CREATE TABLE `AdvancedDatabasesTest`.`Order` (
  142.     OrderNumber INT NOT NULL,
  143.     OrderDate INT,
  144.     CustomerNumber INT NOT NULL,
  145.     CONSTRAINT PK_OrderNumber PRIMARY KEY (OrderNumber),
  146.     CONSTRAINT FK_CustomerNumber FOREIGN KEY (CustomerNumber)
  147.         REFERENCES `AdvancedDatabasesTest`.`Customer` (CustomerNumber)
  148. );
  149. CREATE TABLE `AdvancedDatabasesTest`.`Part` (
  150.     PartNumber VARCHAR(4) NOT NULL,
  151.     PartDescription VARCHAR(32),
  152.     UnitsOnHand INT,
  153.     ItemClass VARCHAR(2),
  154.     WarrantyHighStandardNumber INT,
  155.     UnitPrice DECIMAL(6 , 2 ),
  156.     CONSTRAINT PK_PartNumber PRIMARY KEY (PartNumber)
  157. );
  158. CREATE TABLE `AdvancedDatabasesTest`.`OrderedPart` (
  159.     OrderNumber INT NOT NULL,
  160.     PartNumber VARCHAR(4) NOT NULL,
  161.     NumbersOrdered INT DEFAULT 1,
  162.     QuotationPriced DECIMAL(6 , 2 ),
  163.     CONSTRAINT PK_OrderedPartNumbers PRIMARY KEY (OrderNumber , PartNumber),
  164.     CONSTRAINT FK_OrderNumber FOREIGN KEY (OrderNumber)
  165.         REFERENCES `AdvancedDatabasesTest`.`Order` (OrderNumber),
  166.     CONSTRAINT FK_PartNumber FOREIGN KEY (PartNumber)
  167.         REFERENCES `AdvancedDatabasesTest`.`Part` (PartNumber)
  168. );
  169. -- Question 9
  170. -- Inserting data into Customer table.
  171. INSERT INTO `AdvancedDatabasesTest`.`Customer`
  172. (`CustomerNumber`,
  173. `CustomerName`,
  174. `CustomerAddress`,
  175. `Balance`,
  176. `CreditLimitation`)
  177. VALUES
  178. (124,
  179. 'Adams, Sally',
  180. '481 Oak, Lansing',
  181. 418.75,
  182. 500);
  183. INSERT INTO `AdvancedDatabasesTest`.`Customer`
  184. (`CustomerNumber`,
  185. `CustomerName`,
  186. `CustomerAddress`,
  187. `Balance`,
  188. `CreditLimitation`)
  189. VALUES
  190. (256,
  191. 'Samuels, Ann',
  192. '215 Pete, Grant',
  193. 10.75,
  194. 800);
  195. INSERT INTO `AdvancedDatabasesTest`.`Customer`
  196. (`CustomerNumber`,
  197. `CustomerName`,
  198. `CustomerAddress`,
  199. `Balance`,
  200. `CreditLimitation`)
  201. VALUES
  202. (311,
  203. 'Charles, Don',
  204. '48 College, Ira',
  205. 200.10,
  206. 300);
  207. INSERT INTO `AdvancedDatabasesTest`.`Customer`
  208. (`CustomerNumber`,
  209. `CustomerName`,
  210. `CustomerAddress`,
  211. `Balance`,
  212. `CreditLimitation`)
  213. VALUES
  214. (315,
  215. 'Daniels, Tom',
  216. '914 Cherry, Kent',
  217. 320.75,
  218. 300);
  219. INSERT INTO `AdvancedDatabasesTest`.`Customer`
  220. (`CustomerNumber`,
  221. `CustomerName`,
  222. `CustomerAddress`,
  223. `Balance`,
  224. `CreditLimitation`)
  225. VALUES
  226. (405,
  227. 'Wiliams, Al',
  228. '519 Watson, Grant',
  229. 201.75,
  230. 800);
  231. INSERT INTO `AdvancedDatabasesTest`.`Customer`
  232. (`CustomerNumber`,
  233. `CustomerName`,
  234. `CustomerAddress`,
  235. `Balance`,
  236. `CreditLimitation`)
  237. VALUES
  238. (412,
  239. 'Admas, Sally',
  240. '16 Elm, Lansing',
  241. 908.75,
  242. 1000);
  243. INSERT INTO `AdvancedDatabasesTest`.`Customer`
  244. (`CustomerNumber`,
  245. `CustomerName`,
  246. `CustomerAddress`,
  247. `Balance`,
  248. `CreditLimitation`)
  249. VALUES
  250. (522,
  251. 'Nelson, Mary',
  252. '108 Pine, Ada',
  253. 49.50,
  254. 800);
  255. INSERT INTO `AdvancedDatabasesTest`.`Customer`
  256. (`CustomerNumber`,
  257. `CustomerName`,
  258. `CustomerAddress`,
  259. `Balance`,
  260. `CreditLimitation`)
  261. VALUES
  262. (567,
  263. 'Baker, Joe',
  264. '808 Ridge, Harper',
  265. 201.20,
  266. 300);
  267. INSERT INTO `AdvancedDatabasesTest`.`Customer`
  268. (`CustomerNumber`,
  269. `CustomerName`,
  270. `CustomerAddress`,
  271. `Balance`,
  272. `CreditLimitation`)
  273. VALUES
  274. (587,
  275. 'Rogerts, Judy',
  276. '512 Pine, Ada',
  277. 57.75,
  278. 500);
  279. INSERT INTO `AdvancedDatabasesTest`.`Customer`
  280. (`CustomerNumber`,
  281. `CustomerName`,
  282. `CustomerAddress`,
  283. `Balance`,
  284. `CreditLimitation`)
  285. VALUES
  286. (622,
  287. 'Martin, Dan',
  288. '419 Chip, Grant',
  289. 575.50,
  290. 500);
  291. -- Inserting data into Part table.
  292. INSERT INTO `AdvancedDatabasesTest`.`Part`
  293. (`PartNumber`,
  294. `PartDescription`,
  295. `UnitsOnHand`,
  296. `ItemClass`,
  297. `WarrantyHighStandardNumber`,
  298. `UnitPrice`)
  299. VALUES
  300. ('AX12',
  301. 'IRON',
  302. 104,
  303. 'HW',
  304. 3,
  305. 17.95);
  306. INSERT INTO `AdvancedDatabasesTest`.`Part`
  307. (`PartNumber`,
  308. `PartDescription`,
  309. `UnitsOnHand`,
  310. `ItemClass`,
  311. `WarrantyHighStandardNumber`,
  312. `UnitPrice`)
  313. VALUES
  314. ('AZ52',
  315. 'SKATES',
  316. 20,
  317. 'SG',
  318. 2,
  319. 24.90);
  320. INSERT INTO `AdvancedDatabasesTest`.`Part`
  321. (`PartNumber`,
  322. `PartDescription`,
  323. `UnitsOnHand`,
  324. `ItemClass`,
  325. `WarrantyHighStandardNumber`,
  326. `UnitPrice`)
  327. VALUES
  328. ('BA74',
  329. 'BASEBALL',
  330. 40,
  331. 'SG',
  332. 1,
  333. 4.95);
  334. INSERT INTO `AdvancedDatabasesTest`.`Part`
  335. (`PartNumber`,
  336. `PartDescription`,
  337. `UnitsOnHand`,
  338. `ItemClass`,
  339. `WarrantyHighStandardNumber`,
  340. `UnitPrice`)
  341. VALUES
  342. ('BH22',
  343. 'TOASTER',
  344. 95,
  345. 'HW',
  346. 3,
  347. 34.95);
  348. INSERT INTO `AdvancedDatabasesTest`.`Part`
  349. (`PartNumber`,
  350. `PartDescription`,
  351. `UnitsOnHand`,
  352. `ItemClass`,
  353. `WarrantyHighStandardNumber`,
  354. `UnitPrice`)
  355. VALUES
  356. ('BT04',
  357. 'STOVE',
  358. 11,
  359. 'AP',
  360. 2,
  361. 402.99);
  362. INSERT INTO `AdvancedDatabasesTest`.`Part`
  363. (`PartNumber`,
  364. `PartDescription`,
  365. `UnitsOnHand`,
  366. `ItemClass`,
  367. `WarrantyHighStandardNumber`,
  368. `UnitPrice`)
  369. VALUES
  370. ('BZ66',
  371. 'WASHER',
  372. 52,
  373. 'AP',
  374. 3,
  375. 311.95);
  376. INSERT INTO `AdvancedDatabasesTest`.`Part`
  377. (`PartNumber`,
  378. `PartDescription`,
  379. `UnitsOnHand`,
  380. `ItemClass`,
  381. `WarrantyHighStandardNumber`,
  382. `UnitPrice`)
  383. VALUES
  384. ('CA14',
  385. 'SKILLET',
  386. 2,
  387. 'HW',
  388. 3,
  389. 19.95);
  390. -- Inserting data into Order table.
  391. INSERT INTO `AdvancedDatabasesTest`.`Order`
  392. (`OrderNumber`,
  393. `OrderDate`,
  394. `CustomerNumber`)
  395. VALUES
  396. (12489,
  397. 90291,
  398. 124);
  399. INSERT INTO `AdvancedDatabasesTest`.`Order`
  400. (`OrderNumber`,
  401. `OrderDate`,
  402. `CustomerNumber`)
  403. VALUES
  404. (12491,
  405. 90291,
  406. 311);
  407. INSERT INTO `AdvancedDatabasesTest`.`Order`
  408. (`OrderNumber`,
  409. `OrderDate`,
  410. `CustomerNumber`)
  411. VALUES
  412. (12494,
  413. 90491,
  414. 315);
  415. INSERT INTO `AdvancedDatabasesTest`.`Order`
  416. (`OrderNumber`,
  417. `OrderDate`,
  418. `CustomerNumber`)
  419. VALUES
  420. (12495,
  421. 90491,
  422. 256);
  423. INSERT INTO `AdvancedDatabasesTest`.`Order`
  424. (`OrderNumber`,
  425. `OrderDate`,
  426. `CustomerNumber`)
  427. VALUES
  428. (12498,
  429. 90591,
  430. 522);
  431. INSERT INTO `AdvancedDatabasesTest`.`Order`
  432. (`OrderNumber`,
  433. `OrderDate`,
  434. `CustomerNumber`)
  435. VALUES
  436. (12500,
  437. 90591,
  438. 124);
  439. INSERT INTO `AdvancedDatabasesTest`.`Order`
  440. (`OrderNumber`,
  441. `OrderDate`,
  442. `CustomerNumber`)
  443. VALUES
  444. (12504,
  445. 90591,
  446. 522);
  447. -- Inserting data into OrderedPart table.
  448. INSERT INTO `AdvancedDatabasesTest`.`OrderedPart`
  449. (`OrderNumber`,
  450. `PartNumber`,
  451. `NumbersOrdered`,
  452. `QuotationPriced`)
  453. VALUES
  454. (12489,
  455. 'AX12',
  456. 11,
  457. 14.95);
  458. INSERT INTO `AdvancedDatabasesTest`.`OrderedPart`
  459. (`OrderNumber`,
  460. `PartNumber`,
  461. `NumbersOrdered`,
  462. `QuotationPriced`)
  463. VALUES
  464. (12491,
  465. 'BT04',
  466. 1,
  467. 402.99);
  468. INSERT INTO `AdvancedDatabasesTest`.`OrderedPart`
  469. (`OrderNumber`,
  470. `PartNumber`,
  471. `NumbersOrdered`,
  472. `QuotationPriced`)
  473. VALUES
  474. (12491,
  475. 'BZ66',
  476. 1,
  477. 311.95);
  478. /* INSERT INTO `AdvancedDatabasesTest`.`OrderedPart`
  479. (`OrderNumber`,
  480. `PartNumber`,
  481. `NumbersOrdered`,
  482. `QuotationPriced`)
  483. VALUES
  484. (12494,
  485. 'CB03',
  486. 4,
  487. 175.00);
  488. INSERT INTO `AdvancedDatabasesTest`.`OrderedPart`
  489. (`OrderNumber`,
  490. `PartNumber`,
  491. `NumbersOrdered`,
  492. `QuotationPriced`)
  493. VALUES
  494. (12495,
  495. 'CS11',
  496. 2,
  497. 57.95); */
  498. INSERT INTO `AdvancedDatabasesTest`.`OrderedPart`
  499. (`OrderNumber`,
  500. `PartNumber`,
  501. `NumbersOrdered`,
  502. `QuotationPriced`)
  503. VALUES
  504. (12498,
  505. 'AZ52',
  506. 2,
  507. 22.95);
  508. INSERT INTO `AdvancedDatabasesTest`.`OrderedPart`
  509. (`OrderNumber`,
  510. `PartNumber`,
  511. `NumbersOrdered`,
  512. `QuotationPriced`)
  513. VALUES
  514. (12498,
  515. 'BA74',
  516. 4,
  517. 4.95);
  518. INSERT INTO `AdvancedDatabasesTest`.`OrderedPart`
  519. (`OrderNumber`,
  520. `PartNumber`,
  521. `NumbersOrdered`,
  522. `QuotationPriced`)
  523. VALUES
  524. (12500,
  525. 'BT04',
  526. 1,
  527. 502.99);
  528. /* INSERT INTO `AdvancedDatabasesTest`.`OrderedPart`
  529. (`OrderNumber`,
  530. `PartNumber`,
  531. `NumbersOrdered`,
  532. `QuotationPriced`)
  533. VALUES
  534. (12504,
  535. 'CZ81',
  536. 2,
  537. 108.99); */
  538. -- Disabling Safe Update Mode
  539. SET SQL_SAFE_UPDATES = 0;
  540. -- Question 10
  541. DELETE FROM `AdvancedDatabasesTest`.`Part`
  542. WHERE
  543.     `PartDescription` = 'IRON';
  544. -- Error Code: 1451. Cannot delete or update a parent row
  545. -- Enabling Safe Update Mode
  546. SET SQL_SAFE_UPDATES = 1;
  547. -- Question 11
  548. UPDATE `AdvancedDatabasesTest`.`Customer`
  549. SET
  550.     `CustomerAddress` = '210 Watson, Grant'
  551. WHERE
  552.     `CustomerNumber` = 522;
  553. -- Disabling Safe Update Mode
  554. SET SQL_SAFE_UPDATES = 0;
  555. -- Question 12
  556. DELETE FROM `AdvancedDatabasesTest`.`Customer`
  557. WHERE
  558.     `CustomerName` = 'Rogerts, Judy';
  559. -- Enabling Safe Update Mode
  560. SET SQL_SAFE_UPDATES = 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement