Para comenzar en este blog voy a poner algunos comandos basicos de mysql, ya se que es algo muy sencillo pero estoy seguro que a mas de uno de vez en vez se nos olvida como demonios se hacia una insercion, una actualizacion, una consulta etc, asi que sin mas comencemos!!!!
Ah como nota, puede que no ponga de momento muchos comandos pero a lo largo de los dias ire actualizando este post asi que no lo critiquen tan severamente hasta pasadas algunas semanitas :)
nota: El mysql> no se pone es solo para indicar el inicio de la consola de MySQL =D, digo ahi por si algun atarantado se va con la finta :P.
CREAR BASE DE DATOS
create database nombre_de_la_BD;
ejem: create database my_firts_DB;
CREAR TABLA
campo1 int ,
campo2 varchar (40) ,
campo3 varchar (30) ,
campo n tipo
) ;
create table SALES-REPRESENTATIVE (
EMPLOYEE-NO int ,
SURNAME varchar (40) ,
FIRST-NAME varchar (30) ,
COMMISSION tinyint
) ;
help:http://dev.mysql.com/doc/refman/5.0/es/creating-tables.html
AGREGAR UNA COLUMNA A UNA TABLA YA CREADA
mysql> ALTER TABLE tabla ADD columna_nueva TIPO;
ALTER TABLE ventas ADD edad integer(10);
help: El comando ALTER tiene mas usos que ya ire subiendo, por el momento si aqui no se encuentra lo que quieres modificar de tu estructura checa el siguiente link http://dev.mysql.com/doc/refman/5.0/es/alter-table.html
mysql> INSERT INTO
sales_rep(employee_number,surname,first_name,commission)
VALUES(1, 'Rive', 'Sol',10);
mysql> SELECT first name,surname,commission FROM sales-rep
ORDER BY commission DESC LIMIT 2,3;
Este comando puede que no sea tan entendible como los anteriores pero lo que hace es con:
SELECT first name,surname,commission FROM sales-rep
realizar la consulta, luego con:
ORDER BY commission DESC
Me ordena el resultado de la consulta tomando en cuenta los valores de la columna comision, y los ordena de mayor a menor, si quisieramos que la ordenacion fueran de menor a mayor simplemente habria que quitar la parabra DESC, es decir quedaria:
ORDER BY commission
Y por ultimo para limitar el numero de resultados que me regresa mi query (para los despistes query es lo mismo que consulta) hacemos:
LIMIT 2,3
Donde el primer numero es el desplazamiento con respecto al primer resultado y el segundo es el numero de resultados al que estamos limitando la consulta, es decir si tenemos en una tabla los valores:
1
2
3
4
5
6
7
haciendo un LIMIT 2,3 los valores que me regresara el query seran 2,3,4. Es decir avanza dos posiciones y me cuenta 3 filas y esos valores son los retornados.
si ponemos solamente un numero, por ejemplo:
LIMIT 2
me regresara dos filas tomando como desplazamiento el 0, es decir considerando el ejemplo anterior nos regresara los valores 1,2 y con un LIMIT 5 regresara los valores 1,2,3,4,5, espero que alla quedado claro ;)
ELIMINAR REGISTROS (delete y truncate)
Con el delete eliminamos filas(registros, rows) de nuestra tabla.
nota: No podemos eliminar tan solo ciertas columnas, solo la fila completa.
mysql> DELETE FROM sales-rep WHERE employee-number = 5 ;
Query OK, 1 row a f f e c t e d ( 0 . 0 0 sec)
DELETE FROM `diario` WHERE `diario`.`id` = 214 LIMIT 1;
nota: si no usamos condiciones borraremos todos los registros de la tabla:
Si hacemos delete from alumnos; estaremos borrando todos los registros de la tabla alumnos
ahora bien, ya sabemos como eliminar un registro con la instruccion DELETE. Y acabo de mencionar que si no utiliza una clausula WHERE se eliminaran todos los registros de la tabla.
Un problema asociado a la eliminacion de registros utilizando este metodo es que puede resultar
muy lento si la tabla es de gran tamaño. Por suerte, existe otra forma de realizar dicha operacion.
La forma mas rapida de eliminar estos valores consiste en utilizar la instruccion
TRUNCATE.
A continuacion, utilizaremos dicha instruccion:
mysql> TRUNCATE customer_sales_values;
De esta manera habremos eliminado rapidamente todos los registros de nuestra tabla customer_sales_values.
mysql> SELECT nombre SUM(edad) FROM alumnos GROUP BY nombre;
Con esto abremos agrupado a todas las personas con el mismo nombre y si por ejemplo teniamos 5 personas con nombre juan, ahora dicho nombre no me aparecera las 5 veces si no que gracias a la agrupacion ahora solamente aparecera juan una vez.
mysql> SELECT nombre ,apellido ,sales-rep,COUNT (*) AS count from sales, sales-rep WHERE sales-rep=employee-number
GROUP BY sales-rep , firs t-name , surname ORDER BY count LIMIT 1;
Con esta instruccion agrupamos solamente aquellas filas que tengan los campos sales-rep , firs t-name , surname iguales.
UPDATE tabla SET columna=nuevo_valor;
UPDATE employee SET commission=commission+5;//actualiza todas las filas de la tabla employee aumentandole 5 a la columna commission.
UPDATE employee SET commission=commission+5 WHERE eploy="veterinario";
//aumenta 5 en la columna comission unicamente a los empleados que sean veterinarios.
mysql> UPDATE sales-repl-2 set first_name = "Peggy" WHERE first_name="Peggy-Sue" ;
INSERTAR DATOS A TABLAS
mysql> INSERT INTO
sales_rep(employee_number,surname,first_name,commission)
VALUES(1, 'Rive', 'Sol',10);
LIMITAR RESULTADOS DE CONSULTA
mysql> SELECT first name,surname,commission FROM sales-rep
ORDER BY commission DESC LIMIT 2,3;
Este comando puede que no sea tan entendible como los anteriores pero lo que hace es con:
SELECT first name,surname,commission FROM sales-rep
realizar la consulta, luego con:
ORDER BY commission DESC
Me ordena el resultado de la consulta tomando en cuenta los valores de la columna comision, y los ordena de mayor a menor, si quisieramos que la ordenacion fueran de menor a mayor simplemente habria que quitar la parabra DESC, es decir quedaria:
ORDER BY commission
Y por ultimo para limitar el numero de resultados que me regresa mi query (para los despistes query es lo mismo que consulta) hacemos:
LIMIT 2,3
Donde el primer numero es el desplazamiento con respecto al primer resultado y el segundo es el numero de resultados al que estamos limitando la consulta, es decir si tenemos en una tabla los valores:
1
2
3
4
5
6
7
haciendo un LIMIT 2,3 los valores que me regresara el query seran 2,3,4. Es decir avanza dos posiciones y me cuenta 3 filas y esos valores son los retornados.
si ponemos solamente un numero, por ejemplo:
LIMIT 2
me regresara dos filas tomando como desplazamiento el 0, es decir considerando el ejemplo anterior nos regresara los valores 1,2 y con un LIMIT 5 regresara los valores 1,2,3,4,5, espero que alla quedado claro ;)
ELIMINAR REGISTROS (delete y truncate)
Con el delete eliminamos filas(registros, rows) de nuestra tabla.
nota: No podemos eliminar tan solo ciertas columnas, solo la fila completa.
mysql> DELETE FROM sales-rep WHERE employee-number = 5 ;
Query OK, 1 row a f f e c t e d ( 0 . 0 0 sec)
DELETE FROM `diario` WHERE `diario`.`id` = 214 LIMIT 1;
nota: si no usamos condiciones borraremos todos los registros de la tabla:
Si hacemos delete from alumnos; estaremos borrando todos los registros de la tabla alumnos
ahora bien, ya sabemos como eliminar un registro con la instruccion DELETE. Y acabo de mencionar que si no utiliza una clausula WHERE se eliminaran todos los registros de la tabla.
Un problema asociado a la eliminacion de registros utilizando este metodo es que puede resultar
muy lento si la tabla es de gran tamaño. Por suerte, existe otra forma de realizar dicha operacion.
La forma mas rapida de eliminar estos valores consiste en utilizar la instruccion
TRUNCATE.
A continuacion, utilizaremos dicha instruccion:
mysql> TRUNCATE customer_sales_values;
De esta manera habremos eliminado rapidamente todos los registros de nuestra tabla customer_sales_values.
GROUP BY(AGRUPAR RESULTADOS)
Para evitar nombres o informacion repetida agrupamos nuestra consulta dada una columna:mysql> SELECT nombre SUM(edad) FROM alumnos GROUP BY nombre;
Con esto abremos agrupado a todas las personas con el mismo nombre y si por ejemplo teniamos 5 personas con nombre juan, ahora dicho nombre no me aparecera las 5 veces si no que gracias a la agrupacion ahora solamente aparecera juan una vez.
mysql> SELECT nombre ,apellido ,sales-rep,COUNT (*) AS count from sales, sales-rep WHERE sales-rep=employee-number
GROUP BY sales-rep , firs t-name , surname ORDER BY count LIMIT 1;
Con esta instruccion agrupamos solamente aquellas filas que tengan los campos sales-rep , firs t-name , surname iguales.
FECHA ACTUAL
SELECT CURRENT_DATE();//esta intruccion nos regresa la fecha actual de nuestro sistema.UPDATE (MODIFICAR EL CONTENIDO DE UNA TABLA)
UPDATE tabla SET columna=nuevo_valor;
UPDATE employee SET commission=commission+5;//actualiza todas las filas de la tabla employee aumentandole 5 a la columna commission.
UPDATE employee SET commission=commission+5 WHERE eploy="veterinario";
//aumenta 5 en la columna comission unicamente a los empleados que sean veterinarios.
mysql> UPDATE sales-repl-2 set first_name = "Peggy" WHERE first_name="Peggy-Sue" ;
SELECCIONAR BASE DE DATOS
USE BD_a_ocupar;
ejemplo:
mysql> USE menagerie
Database changedLas bases de datos sólo necesitan ser creadas una sola vez, pero deben ser seleccionadas cada vez que se inicia una sesión de mysql
DESCRIBIR UNA TABLA (VER CONTENIDO DE UNA TABLA CON DESC)
{DESCRIBE | DESC}tbl_name
[col_name
|wild
]
Con esta instruccion podremos ver la estructura y el contenido de una tabla.
ejemplos equivalentes:
DESCRIBE mi_tabla;
DESC mi_tabla;
BORRAR TABLAS
drop table nombre_tabla;
ejemplo:
DROP TABLE mi_tablita;
REALIZAR UNA BUSQUEDA EN LA BD (SELECT)
Al proceso de busqueda en la BD tambien se le conoce como consulta o query.
1)SELECT columnas_a_seleccionar FROM nombre_de_la_tabla;
2)SELECT columnas_a_seleccionar FROM nombre_de_la_tabla WHERE condicion;
help: El select es de las estructuras mas complejas y potentes del lenguaje sql, las dos anteriormente mostradas, simplemente son las 2 mas basicas, para saber mas sobre las posibilidades del select consulte el siguiente link:http://dev.mysql.com/doc/refman/5.0/es/select.html
en columnas a seleccionar se pueden especificar las columnas que deseamos ver separadas entre si por comas, sin embargo si se quieren ver todas las columnas simplemente pondremos el caracter especial *.
ejemplos:
Select nombre from alumnos;//nos muestra todos los nombres dentro de la tabla alumnos
Select nombre, direccion, telefono from alumnos;
Select * from alumnos;// nos muestra toda la informacion contenida en la tabla alumnos.
La clausula WHERE sirve para limitar los resultados y acer una busqueda mas especifica, ejemplos:
SELECT * FROM alumnos WHERE nombre='Hugo'; //nos muestra toda la informacion de los alumnos que lleven por nombre Hugo.
Sólo hay dos tipos de lenguajes de programación: los lenguajes de los que la gente siempre se queja, y los lenguajes que nadie usa.
No hay comentarios:
Publicar un comentario