topical media & game development

talk show tell print

basic-mysql-08-ch08-examples.sql / sql



  
  /* Chapter 8 - Examples */
  
  CREATE TABLE Inventory
  (
     ProductID SMALLINT NOT NULL PRIMARY KEY,
     InStock SMALLINT NOT NULL,
     OnOrder SMALLINT NOT NULL,
     Reserved SMALLINT NOT NULL
  );
  
  INSERT INTO Inventory
  VALUES (101, 10, 15, 4), (102, 16, 9, 3), (103, 15, 2, 13);
  
  INSERT INTO Inventory
  VALUES (104, 16, 25-InStock, 0);
  
  CREATE TABLE CDs
  (
     CDID SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
     CDName VARCHAR(50) NOT NULL,
     InStock SMALLINT UNSIGNED NOT NULL,
     OnOrder SMALLINT UNSIGNED NOT NULL,
     Reserved SMALLINT UNSIGNED NOT NULL,
     Department ENUM('Classical', 'Popular') NOT NULL,
     Category VARCHAR(20)
  );
  
  INSERT INTO CDs (CDName, InStock, OnOrder, Reserved, Department, Category)
  VALUES ('Bloodshot', 10, 5, 3, 'Popular', 'Rock'),
  ('The Most Favorite Opera Duets', 10, 5, 3, 'Classical', 'Opera'),
  ('New Orleans Jazz', 17, 4, 1, 'Popular', 'Jazz'),
  ('Music for Ballet Class', 9, 4, 2, 'Classical', 'Dance'),
  ('Music for Solo Violin', 24, 2, 5, 'Classical', NULL),
  ('Cie li di Toscana', 16, 6, 8, 'Classical', NULL),
  ('Mississippi Blues', 2, 25, 6, 'Popular', 'Blues'),
  ('Pure', 32, 3, 10, 'Popular', NULL),
  ('Mud on the Tires', 12, 15, 13, 'Popular', 'Country'),
  ('The Essence', 5, 20, 10, 'Popular', 'New Age'),
  ('Embrace', 24, 11, 14, 'Popular', 'New Age'),
  ('The Magic of Satie', 42, 17, 17, 'Classical', NULL),
  ('Swan Lake', 25, 44, 28, 'Classical', 'Dance'),
  ('25 Classical Favorites', 32, 15, 12, 'Classical', 'General'),
  ('La Boheme', 20, 10, 5, 'Classical', 'Opera'),
  ('Bach Cantatas', 23, 12, 8, 'Classical', 'General'),
  ('Golden Road', 23, 10, 17, 'Popular', 'Country'),
  ('Live in Paris', 18, 20, 10, 'Popular', 'Jazz'),
  ('Richland Woman Blues', 22, 5, 7, 'Popular', 'Blues'),
  ('Morimur (after J. S. Bach)', 28, 17, 16, 'Classical', 'General'),
  ('The Best of Italian Opera', 10, 35, 12, 'Classical', 'Opera'),
  ('Runaway Soul', 15, 30, 14, 'Popular', NULL),
  ('Stages', 42, 0, 8, 'Popular', 'Blues'),
  ('Bach: Six Unaccompanied Cello Suites', 16, 8, 8, 'Classical', 'General');
  
  SELECT CDName, Department, Category
  FROM CDs
  WHERE Category=NULL
  ORDER BY CDName;
  
  SELECT CDName, Department, Category
  FROM CDs
  WHERE Category<=>NULL
  ORDER BY CDName;
  
  SELECT CDName, Department, Category
  FROM CDs
  WHERE Category IS NULL
  ORDER BY CDName;
  
  SELECT CDName, Department, Category
  FROM CDs
  WHERE Category IS NOT NULL
  ORDER BY CDName;
  
  SELECT CDName, InStock, OnOrder, Reserved
  FROM CDs
  WHERE (InStock+OnOrder-Reserved)>20
  ORDER BY CDName;
  
  SELECT CDName, InStock, OnOrder, Reserved
  FROM CDs
  WHERE (InStock+OnOrder-Reserved)<20
  ORDER BY CDName;
  
  SELECT CDName, Category, InStock
  FROM CDs
  WHERE Category IN ('Blues', 'Jazz')
  ORDER BY CDName;
  
  SELECT CDName, InStock, OnOrder, Reserved
  FROM CDs
  WHERE (InStock+OnOrder-Reserved) NOT BETWEEN 10 AND 20
  ORDER BY CDName;
  
  SELECT CDName, InStock+OnOrder-Reserved AS Available
  FROM CDs
  WHERE CDName LIKE '\%bach%'
  ORDER BY CDName;
  
  SELECT CDName, InStock+OnOrder-Reserved AS Available
  FROM CDs
  WHERE CDName REGEXP '^[a-f]'
  ORDER BY CDName;
  
  SELECT CDName, InStock
  FROM CDs
  WHERE CDName REGEXP '^[mn].*[sz]'
  ORDER BY CDName;
  
  CREATE TABLE Books
  (
     BookID SMALLINT NOT NULL PRIMARY KEY,
     BookName VARCHAR(40) NOT NULL,
     Category VARCHAR(15),
     InStock SMALLINT NOT NULL,
     OnOrder SMALLINT NOT NULL
  );
  
  INSERT INTO Books
  VALUES (101, 'Noncomformity: Writing on Writing', 'Nonfiction', 12, 13),
  (102, 'The Shipping News', 'Fiction', 17, 20),
  (103, 'Hell\’s Angels', 'Nonfiction', 23, 33),
  (104, 'Letters to a Young Poet', 'Nonfiction', 32, 12),
  (105, 'A Confederacy of Dunces', 'Fiction', 6, 35),
  (106, 'One Hundred Years of Solitude', 'Fiction', 28, 14),
  (107, 'Where I\’m Calling From', NULL, 46, 3);
  
  SELECT BookName, Category, InStock, OnOrder
  FROM Books
  WHERE Category='Fiction' AND (InStock+OnOrder)>40
  ORDER BY BookName;
  
  SELECT BookName, Category, InStock, OnOrder
  FROM Books
  WHERE InStock>30 OR OnOrder>30
  ORDER BY BookName;
  
  SELECT BookName, Category, InStock, OnOrder
  FROM Books
  WHERE Category='Fiction' XOR InStock IS NULL
  ORDER BY BookName;
  
  SELECT BookName, Category, InStock, OnOrder
  FROM Books
  WHERE InStock>20 AND (Category IS NULL OR NOT (Category='Fiction'))
  ORDER BY BookName;
  
  CREATE TABLE Attributes
  (
     UserID SMALLINT NOT NULL PRIMARY KEY,
     Settings TINYINT UNSIGNED NOT NULL
  );
  
  INSERT INTO Attributes
  VALUES (101, 58), (102, 73), (103, 45);
  
  CREATE TABLE ProductColors
  (
     ProdID SMALLINT NOT NULL PRIMARY KEY,
     ProdColor VARCHAR(15) NOT NULL
  );
  
  INSERT INTO ProductColors
  VALUES (101, 'Red'), (102, 'red'), (103, 'RED'), (104, 'REd'), (105, 'reD'),
     (106, 'Blue'), (107, 'blue'), (108, 'BLUE'), (109, 'BLue'), (110, 'blUE');
  
  


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.