Scratchpad.sql 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. describe resistors;
  2. SET GLOBAL general_log=0;
  3. select * from resistors ;
  4. insert into resistors(`MPN`) VALUES('Yomandude');
  5. show create table resistors;
  6. drop table resistors ;
  7. DELETE FROM internal_parts ;
  8. SET @pn := CAST(678 AS int);
  9. SET @pnstrtmp := lpad(cast(@pn AS char), 7, 0);
  10. SELECT @pnstrtmp;
  11. SET @pnstr := concat(substring(@pnstrtmp, 1, 2), '-', substring(@pnstrtmp, 3, 2), '-', substring(@pnstrtmp, 5, 3));
  12. SELECT @pnstr;
  13. CREATE TABLE `resistors` (
  14. `MPN` varchar(100) NOT NULL,
  15. `Symbols` varchar(100) DEFAULT NULL,
  16. `Footprints` varchar(100) DEFAULT NULL,
  17. `Value` varchar(20) DEFAULT NULL,
  18. `Description` varchar(100) DEFAULT NULL,
  19. `Footprint Filters` varchar(100) DEFAULT NULL,
  20. `Keywords` varchar(100) DEFAULT NULL,
  21. `No BOM` int DEFAULT 0,
  22. `Schematic Only` int DEFAULT 0,
  23. `Datasheet URL` varchar(150) default NULL,
  24. PRIMARY KEY `Resistors_un` (`MPN`)
  25. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
  26. alter table resistors modify `Schematic only` int DEFAULT 0;
  27. alter table resistors rename column `Schematic only` to `Exclude from board`;
  28. alter table resistors rename column `No BOM` to `Exclude from BOM`;
  29. CREATE TABLE `resistors` (
  30. `mpn` varchar(100) NOT NULL,
  31. `symbols` varchar(100) DEFAULT NULL,
  32. `footprints` varchar(100) DEFAULT NULL,
  33. `value` varchar(20) DEFAULT NULL,
  34. `description` varchar(100) DEFAULT NULL,
  35. `footprint_filters` varchar(100) DEFAULT NULL,
  36. `keywords` varchar(100) DEFAULT NULL,
  37. `exclude_from_bom` int(11) DEFAULT 0,
  38. `exclude_from_board` int(11) DEFAULT 0,
  39. `datasheet_url` varchar(150) DEFAULT NULL,
  40. PRIMARY KEY (`MPN`)
  41. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
  42. show create table internal_parts ;
  43. explain select * from manufacturer_parts mp left join supplier_part_numbers spn on mp.mpn = spn.mpn and mp.mfr = spn.mfr ;
  44. select * from internal_parts ip where part_type = 'Chip Resistor';
  45. show create table manufacturer_parts ;
  46. CREATE TABLE `manufacturer_parts` (
  47. `mpn` varchar(50) NOT NULL,
  48. `mfr` varchar(50) NOT NULL,
  49. `internal_pno` int(11) DEFAULT NULL,
  50. PRIMARY KEY (`mpn`,`mfr`),
  51. KEY `manufacturer_parts_FK_1` (`internal_pno`),
  52. KEY `manufacturer_parts_FK` (`mfr`),
  53. CONSTRAINT `manufacturer_parts_FK` FOREIGN KEY (`mfr`) REFERENCES `manufacturers` (`mfr`) ON DELETE CASCADE ON UPDATE CASCADE
  54. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
  55. select * from internal_parts ip
  56. join internal_resistor_parameters irp ON ip.internal_pno = irp.internal_pno
  57. join resistor_parameters rp on irp.resistor_parameters_id = rp.id ;
  58. select * from manufacturer_parts mp
  59. join manufacturer_resistor_parameters mrp ON mp.mpn = mrp.mpn and mp.mfr = mrp.mfr
  60. join resistor_parameters rp on mrp.resistor_parameters_id = rp.id ;
  61. select * from resistor_parameters rp ;
  62. # CONSTRAINT CHK_NULL CHECK ((SOLD IS NOT NULL) OR (MANUFACTURED IS NOT NULL) OR (PURCHASED IS NOT NULL))
  63. ALTER TABLE resistor_parameters ADD CONSTRAINT resistor_parameters_check check (mfr is not null);
  64. alter table resistor_parameters drop constraint resistor_parameters_check;
  65. ALTER TABLE resistor_parameters ADD CONSTRAINT resistor_parameters_check_owner check
  66. (((internal_pno is not null) and ((mpn is null) and (mfr is null))) or
  67. ((internal_pno is null) and ((mpn is not null) and (mfr is not null))));
  68. CREATE TABLE `A` (
  69. `id` int NOT NULL AUTO_INCREMENT,
  70. `value` int,
  71. PRIMARY KEY (`id`)
  72. );
  73. drop table if exists A;
  74. INSERT INTO `A` (`value`) VALUES (5);
  75. SELECT LAST_INSERT_ID();
  76. CREATE TABLE `B` (
  77. `id` int NOT NULL,
  78. `val1` int,
  79. PRIMARY KEY (`id`),
  80. CONSTRAINT `a_nonsense_foreign_key` FOREIGN KEY (`val1`) REFERENCES `A` (`id`) ON UPDATE CASCADE,
  81. CONSTRAINT `a_nonsense_check` CHECK (`val1` > 10)
  82. );
  83. drop table if exists B;
  84. CONSTRAINT `only_one_value` CHECK ((`val1`IS NOT NULL AND `val2` IS NULL) OR (`val1` IS NULL AND `val2` IS NOT NULL))
  85. show create table resistor_parameters;
  86. CREATE TABLE `resistor_parameters` (
  87. `id` int(11) NOT NULL AUTO_INCREMENT,
  88. `internal_pno` int(11) DEFAULT NULL,
  89. `mpn` varchar(50) DEFAULT NULL,
  90. `mfr` varchar(50) DEFAULT NULL,
  91. `val2` float DEFAULT NULL,
  92. PRIMARY KEY (`id`),
  93. UNIQUE KEY `resistor_parameters_un` (`internal_pno`),
  94. UNIQUE KEY `resistor_parameters_un_2` (`mpn`,`mfr`),
  95. CONSTRAINT `resistor_parameters_check_owner` CHECK (`internal_pno` is not null and `mpn` is null and `mfr` is null or `internal_pno` is null and `mpn` is not null and `mfr` is not null)
  96. ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
  97. show create table internal_parts;
  98. CREATE TABLE `internal_parts` (
  99. `internal_pno` int(11) NOT NULL AUTO_INCREMENT,
  100. `part_name` varchar(50) NOT NULL,
  101. `description` varchar(100) DEFAULT NULL,
  102. `part_type` varchar(50) NOT NULL,
  103. PRIMARY KEY (`internal_pno`),
  104. UNIQUE KEY `internal_parts_un` (`part_name`),
  105. KEY `internal_parts_FK` (`part_type`),
  106. CONSTRAINT `internal_parts_FK` FOREIGN KEY (`part_type`) REFERENCES `part_types` (`part_type`) ON UPDATE CASCADE
  107. ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
  108. SELECT concat ('yoman', ' dude', ' shit', 4) AS `a`;
  109. PREPARE test_statement FROM concat('select * from ', 'a', ';');
  110. EXECUTE test_statement;
  111. DEALLOCATE PREPARE test_statement;
  112. USe node_todo_list;
  113. CREATE TABLE todos (
  114. id_code varchar(36) NOT NULL UNIQUE,
  115. to_do varchar(255) NOT NULL,
  116. completed boolean
  117. );
  118. CREATE USER 'todo_admin'@'localhost' IDENTIFIED BY 'leelu_dallas_multipass-6';
  119. GRANT SELECT, INSERT, UPDATE ON node_todo_list.* TO 'todo_admin'@'localhost';
  120. INSERT INTO todos (id_code, to_do, completed) VALUES ('todo1','Get something done', TRUE);
  121. INSERT INTO todos (id_code, to_do, completed) VALUES ('todo2','Get another thing done', FALSE);
  122. SHOW CREATE TABLE qualified_parts ;
  123. SELECT ip.internal_pn, ip.part_description AS description, gdcr.resistance AS value, cp.package_display_name, ip.exclude_from_bom, ip.exclude_from_board, fk.kicad_footprint, fk.kicad_footprint_filter, sk.kicad_symbol FROM internal_parts ip
  124. JOIN group_details_chip_resistor gdcr ON ip.internal_pn = gdcr.internal_pn
  125. JOIN component_packages cp ON gdcr.component_package = cp.component_package
  126. LEFT JOIN footprints_kicad fk ON gdcr.component_package = fk.component_package
  127. LEFT JOIN symbols_kicad sk ON gdcr.component_symbol = sk.component_symbol;
  128. CREATE OR REPLACE VIEW kicad_resistors
  129. AS
  130. SELECT ip.internal_pn, ip.part_description AS description, gdcr.resistance AS value, cp.package_display_name, ip.exclude_from_bom, ip.exclude_from_board, fk.kicad_footprint, fk.kicad_footprint_filter, sk.kicad_symbol FROM internal_parts ip
  131. JOIN group_details_chip_resistor gdcr ON ip.internal_pn = gdcr.internal_pn
  132. JOIN component_packages cp ON gdcr.component_package = cp.component_package
  133. LEFT JOIN footprints_kicad fk ON gdcr.component_package = fk.component_package
  134. LEFT JOIN symbols_kicad sk ON gdcr.component_symbol = sk.component_symbol;
  135. DELIMITER //
  136. CREATE OR REPLACE FUNCTION to_value_string(n float, unit varchar(1)) RETURNS varchar(10)
  137. BEGIN
  138. DECLARE exponent int;
  139. DECLARE suffix varchar(2);
  140. DECLARE string_to_return varchar(10);
  141. SET exponent = floor(log10(n)/3);
  142. SET exponent = greatest(-5, exponent);
  143. SET exponent = least(3, exponent);
  144. IF exponent <= -5 THEN
  145. SET suffix = 'f';
  146. ELSEIF exponent = -4 THEN
  147. SET suffix = 'p';
  148. ELSEIF exponent = -3 THEN
  149. SET suffix = 'n';
  150. ELSEIF exponent = -2 THEN
  151. SET suffix = 'u';
  152. ELSEIF exponent = -1 THEN
  153. SET suffix = 'm';
  154. ELSEIF exponent = 0 THEN
  155. SET suffix = unit;
  156. ELSEIF exponent = 1 THEN
  157. SET suffix = 'k';
  158. ELSEIF exponent = 2 THEN
  159. SET suffix = 'M';
  160. ELSEIF exponent >= 3 THEN
  161. SET suffix = 'G';
  162. END IF;
  163. SET string_to_return = trim( TRAILING '0' from CAST( round(n/(power(1000, exponent)), 3) AS varchar(10) ));
  164. -- SET string_to_return = n;
  165. IF instr(string_to_return, '.') THEN
  166. SET string_to_return = replace(string_to_return, '.', suffix);
  167. ELSE
  168. SET string_to_return = concat(string_to_return, suffix);
  169. END IF;
  170. RETURN string_to_return;
  171. END
  172. //
  173. DELIMITER ;
  174. SELECT to_value_string(0.001, 'R');
  175. SELECT to_value_string(1, 'R');
  176. SELECT to_value_string(1.001, 'R');
  177. SELECT to_value_string(10100, 'R');
  178. SELECT to_value_string(333333, 'R');