· 8 years ago · Mar 02, 2018, 12:02 PM
1>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<
2>> ENTRAR EN EL MYSQL DE CLASE LUBUNTU <<<<<<<<
3>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<
4mysql -u root -p
5
6password:
72018
8
9
10
11>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<
12>>>>>>>>>>> OPERAR CON LAS BD <<<<<<<<<<<<<<<<<<
13>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<
14muestra todas las db que existen
15SHOW DATABASES;
16
17cambia la db donde estamos operando
18USE nombreDeLaBaseDeDatos;
19
20muestra las tablas que contiene la db
21SHOW TABLES;
22
23muestra las columnas de la tabla estaTabla
24DESCRIBE estaTabla;
25
26elimina la tabla seleccionada
27DROP TABLE estaTabla;
28
29muestra toda la informacion que contiene estaTabla
30SELECT * FROM estaTabla;
31
32elimina la base de datos estaDatabase
33DROP DATABASE estaDatabase;
34
35renombrar una base de datos
36OJO IMPLICA CREAR UNA NUEVA BASE DE DATOS Y MOVER LAS TABLAS UNA A UNA
371. CREATE DATABASE newDatabase;
382. RENAME TABLE antigua.tabla TO nueva.tabla
39
40elimina la base de datos estaDatabase
41DROP DATABASE estaDatabase;
42
43
44
45>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<
46>>>>>>>>> OPERAR CON LAS TABLAS <<<<<<<<<<<<<<<<
47>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<
48elige todos los valores que contengan la letra 'd' de la tabla tablaSeleccionada:
49SELECT valorElegido FROM tablaSeleccionada WHERE valorElegido LIKE 'd%'; (like - solo funciona en strings)
50
51crear un tabla y añadirle las columnas a la vez
52CREATE TABLE table(columna1 varchar(8), columna2 int, columna3 date));
53
54Añadir una columna a una tabla ya existente
55ALTER TABLE tablaAModificar ADD nuevaColumna varchar(16);
56
57eliminar una columna ya existente
58ALTER TABLE tablaAModificar DROP COLUMN estaColumna;
59
60convertir un valor de la tabla en clave primaria:
61ALTER TABLE nombreDeTabla ADD PRIMARY KEY (valorAConvertir);
62
63convertir un valor de la tabla en clave foranea (se requiere que antes este valor sea clave primaria en su propia tabla):
64ALTER TABLE nombreDeTabla ADD FOREIGN KEY (valorAConvertir) REFERENCES tablaDondeSeEncuentraLaClavePrimaria (nombreDeLaClavePrimaria);
65
66eliminar claves de una columna de la tabla:
67 1. primero mostramos los valores internos de los campos de la tabla:
68 SHOW CREATE TABLE nombreDeLaTabla;
69 2. localizamos el nombre interno de la clave foranea que queremos borrar:
70 CONSTRAINT 'campo_ibfk_1'
71 3. borramos con el nombre interno:
72 ALTER TABLE nombreDeLaTabla DROP FOREIGN KEY 'campo_ibfk_1';
73 4. borramos el campo:
74 ALTER TABLE nombreDeLaTabla DROP COLUMN nombreDeLaColumna;
75 5. (opcional) creamos el valor con el nuevo tamaño de tipo
76 ALTER TABLE nombreDeLaTabla ADD COLUMN nombre varchar(16);
77 6. lo volvemos a definir como clave foranea:
78 ALTER TABLE nombreDeTabla ADD FOREIGN KEY (valorAConvertir) REFERENCES tablaDondeSeEncuentraLaClavePrimaria (nombreDeLaClavePrimaria);
79
80
81>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<
82>>>>> AÑADIR MORRALLA A LAS TABLAS <<<<<<<<<<<<<
83>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<
84crea multiples columnas en una tabla a la vez
85CREATE TABLE nombreDeLaTabla(nombreColumna1 varchar(12), nombreColumna2 varchar(13));
86
87introduce en la tabla 'gente' un valor segun las columnas
88INSERT INTO gente (nombre, date) VALUES ('Pepe', '2017');
89
90introduce en la tabla multiples valores segun las columnas
91INSERT INTO gente (nombre date) VALUES ('Pepe' '2017'), ('Pepo' '2018');
92
93
94>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<
95>>>> MODIFICAR MORRALLA DE LAS TABLAS <<<<<<<<<<
96>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<
97modifica exactamente el nombre de una columna
98UPDATE nombreTabla SET nombreColumna='nuevoValor' WHERE nombreColumna='antiguoValor';
99
100modifica todas las columnas donde coincida el termino de busqueda (like - solo funciona en strings)
101UPDATE nombreTabla SET nombreColumna='nuevoValor' WHERE nombreColumna LIKE '%Valor';
102
103
104
105>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<
106>>>>>> BORRAR MORRALLA DE LAS TABLAS <<<<<<<<<<<
107>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<
108borra todo lo que hay en la tabla.
109DELETE FROM nombreTabla
110
111
112
113>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<
114>>>>>>>> BUSCAR MORRALLA EN LAS TABLAS <<<<<<<<
115>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<
116elegir todos los valores distintos 'valorABuscar' de tblABuscar donde el valorABuscar este entre valor1 y valor2, ordenar ascendente
117SELECT DISTINCT valorABuscar FROM tblABuscar WHERE valorABuscar BETWEEN valor1 AND valor2 ORDER BY ASC;
118
119agrupa la cantidad de resultados encontrados (en dos valores totales)
120SELECT COUNT(valorABuscar), valorABuscar AS valorTotal FROM tblABuscar GROUP BY valorABuscar;
121
122agrupa la cantidad de resultados encontrados (en dos valores totales) pero muestra solo los que sumados, la cuenta total sea mayor que 15
123SELECT COUNT(valorABuscar), valorABuscar AS valorQueDescribe FROM tblABuscar GROUP BY valorABuscar HAVING cuentaTotal > 15;
124
125sacar la media de klms de gasolina y diesel
126SELECT gasolinaODiesel, AVG(kilometros) FROM tblABuscar GROUP BY gasolinaODiesel;
127TRADUCCION >> suma todos los valores de kilometros, los divide entre el numero de coches de ese combustible, y los muestra agrupados por clase de combustible usado.
128
129sacar los maximos y minimos kilometros de cada coche por tipo combustible
130SELECT combustible, MAX(kms), MIN(kms) FROM tblCoches GROUP BY combustible;
131TRADUCCION >> elige la columna combustible, la columna kms(valorMax), la columna kms(valorMin) de tblCoches agrupada por combustible;
132
133saca todos los datos del coche que mas klms tenga en diesel y gasolina
134SELECT * FROM tblCoches WHERE kms IN (SELECT MAX(kms) FROM tblCoches GROUP BY combustible);
135
136saca todos los datos del coche que mas y menos klms tenga en diesel y gasolina
137SELECT * FROM tblCoches WHERE kms IN((SELECT MAX(kms) FROM tblCoches GROUP BY combustible)) OR ((select min(kms) FROM tblCoches GROUP BY combustible));
138
139inner join >> cruzar las busquedas entre tablas
140SELECT altura, letra FROM piso INNER JOIN trastero ON piso.id=trastero.idpiso;
141TRADUCCION >> esto fue lo ultimo que vimos en clase, y el query fallo, ojo
142
143operaciones para sacar la media y los valores maximos y minimos:
144COUNT()
145AVG
146MAX
147MIN
148
149>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<
150>>>>>>>>> EJEMPLOS DE COPIA / PEGA <<<<<<<<<<<<<
151>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<
152CREATE TABLE piso (
153id int auto_increment primary key,
154altura int default 1,
155letra char default 'a',
156propietario varchar(9) not null
157);
158
159| id | altura | letra | propietario |
160auto increment, primary key | de tipo int (si no damos valor, pondra automaticamente siempre 1) | de tipo char (si no damos valor, pondra automaticamente siempre a) | longitud 9 (y no puede estar vacio) |
161TRADUCCION >> crea una tabla dentro de la base de datos donde estemos, la tabla se llamara 'piso', y contiene 4 columnas, id se supone que se va a llenar sola (auto_increment)
162
163
164---------- ahora insertamos la informacion ----------
165INSERT INTO piso (altura, letra, propietario)
166VALUES (1,'a','12345345'),
167(2,'c','65345395'),
168(3,'a','17655335'),
169(3,'b','97634339'),
170(1,'c','22345344'),
171(2,'b','65653445'),
172(2,'a','12345345')
173;
174
175TRADUCCION >> no ponemos valor en 'id', primero porque se tiene que llenar solo, y segundo porque al insertar la informacion, (altura, letra, propietario) no hemos escrito id, luego en ese campo mysql no va a escribir nada, pero como esta marcado como auto_increment se rellenara solo empezando por 1
176
177>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<
178>>>>>> IMPORTAR MORRALLA A TRAVES DE UN ARCHIVO <<<<<<<<
179>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<
180ES IMPRESCINDIBLE QUE LA EXTENSION SEA .SQL , UN .SQL SOLO ES UN .TXT RENOMBRADO
181SOURCE C:/ruta/ruta2/ruta3/informacion a importar.sql;
182
183TRADUCCION >> Mysql leera el archivo y realizara todos los pasos en orden secuencial en la base de datos, haciendolo todo seguido, es lo recomendado en lugar de meter las cosas de una en una, asi podemos apañar un .txt que este perfectamente formateado y con todo en su sitio y luego importarlo todo de golpe:
184
185
186>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<
187>>>> ESTRUCTURA DE UN ARCHIVO PARA IMPORTACION SQL <<<<
188>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<
189======== CREACION DE LAS TABLAS Y LAS COLUMNAS ========
190-- Esto es un comentario, los comentarios van con -- al principio
191
192vvvvvvvv copiar a partir de aqui: vvvvvvvv
193
194SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
195SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
196SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
197
198-- elimina la db 'sakila' si ya existe, de este modo "sobreescribe" la anterior
199DROP SCHEMA IF EXISTS sakila;
200
201-- crea la db 'sakila'
202CREATE SCHEMA sakila;
203
204-- cambia mysql a utilizar la db 'sakila'
205USE sakila;
206
207-- creacion de una tabla 'actor'
208CREATE TABLE actor (
209 actor_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
210 first_name VARCHAR(45) NOT NULL,
211 last_name VARCHAR(45) NOT NULL,
212 last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
213 PRIMARY KEY (actor_id),
214 KEY idx_actor_last_name (last_name)
215)ENGINE=InnoDB DEFAULT CHARSET=utf8;
216
217-- la ultima linea especifica el encodig de los caracteres (utf-8) y el formato de la db (innoDB)
218-- solo habria que seguir rellenando el .txt con comandos similares para crear todas las tablas, cada una con sus atributos, nombres de columnas, etc
219
220======== RELLENAR DE DATOS LAS TABLAS ========
221vvvvvvvv copiar a partir de aqui: vvvvvvvv
222
223SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
224SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
225SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
226
227-- establecer la base datos donde van a acabar los datos
228USE sakila;
229
230-- los datos (asegurate de que estan en el formato correcto antes de meterlos!)
231INSERT INTO actor VALUES (1,'PENELOPE','GUINESS','2006-02-15 04:34:33'),
232(2,'NICK','WAHLBERG','2006-02-15 04:34:33'),
233(3,'ED','CHASE','2006-02-15 04:34:33'),
234(4,'JENNIFER','DAVIS','2006-02-15 04:34:33'),
235(5,'JOHNNY','LOLLOBRIGIDA','2006-02-15 04:34:33'),
236(6,'BETTE','NICHOLSON','2006-02-15 04:34:33'),
237(7,'GRACE','MOSTEL','2006-02-15 04:34:33'),
238(8,'MATTHEW','JOHANSSON','2006-02-15 04:34:33'),
239(9,'JOE','SWANK','2006-02-15 04:34:33'),
240(10,'CHRISTIAN','GABLE','2006-02-15 04:34:33'),
241(11,'ZERO','CAGE','2006-02-15 04:34:33'),
242(12,'KARL','BERRY','2006-02-15 04:34:33'),
243(13,'UMA','WOOD','2006-02-15 04:34:33')
244;