Advertisement
tatdat171

sql-schema-cd-database

Apr 26th, 2014
1,284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 13.15 KB | None | 0 0
  1. -- CD Database Schema
  2. -- Version 1.0
  3. -- Copyright (c) 2014, MySQL AB
  4. -- All rights reserved.
  5. -- Bo mon HQT CSDL
  6. -- Nhom 24 - Tao website ban dia CD ca nhac
  7. -- Thanh Vien
  8. -- 1. Dao Minh Hoa
  9. -- 2. Hoang Thi Nhu
  10. -- 3. @Nhung
  11. -- 4. Pham Tat Dat
  12. SET @OLD_UNIQUE_CHECKS =@@UNIQUE_CHECKS,
  13.  UNIQUE_CHECKS = 0;
  14.  
  15.  
  16. SET @OLD_FOREIGN_KEY_CHECKS =@@FOREIGN_KEY_CHECKS,
  17.  FOREIGN_KEY_CHECKS = 0;
  18.  
  19.  
  20. SET @OLD_SQL_MODE =@@SQL_MODE,
  21.  SQL_MODE = 'TRADITIONAL';
  22.  
  23. DROP DATABASE
  24. IF EXISTS cd;
  25.  
  26. CREATE DATABASE cd CHARACTER SET utf8 COLLATE utf8_general_ci;
  27.  
  28. USE cd;
  29.  
  30. --
  31. -- Table structure for table `cdinfo`
  32. --
  33. DROP TABLE
  34. IF EXISTS `cdInfo`;
  35.  
  36. CREATE TABLE `cdInfo` (
  37.     `id_cd` INT (11) UNSIGNED NOT NULL AUTO_INCREMENT,
  38.     `id_kind` INT (11) UNSIGNED NOT NULL,
  39.     `cd_code` VARCHAR (11) NOT NULL,
  40.     `name_cd` VARCHAR (50) NOT NULL,
  41.     `description` text,
  42.     `singer` VARCHAR (30) NOT NULL,
  43.     `thumbnail` text,
  44.     `price` INT (20) NOT NULL,
  45.     `quantityinstock` INT (11) NOT NULL,
  46.     PRIMARY KEY (`id_cd`),
  47.     KEY `id_kind` (`id_kind`),
  48.     CONSTRAINT `fk_id_kind` FOREIGN KEY (`id_kind`) REFERENCES `cdKind` (`id_kind`) ON DELETE RESTRICT ON UPDATE CASCADE
  49. ) ENGINE = INNODB DEFAULT CHARSET = utf8;
  50.  
  51. --
  52. -- Table structure for table `cdkind`
  53. --
  54. DROP TABLE
  55. IF EXISTS `cdKind`;
  56.  
  57. CREATE TABLE `cdKind` (
  58.     `id_kind` INT (11) UNSIGNED NOT NULL AUTO_INCREMENT,
  59.     `name_kind` VARCHAR (50) NOT NULL,
  60.     PRIMARY KEY (`id_kind`)
  61. ) ENGINE = INNODB DEFAULT CHARSET = utf8;
  62.  
  63. LOCK TABLES `cdkind` WRITE;
  64. INSERT INTO `cdkind` (`id_kind`, `name_kind`) VALUES
  65. (2, 'Nhạc Trẻ'),
  66. (3, 'Nhạc cách mạng'),
  67. (4, 'Nhạc tiền chiến'),
  68. (5, 'Phim khoa học viễn tưởng'),
  69. (6, 'Phim tài liệu'),
  70. (7, 'Phim hành động'),
  71. (8, 'Phim hài'),
  72. (9, 'Nhạc Việt nam'),
  73. (10, 'Nhạc quốc tế'),
  74. (11, 'nhạc thiếu nhi'),
  75. (12, 'Phim kinh dị');
  76.  
  77. UNLOCK TABLES;
  78. --
  79. -- Table structure for table ``order``
  80. --
  81. DROP TABLE
  82. IF EXISTS `order`;
  83.  
  84. CREATE TABLE `order` (
  85.     `id_order` INT (11) NOT NULL,
  86.     `id_customer` INT (11) NOT NULL,
  87.     `orderDate` DATE NOT NULL,
  88.     `requiredDate` DATE NOT NULL,
  89.     `shippedDate` DATE DEFAULT NULL,
  90.     `STATUS` VARCHAR (15) NOT NULL,
  91.     `comments` text,
  92.     PRIMARY KEY (`id_order`),
  93.     KEY `id_customer` (`id_customer`),
  94.     CONSTRAINT `fk_order_1` FOREIGN KEY (`id_customer`) REFERENCES `customers` (`id_customer`) ON DELETE RESTRICT ON UPDATE CASCADE,
  95.     CONSTRAINT `fk_id_customer` FOREIGN KEY (`id_customer`) REFERENCES `customers` (`id_customer`) ON DELETE RESTRICT ON UPDATE CASCADE
  96. ) ENGINE = INNODB DEFAULT CHARSET = utf8;
  97.  
  98. --
  99. -- Table structure for table `orderdetail`
  100. --
  101. DROP TABLE
  102. IF EXISTS `orderDetail`;
  103.  
  104. CREATE TABLE `orderDetail` (
  105.     `id_order` INT (11) UNSIGNED NOT NULL,
  106.     `cd_code` VARCHAR (11) NOT NULL,
  107.     `quantityOrdered` INT (11) NOT NULL,
  108.     `priceEach` DOUBLE NOT NULL,
  109.     PRIMARY KEY (`id_order`),
  110.     KEY `cd_code`(`cd_code`),
  111.     CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`id_order`) REFERENCES `orders` (`id_order`) ON DELETE RESTRICT ON UPDATE CASCADE
  112. ) ENGINE = INNODB DEFAULT CHARSET = utf8;
  113.  
  114. --
  115. -- Table structure for table `customers`
  116. --
  117. DROP TABLE
  118. IF EXISTS `customers`;
  119.  
  120. CREATE TABLE `customers` (
  121.     `id_customer` INT (11) NOT NULL AUTO_INCREMENT,
  122.     `username` VARCHAR (50) NOT NULL,
  123.     `password` VARCHAR (50) NOT NULL,
  124.     `fullname` VARCHAR (50) NOT NULL,
  125.     `address` VARCHAR (50) NOT NULL,
  126.     `phone` VARCHAR (50) NOT NULL,
  127.     `email` text NOT NULL,
  128.     `status` INT (5) UNSIGNED NOT NULL DEFAULT '2',
  129.     PRIMARY KEY (`id_customer`)
  130. ) ENGINE = INNODB DEFAULT CHARSET = utf8;
  131.  
  132. LOCK TABLES `customers` WRITE;
  133.  
  134. INSERT INTO `customers` (`id_customer`, `username`, `password`, `fullname`, `address`, `phone`, `email`, `status`) VALUES
  135. (1, 'administrator', '6d626c9e354076a1ffe2b2eb46b10c76', 'Phạm Tất Đạt', '69A/38 Hoàng Văn Thái', '0963012472', 'tatdat171@gmail.com', 1),
  136. (2, 'tatdat171', 'c0b38c91fc630782af1935721b3ce95c', 'Phạm Tất Đạt', '69A/38 Hoàng Văn Thái', '01692019206', 'kunny171@gmail.com', 1),
  137. (3, 'admin23', 'd41d8cd98f00b204e9800998ecf8427e', 'Tạ Hùng Giang', 'khu sơn', '0979670703', 'he@yahoo.com', 1),
  138. (4, 'bachnx', '827ccb0eea8a706c4c34a16891f84e7b', 'Nguyễn Thừa Ngôn', 'vĩnh phúc', '01245678', 'bach@gmail.com', 2),
  139. (5, 'haanhdon', 'e10adc3949ba59abbe56e057f20f883e', 'Hà Hữu Đôn', 'hà nội', '0974136509', 'haanhdon@gmail.com', 2),
  140. (6, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Nguyễn Xuân Bách', 'Kiều Mai - Hà Nội', '0976256106', 'nhatgai192@gmail.com', 2),
  141. (7, 'ongbach12', 'd41d8cd98f00b204e9800998ecf8427e', 'Bùi Viết Nam', 'Thanh Xuân', '0913443506', 'salesoff@live.com', 2),
  142. (8, 'admin123456', '123456', 'demo', 'demo', '0963012472', 'demo@demo.com', 2),
  143. (9, 'demo1', 'e10adc3949ba59abbe56e057f20f883e', 'demo', 'demo', '0534523231', 'demo1@gmail.com', 2),
  144. (10, 'demo234', '25f9e794323b453885f5181f1b624d0b', 'demo123', 'demo123456', '0987654321', 'demo2@gmail.com', 2),
  145. (11, 'demo45', 'b6cf1f80542b430c758333ad76576f86', 'sen', '69A/38 Hoàng Văn Thái', '0987654321', 'demo45@live.com', 2),
  146. (12, 'demo10', '43514a20c7801ebd4b1e6769939dd95f', 'demo10', '69A/38 Hoàng Văn Thái', '0987654321', 'demo10@gmail.com', 2),
  147. (13, 'demo6', 'c0bb1c551d1313c106d778d016b6bbad', 'demo6', '69A/38 Hoàng Văn Thái', '0987654321', 'demo6@gmail.com', 2),
  148. (14, 'demo7', '71e781c93ace9742f8b4d179141eecd9', 'Demo', 'demo123456', '0987654321', 'demo7@live.com', 2),
  149. (15, 'demo8', 'e807f1fcf82d132f9bb018ca6738a19f', 'Demo', 'demo123456', '0987654321', 'demo8@demo.com', 2);
  150.  
  151. UNLOCK TABLES;
  152.  
  153. --
  154. -- Table structure for table `customersKind`
  155. --
  156. /*
  157. CREATE TABLE `customersKind` (
  158.     `idnumber` INT (15) NOT NULL AUTO_INCREMENT,
  159.     `status` INT (5) UNSIGNED NOT NULL,
  160.     `namekind` VARCHAR (20) NOT NULL,
  161.     PRIMARY KEY (`idnumber`),
  162.     KEY `status` (`status`),
  163.     CONSTRAINT `fk_customerkind_1` FOREIGN KEY (`status`) REFERENCES `customers` (`status`) ON DELETE RESTRICT ON UPDATE CASCADE
  164. ) ENGINE = INNODB DEFAULT CHARSET = utf8;
  165.  
  166. LOCK TABLES `customersKind` WRITE;
  167.  
  168. INSERT INTO customersKind (status, namekind)
  169. VALUES
  170.     ('1', 'Administrator');
  171.  
  172. INSERT INTO customersKind (status, namekind)
  173. VALUES
  174.     ('2', 'User Normal');
  175.  
  176. INSERT INTO customersKind (status, namekind)
  177. VALUES
  178.     ('3', 'User VIP');
  179.  
  180. UNLOCK TABLES;
  181. */
  182. --
  183. -- Table structure for table `payments`
  184. --
  185. DROP TABLE
  186. IF EXISTS `payment`;
  187.  
  188. CREATE TABLE `payments` (
  189.     `id_customer` INT (11) NOT NULL,
  190.     `checkNumber` VARCHAR(50) NOT NULL,
  191.     `paymentDate` DATE NOT NULL,
  192.     `amount` DOUBLE NOT NULL,
  193.     PRIMARY KEY (`id_customer`, `checkNumber`),
  194.     CONSTRAINT `fk_payments_1` FOREIGN KEY (`id_customer`) REFERENCES `customers` (`id_customer`) ON DELETE RESTRICT ON UPDATE CASCADE
  195. ) ENGINE = INNODB DEFAULT CHARSET = utf8;
  196.  
  197. LOCK TABLES `payments` WRITE;
  198. INSERT INTO `payments` (`id_customer`, `checkNumber`, `paymentDate`, `amount`) VALUES
  199. (1, 'HQ336336', '2014-04-27', 60000),
  200. (1, 'JM555205', '2014-04-27', 145000),
  201. (1, 'OM314933', '2014-04-26', 16700),
  202. (1, 'BO864823', '2014-04-26', 1419000),
  203. (1, 'HQ55022', '2014-04-27', 3264000),
  204. (1, 'ND748579', '2014-04-25', 333000),
  205. (4, 'GG31455', '2014-04-25', 45800),
  206. (4, 'MA765515', '2014-04-25', 82000),
  207. (4, 'NP603840', '2014-04-28', 75000),
  208. (4, 'NR27552', '2014-04-25', 448900),
  209. (4, 'DB933704', '2014-04-25', 195000),
  210. (4, 'LN373447', '2014-04-25', 470000),
  211. (4, 'NG94694', '2014-04-25', 400000),
  212. (5, 'DB889831', '2014-04-26', 502000),
  213. (5, 'FD317790', '2014-04-28', 140000),
  214. (5, 'KI831359', '2014-04-27', 178000),
  215. (5, 'MA302151', '2014-04-28', 346000),
  216. (5, 'AE215433', '2014-04-27', 1012000),
  217. (5, 'BG255406', '2014-04-28', 854000),
  218. (5, 'CQ287967', '2014-04-25', 110000),
  219. (6, 'ET64396', '2014-04-26', 83000),
  220. (6, 'HI366474', '2014-04-27', 47000),
  221. (6, 'HR86578', '2014-04-27', 556000),
  222. (6, 'KI131716', '2014-04-25', 110000),
  223. (6, 'LF217299', '2014-04-26', 433000),
  224. (7, 'NT141748', '2014-04-25', 450000),
  225. (7, 'DI925118', '2014-04-28', 105000),
  226. (7, 'FA465482', '2014-04-26', 24000),
  227. (7, 'FH668230', '2014-04-25', 33000),
  228. (7, 'IP383901', '2014-04-26', 74000),
  229. (7, 'DM826140', '2014-04-25', 262000),
  230. (7, 'ID449593', '2014-04-25', 239000),
  231. (7, 'PI42991', '2014-04-25', 165000),
  232. (7, 'CL442705', '2014-04-25', 222000),
  233. (7, 'MA724562', '2014-04-27', 500000),
  234. (7, 'NB445135', '2014-04-25', 35000),
  235. (8, 'AU364101', '2014-04-27', 36000),
  236. (8, 'DB583216', '2014-04-27', 36000),
  237. (8, 'DL460618', '2014-04-27', 468000),
  238. (8, 'HJ32686', '2014-04-28', 598000),
  239. (8, 'ID10962', '2014-04-28', 1100000),
  240. (8, 'IN446258', '2014-04-25', 65000),
  241. (8, 'JE105477', '2014-04-26', 120000),
  242. (8, 'JN355280', '2014-04-26', 495000),
  243. (8, 'JN722010', '2014-04-25', 402000),
  244. (8, 'KT52578', '2014-04-25', 638000),
  245. (8, 'MC46946', '2014-04-25', 354000),
  246. (8, 'MF629602', '2014-04-26', 2000000),
  247. (8, 'NU627706', '2014-04-26', 261000),
  248. (8, 'IR846303', '2014-04-25', 36000),
  249. (8, 'LA685678', '2014-04-25', 76000),
  250. (8, 'CN328545', '2014-04-27', 471000),
  251. (8, 'ED39322', '2014-04-26', 28000),
  252. (8, 'HR182688', '2014-04-27', 20000),
  253. (8, 'JJ246391', '2014-04-25', 50000),
  254. (9, 'FP549817', '2014-04-26', 409000),
  255. (9, 'FU793410', '2014-04-26', 4000),
  256. (9, 'LJ160635', '2014-04-25', 39000),
  257. (9, 'BI507030', '2014-04-25', 440000),
  258. (9, 'DD635282', '2014-04-25', 260000),
  259. (9, 'KM172879', '2014-04-26', 100000),
  260. (9, 'ME497970', '2014-04-27', 35000),
  261. (9, 'BF686658', '2014-04-25', 58000),
  262. (9, 'GB852215', '2014-04-26', 20000),
  263. (9, 'IP568906', '2014-04-26', 58000),
  264. (9, 'KI884577', '2014-04-25', 399000),
  265. (9, 'HI618861', '2014-04-27', 35000),
  266. (9, 'NN711988', '2014-04-25', 633000),
  267. (9, 'BR352384', '2014-04-25', 243000),
  268. (9, 'BR478494', '2014-04-26', 507000),
  269. (9, 'KG644125', '2014-04-27', 1260000),
  270. (10, 'NI908214', '2014-04-27', 386000),
  271. (10, 'BQ327613', '2014-04-26', 387000),
  272. (10, 'DC979307', '2014-04-25', 441000),
  273. (10, 'LA318629', '2014-04-28', 224000),
  274. (10, 'ED743615', '2014-04-27', 125000),
  275. (10, 'GN228846', '2014-04-27', 85000),
  276. (10, 'GB878038', '2014-04-25', 180000),
  277. (10, 'IL104425', '2014-04-25', 42000),
  278. (10, 'AD832091', '2014-04-25', 190000),
  279. (10, 'CE51751', '2014-04-27', 5120000),
  280. (10, 'EH208589', '2014-04-25', 333000),
  281. (11, 'GP545698', '2014-04-25', 1180000),
  282. (11, 'IG462397', '2014-04-28', 2030000),
  283. (11, 'CITI3434344', '2014-04-27', 2850000),
  284. (11, 'IO448913', '2014-04-27', 2480000),
  285. (11, 'PI15215', '2014-04-25', 420000),
  286. (12, 'AU750837', '2014-04-26', 151000),
  287. (12, 'CI381435', '2014-04-27', 47000),
  288. (12, 'CM564612', '2014-04-25', 22000),
  289. (12, 'GQ132144', '2014-04-28', 54000),
  290. (12, 'OH367219', '2014-04-26', 4440000),
  291. (13, 'AE192287', '2014-04-25', 2360000),
  292. (13, 'AK412714', '2014-04-27', 376000),
  293. (13, 'KA602407', '2014-04-25', 34000),
  294. (13, 'AM968797', '2014-04-27', 528000),
  295. (13, 'BQ39062', '2014-04-25', 471000),
  296. (13, 'KL124726', '2014-04-27', 484000);
  297. UNLOCK TABLES;
  298. --
  299. -- CREATE PROCEDURE check login and register
  300. --
  301. DROP PROCEDURE IF EXISTS `check_login`;
  302. DELIMITER $$
  303. CREATE PROCEDURE `check_login`(USER VARCHAR(50), pass VARCHAR(50))
  304. READS SQL DATA
  305. BEGIN SELECT `username`,`password` FROM customers WHERE USER=`username` AND pass=`password`;
  306. END$$
  307. DELIMITER;
  308.  
  309. DROP PROCEDURE IF EXISTS `check_reg`;
  310. DELIMITER $$
  311. CREATE PROCEDURE `check_reg`(USER VARCHAR(50), email_check text)
  312. READS SQL DATA
  313. BEGIN SELECT `username`,`email` FROM customers WHERE USER=`username` AND email_check=`email`;
  314. END$$
  315. DELIMITER ;
  316.  
  317. --
  318. -- Create VIEW
  319. --
  320. DROP VIEW
  321. IF EXISTS `cd_show`;
  322. CREATE VIEW cd_show AS SELECT
  323.     cdinfo.id_cd AS id,
  324.     cdinfo.name_cd AS name,
  325.     cdinfo.description,
  326.     cdkind.name_kind AS category,
  327.     cdinfo.singer,
  328.     cdinfo.quantityinstock,
  329.     cdinfo.price
  330. FROM
  331.     cdinfo
  332. JOIN cdkind
  333. WHERE
  334.     cdinfo.id_kind = cdkind.id_kind
  335. ORDER BY cdinfo.id_cd ASC;
  336.  
  337. --
  338. -- View tong so user hien tai
  339. --
  340. DROP VIEW IF EXISTS `total_user`;
  341. CREATE VIEW total_user AS SELECT COUNT(*) AS totaluser FROM customers;
  342.  
  343. --
  344. -- View tong so san pham CD hien tai
  345. --
  346. DROP VIEW IF EXISTS `total_cd`;
  347. CREATE VIEW total_cd AS SELECT COUNT(*) AS totalcd FROM cdinfo;
  348.  
  349. --
  350. -- View tong so danh muc san pham CD hien tai
  351. --
  352. DROP VIEW IF EXISTS `total_cd_kind`;
  353. CREATE VIEW total_cd_kind AS SELECT COUNT(*) AS totalcdkind FROM cdkind;
  354.  
  355. --
  356. -- View tong so tien thu duoc trong ngay
  357. --
  358. DROP VIEW IF EXISTS `total_money_daily`;
  359. CREATE VIEW total_moey_daily AS SELECT SUM(amount) AS total_money_daily FROM payments WHERE paymentDate = CURDATE();
  360.  
  361. --
  362. -- View tong so tien thu duoc
  363. --
  364. DROP VIEW IF EXISTS `total_money`;
  365. CREATE VIEW total_money AS SELECT SUM(amount) AS total_money FROM payments;
  366.  
  367. --
  368. -- View tong so san pham da ban duoc
  369. --
  370. DROP VIEW IF EXISTS `total_cd_sale`;
  371. CREATE VIEW `total_cd_sale` AS SELECT SUM(orderdetail.quantityOrdered) AS total_cd_sale FROM orderdetail JOIN `order` WHERE `order`.id_order = orderdetail.id_order AND `order`.`STATUS`='Shipped';
  372.  
  373. --
  374. -- View tong so da dat mua trong ngay
  375. --
  376. DROP VIEW IF EXISTS `total_order_daily`;
  377. CREATE VIEW `total_order_daily` AS SELECT COUNT(*) AS total_order_daily FROM `order` WHERE orderDate =CURDATE();
  378.  
  379. --
  380. -- View 10 giap dich gan day
  381. --
  382. DROP VIEW IF EXISTS `payments_last_10`;
  383. CREATE VIEW `payments_last_10` AS SELECT customers.username AS customer, payments.paymentDate AS TIME, payments.amount FROM payments JOIN customers WHERE payments.id_customer = customers.id_customer ORDER BY payments.paymentDate DESC LIMIT 10;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement