homzode

mysql_curso

Jul 21st, 2023 (edited)
513
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 6.06 KB | Source Code | 0 0
  1. --
  2. -- Table structure for table `Ventas`
  3. --
  4. DROP TABLE IF EXISTS `productos`;
  5. CREATE TABLE `productos` (
  6.   `codigo` int NOT NULL AUTO_INCREMENT,
  7.   `nombre` varchar(45) DEFAULT NULL,
  8.   `precio` double DEFAULT NULL,
  9.   `inventario` int DEFAULT NULL,
  10.   PRIMARY KEY (`codigo`)
  11. );
  12.  
  13.  
  14. LOCK TABLES `productos` WRITE;
  15. INSERT INTO `productos` (nombre,precio,inventario) VALUES ('Manzanas',5000,525),('Limones',2300,315),('Peras',2700,233),('Arandanos',9300,125),('Tomates',2100,642),('Fresas',4100,123),('Helado',4500,341),('Galletas',500,158),('Chocolates',3500,280),('Jamon',15000,410);
  16. UNLOCK TABLES;
  17.  
  18.  
  19. --
  20. -- Table structure for table `Ventas`
  21. --
  22. DROP TABLE IF EXISTS `ventas`;
  23. CREATE TABLE `ventas` (
  24.   `codigo` int NOT NULL AUTO_INCREMENT,
  25.   `precio` double DEFAULT NULL,
  26.   `Cantidad` int DEFAULT NULL,
  27.   PRIMARY KEY (`codigo`)
  28. );
  29.  
  30. LOCK TABLES `ventas` WRITE;
  31. INSERT INTO `ventas` (precio,cantidad) VALUES (5000,25),(2300,15),(2700,33),(9300,5),(2100,42),(4100,3),(4500,41),(500,8),(3500,80),(15000,10);
  32. UNLOCK TABLES;
  33.  
  34. ********Ver usuarios
  35. SELECT user FROM mysql.user GROUP BY user;
  36. *********crear un usuario
  37. CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
  38. *******Asignar propietario y pw a BD
  39. grant all privileges on almacen.* to 'user'@'localhost' identified by 'password';
  40. ********Ver privilegios
  41. select * from mysql.db where User = 'user' and Db = 'databas'\G;
  42.  
  43. --
  44. -- Comando mysqldump crear copia de la base de datos
  45. --
  46. mysqldump -u homzode -pMysqlpsql43* almacen > almacen_20230727.sql
  47.  
  48. --
  49. -- proceso mysql restaurar copia de la base de datos
  50. --
  51. mysql
  52. drop database almacen;
  53. create database almacen;
  54. exit
  55. --
  56. -- el siguiente comando envia advertencia:  [Warning] Using a password on the command line interface can be insecure.
  57. -- pero realiza la restauracion
  58.  
  59. mysql -u homzode -pMysqlpsql43* almacen < almacen_20230727.sql
  60. --
  61. -- el siguiente comando pide el password en la siguente linea debe digitarlo
  62. -- realiza la restauracion
  63. mysql -u homzode -p almacen < almacen_20230727.sql
  64. mysql
  65. use almacen;
  66. show tables;
  67. select * from productos;
  68. select * from ventas;
  69. --
  70. -- el siguiente comando agrega una columna nueva vacia en la tabla al final de las demas columnas
  71. --
  72. alter table ventas add fecha varchar(45) not null;
  73. --
  74. -- el siguiente comando agrega una columna nueva con valor por defecto en la tabla al final de las demas columnas
  75. --
  76. alter table ventas add fecha varchar(45) not null default '2023-08-01 00:00:00';
  77. --
  78. -- el siguiente comando agrega una columna nueva en la tabla despues de determinada columna
  79. --
  80. alter table ventas add fecha varchar(45) not null after codigo;
  81. --
  82. -- el siguiente comando agrega una columna nueva en la tabla despues de determinada columna con valor por defecto
  83. --
  84. alter table ventas add fecha datetime(0) not null default '2023-08-01 00:00:00' after codigo;
  85. --
  86. -- el siguiente comando agrega una columna nueva en la tabla despues de determinada columna con fecha actual por defecto
  87. --
  88. alter table ventas add fecha datetime(0) not null default now() after codigo;
  89. --
  90. -- el siguiente comando setea valor a la columna vacia
  91. --
  92. UPDATE ventas SET fecha = '2023-08-01 00:00:00';
  93. --
  94. -- el siguiente comando elimina columna
  95. --
  96. alter table ventas drop fecha;
  97. --
  98. -- el siguiente comando cambia el tipo de dato de la columna
  99. --
  100. ALTER TABLE ventas modify column fecha DATETIME(0);
  101. --
  102. -- el siguiente comando agrega columna de calculo a la tabla
  103. --
  104. alter table ventas add total_venta decimal(10,2) as (precio * Cantidad) not null;
  105. --
  106. -- el siguiente comando aplica clausula INNER JOIN
  107. --
  108. SELECT p.*, v.* FROM productos p INNER JOIN ventas v ON p.codigo = v.codigo;
  109. --
  110. -- el siguiente comando aplica clausula LEFT OUTER JOIN
  111. --
  112. SELECT p.*, v.* FROM productos p LEFT OUTER JOIN ventas v ON p.codigo = v.codigo;
  113. --
  114. -- el siguiente comando aplica clausula RIGHT OUTER JOIN
  115. --
  116. SELECT p.*, v.* FROM productos p RIGHT OUTER JOIN ventas v ON p.codigo = v.codigo;
  117. --
  118. -- el siguiente comando aplica clausula LEFT OUTER JOIN UNION RIGHT OUTER JOIN
  119. --
  120. SELECT * FROM productos LEFT OUTER JOIN ventas ON productos.codigo = ventas.codigo UNION SELECT * FROM productos RIGHT OUTER JOIN ventas ON productos.codigo = ventas.codigo;
  121. --
  122. -- el siguiente comando aplica clausula UNION
  123. --
  124. SELECT * FROM productos UNION SELECT * FROM ventas;
  125. --
  126. -- el siguiente comando crea tabla con campo BLOB para inserción de datos encriptados
  127. --
  128. CREATE TABLE login (
  129.     codigo int(11) NOT NULL AUTO_INCREMENT,
  130.     usuario varchar(15) NOT NULL,
  131.     clave BLOB NOT NULL,
  132.     PRIMARY KEY (`codigo`)
  133. ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;
  134. --
  135. -- el siguiente comando inserta datos en la tabla login encriptando con AES el campo clave
  136. --
  137. INSERT INTO login (usuario,clave) VALUES ('homzode', aes_encrypt('miclave','llave')  );
  138. --
  139. -- El siguiente comando consulta datos desde la tabla login desencriptando con AES el campo clave
  140. --
  141. select usuario,cast(aes_decrypt(clave, 'llave') as char) from login;
  142. --
  143. -- El siguiente comando exporta datos de una tabla a un formato csv que puede ser importado a hoja de calculo desde usuario mysql
  144. --
  145. SELECT * FROM productos into outfile 'productos.csv' fields terminated by ',' enclosed by '"' lines terminated by '\n';
  146. --
  147. -- El siguiente comando exporta datos de una tabla a un formato csv que puede ser importado a hoja de calculo desde usuario del sistema
  148. --
  149. mysql -u suUsuario --password=suClave* -e "SELECT * FROM almacen.productos" -B > productos.csv
  150. -- Crear tabla con columna JSON
  151. CREATE TABLE densidad (
  152.   id int NOT NULL AUTO_INCREMENT,
  153.   mapa JSON,
  154.   PRIMARY KEY (id)
  155. );
  156. -- Insertar arreglo lineal en columna JSON
  157. INSERT INTO densidad (mapa)  VALUES ('[12, 23]');
  158. -- Seleccionar un elemento del arreglo por su indice de posición
  159. select mapa->'$[1]' from densidad;
  160. -- Insertar arreglo bidimensional en columna JSON
  161. INSERT INTO densidad (mapa)  VALUES ('[ [12, 23, 17] , [11,8,6] , [45,76,9] ]');
  162. -- Consultas sobre el arreglo por indices de posición
  163. select mapa->'$[1][0]' from densidad;
  164. select mapa->'$[1][1]' from densidad;
  165. select mapa->'$[1][1]' from densidad where id = 2;
Advertisement
Add Comment
Please, Sign In to add comment