83
MYSQL

Introducción a MySQL(1).pptx

Embed Size (px)

Citation preview

MySQL

MySQL

https://books.google.com.mx/books?id=hwNWRHc79PMC&pg=PA288&lpg=PA288&dq=para+que+se+utiliza+mysql+-h+localhost+-u+root+-p&source=bl&ots=QR65foyLBw&sig=qMHeXjFEf4Y45m8npnXML_a5A8k&hl=es&sa=X&ei=gwXRVLuKJM34yQSTnYDQAg&ved=0CEwQ6AEwBw#v=onepage&q=para%20que%20se%20utiliza%20mysql%20-h%20localhost%20-u%20root%20-p&f=false1

MySQLLenguaje estructurado de consultas.

Usa una combinacin de lgebra relacional y construcciones de clculo relacional.

MySQLEl lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos.

Componentes de SQL

Lenguaje de definicin de datos.Lenguaje de manipulacin de datos.Definicin de vistas.Control de transacciones.SQL incorporado y SQL dinmico (cmo incorporar instrucciones en lenguajes de programacin).Integridad (restricciones de integridad que deben satisfacer los datos).Autorizacin.

MySQL permite:crear base de datos y tablas, insertar datos, modificarlos, eliminarlos, ordenarlos, hacer consultas Administrar bases de datos.

Comandos SQLExisten dos tipos de comandos SQL:

DDL

DML

Comandos SQLLos comandos DDL permiten crear y definir nuevas bases de datos, campos e ndices.

Los comandos DML permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.

mysql -h localhost -u root -p

7

Comandos DDLComandoDescripcinCREATEUtilizado para crear nuevas tablas, campos e ndicesDROPEmpleado para eliminar tablas e ndicesALTERUtilizado para modificar las tablas agregando campos o cambiando la definicin de los campos.

CREATE DATABASECREATE DATABASE [IF NOT EXISTS] db_name

Este comando se emplea para crear una base de datos.

CREATE DATABASE Escuela;

USEUSE nombre_DB

El comando USE se utiliza para establecer que las operaciones que se realicen debern ser sobre la Base de datos especificada.

USE Escuela;

SHOW DATABASESEste comando permite ver cuntas bases de datos est controlando el gestor de BD, es decir, obtiene un listado de las bases de datos activas.

SHOW DATABASES;

CREATE TABLEEste comando permite la creacin de tablas dentro de una determinada base de datos.

CREATE TABLE alumnos (clave varchar(10) primary key, nombre varchar(30));

CREATE TABLE alumnos (clave Int auto_increment Primary Key, nombre varchar(30) Not Null, FechaNac Date Not Null);

Describe alumnos;

Comandos DMLComandoDescripcinSELECTUtilizado para consultar registros de la base de datos que satisfagan un criterio determinadoINSERTUtilizado para cargar lotes de datos en la base de datos en una nica operacin.UPDATEUtilizado para modificar los valores de los campos y registros especificadosDELETEUtilizado para eliminar registros de una tabla de una base de datos

Insert intoInsert into productos(folio, nombre, descripcio, precio, existencia) values (12345,azucar,por kilo,15.00,25);

Insert into productos(folio, nombre, descripcio, precio, existencia) values (12345,azucar,por kilo,15.00,25),(12346,harina,por kilo,17,22),(12444,agua,por litro,8.00,50);

Insert intoMediante la sentencia INSERT INTO se insertan registros a las tablas:

Mtodo que no especifica los nombres de las columnas en las que se inserta los datos, pero si los valores:

Insert into table_name values (value1,value2,value3,...);

Insert intoEl segundo mtodo especifica los nombres de las columnas y los valores a insertar:

Insert into table_name (column1,column2,column3,...)Values (value1,value2,value3,...);

Insert into y selectEs posible copiar todas los registros de una tabla a otra que existe.

INSERT INTO tabla2SELECT * FROM tabla1;

Tambin es posible copiar de una tabla a otra, algunas columnas.

INSERT INTO tabla2(Nombre_columna(s))SELECT Nombre_columna(s)FROM tabla1;

Clusulas Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o manipular.

ClusulaDescripcinFROMUtilizada para especificar la tabla de la cual se van a seleccionar los registrosWHEREUtilizada para especificar las condiciones que deben reunir los registros que se van a seleccionarGROUP BYUtilizada para separar los registros seleccionados en grupos especficosHAVINGUtilizada para expresar la condicin que debe satisfacer cada grupoORDER BYUtilizada para ordenar los registros seleccionados de acuerdo con un orden especfico

Operadores lgicosOperadorUsoANDEs el "y" lgico. Evalua dos condiciones y devuelve un valor de verdad slo si ambas son ciertas.OREs el "o" lgico. Evala dos condiciones y devuelve un valor de verdar si alguna de las dos es cierta.NOTNegacin lgica. Devuelve el valor contrario de la expresin.

Operadores de comparacinOperadorUsoMayor queDistinto de=Mayor Igual que=Igual queBETWEENUtilizado para especificar un intervalo de valores.LIKEUtilizado en la comparacin de un modeloInUtilizado para especificar registros de una base de datos

Valores numricos sin signoLos campos de tipo entero pueden tener el atributo "auto_increment", el cual incrementa automticamente el valor del campo en 1.Los campos de cualquier tipo aceptan el atributo "null" y "not null.Otro atributo que permiten los campos de tipo numrico es "unsigned".El atributo "unsigned" (sin signo) permite slo valores positivos.

Valores numricos sin signoEjemplo:edad integer unsigned; precio float unsigned En los tipos enteros, "unsigned" duplica el rango.Los tipos de coma flotante tambin aceptan el atributo "unsigned", sin embargo, el valor del lmite superior del rango se mantiene.

Tipos de datosTEXTO: Para almacenar texto usamos cadenas de caracteres. Las cadenas se colocan entre comillas simples. Tipos: varchar, char,text.

Tipos de datos bsicosvarchar:Almacena cadenas de caracteres. Se escribe entre comillas simples: 'Hola'. Define una cadena de longitud variable en la cual determinamos el mximo de caracteres. Puede guardar hasta 255 caracteres. Para almacenar cadenas de hasta 30 caracteres, definimos un campo de tipo varchar(30).

integer: Almacena valores numricos enteros, de -2000000000 a 2000000000 aprox.

float: Almacena valores numricos decimales. Se utiliza como separador el punto.

Tipos de datosTextovarchar(x):

Define una cadena de caracteres de longitud variable.

Su rango va de 1 a 255 caracteres. Un varchar(10) ocupa 11 bytes, pues en uno de ellos almacena la longitud de la cadena. Ocupa un byte ms que la cantidad definida.

Tipos de datosTextochar(x):

Define una cadena de longitud fija, su rango es de 1 a 255 caracteres. Si la cadena ingresada es menor a la longitud definida almacena espacios en blanco a la derecha, tales espacios se eliminan al recuperarse el dato. Un char(10) ocupa 10 bytes, pues al ser fija su longitud, no necesita ese byte adicional donde guardar la longitud. Por ello, si la longitud es invariable, es conveniente utilizar el tipo char; caso contrario, el tipo varchar.

Ocupa tantos bytes como se definen con el argumento "x". Si ingresa un argumento mayor al permitido (255) aparece un mensaje indicando que no se permite y sugiriendo que use "blob" o "text". Si omite el argumento, coloca 1 por defecto.

Tipos de datosTextoblob o text:

Almacena bloques de datos de 60000 caracteres de longitud aprox.

Tipos de datos nmeroNUMEROS:

Permiten representar enteros, negativos, decimales.

Para almacenar valores con decimales utilizamos:

float o decimal.

Tipos de datosNmeroPara almacenar valores enteros usamos:integer(x) o int(x)

Su rango es de -2000000000 a 2000000000 aprox.

Tipos de datosNmeroSu rango es de -2000000000 a 2000000000 aprox. El tipo "int unsigned" va de 0 a 4000000000. El tipo "integer" tiene subtipos:

TipoValoresmediumint(x)8000000 a 8000000 smallint(x)-30000 a 30000 tinyint(x)-128 a 127bool o booleanUn valor cero se considera falso, los valores distintos de cero, verdadero.bigint(x)Entero largo. Va de 9000000000000000000 a 9000000000000000000 aprox.

Tipos de datosNmeroPara almacenar valores con decimales utilizamos:

float (t,d): nmero de coma flotante. Su rango es de -3.4e+38 a 1.1e-38 (9 cifras).decimal o numeric (t,d): El primer argumento indica el total de dgitos y el segundo, la cantidad de decimales. El rango depende de los argumentos, tambin los bytes que ocupa. Si queremos almacenar valores entre 0.00 y 99.99 debemos definir el campo como tipo "decimal (4,2)". Si no se indica el valor del segundo argumento, por defecto es 0. Para los tipos "float" y "decimal" se utiliza el punto como separador de decimales.Todos los tipos enteros pueden tener el atributo "unsigned", esto permite slo valores positivos y duplica el rango. Los tipos de coma flotante tambin aceptan el atributo "unsigned", pero el valor del lmite superior del rango no se modifica.

Tipos de datosNmeroTipoBytes de almacenamiento

tinyint 1smallint 2mediumint3int4bigint 8float4

Tipos de datosFecha y horaPermiten almacenar fechas y horas.Tipos:

date (fecha), datetime (fecha y hora), time (hora),year (ao),timestamp.

Tipos de datosFecha y horadate: Representa una fecha con formato "YYYY-MM-DD". El rango va de "1000-01-01" a "9999-12-31".

datetime: Almacena fecha y hora, su formato es "YYYY-MM-DD HH:MM:SS". El rango es de "1000-01-01 00:00:00" a "9999-12-31 23:59:59".

Tipos de datosFecha y horatime: Almacena una hora. Su formato es "HH:MM:SS". El rango va de "-838:59:59" a "838:59:59".

year(2) y year(4): Almacena un ao. Su formato es "YYYY" o "YY". Permite valores desde 1901 a 2155 (en formato de 4 dgitos) y desde 1970 a 2069 (en formato de 2 dgitos).

Tipos de datosFecha y horaTipoBytes de almacenamiento date3datetime8time3year1

Tipos de datosenum y set Representan una enumeracin y un conjunto respectivamente.

"null"El valor 'null' significa valor desconocido o "dato inexistente

Funciones de agregadoLas funciones de agregado se usan dentro de una clusula SELECT en grupos de registros para devolver un nico valor que se aplica a un grupo de registros.

FuncinDescripcinAVGUtilizada para calcular el promedio de los valores de un campo determinadoCOUNTUtilizada para devolver el nmero de registros de la seleccin SUMUtilizada para devolver la suma de todos los valores de un campo determinado MAXUtilizada para devolver el valor ms alto de un campo especificado MINUtilizada para devolver el valor ms bajo de un campo especificado

Funciones para el manejo de cadenasFuncinSignificadoord(caracter)Retorna el cdigo ASCII para el caracter enviado como argumento. select ord('A'); retorna 65.

char(x,..)retorna una cadena con los caracteres en cdigo ASCII de los enteros enviados como argumentos.select char(65,66,67); retorna "ABC".concat(cadena1,cadena2,...)devuelve la cadena resultado de concatenar los argumentos.concat_ws(separador,cadena1,cadena2,...):"ws" son las iniciales de "with separator". El primer argumento especifica el separador que utiliza para los dems argumentos; el separador se agrega entre las cadenas a concatenar.find_in_set(cadena,lista de cadenas)devuelve un valor entre de 0 a n (correspondiente a la posicin), si la cadena envidada como primer argumento est presente en la lista de cadenas enviadas como segundo argumento.

Funciones para el manejo de cadenasFuncinSignificadolength(cadena)retorna la longitud de la cadena enviada como argumento.select length('Hola'); devuelve 4.locate(subcadena,cadena)retorna la posicin de la primera ocurrencia de la subcadena en la cadena enviadas como argumentos. Devuelve "0" si la subcadena no se encuentra en la cadena. select locale('o','como le va'); retorna 2.position(subcadena in cadena)funciona como "locate()". Devuelve "0" si la subcadena no se encuentra en la cadena. select position('o' in 'como le va'); retorna 2.locate(subcadena,cadena,posicioninicialretorna la posicin de la primera ocurrencia de la subcadena enviada como primer argumentos en la cadena enviada como segundo argumento, empezando en la posicin enviada como tercer argumento. Devuelve "0" si la subcadena no se encuentra en la cadena. Ejemplos:select locate('ar','Margarita',1); retorna 1.select locate('ar','Margarita',3); retorna 5.

Funciones para el manejo de cadenasFuncinSignificadoinstr(cadena,subcadena)retorna la posicin de la primera ocurrencia de la subcadena enviada como segundo argumento en la cadena enviada como primer argumento. Ejemplo:select instr('como le va','om'); devuelve 2.lpad(cadena,longitud,cadenarelleno)retorna la cadena enviada como primer argumento, rellenada por la izquierda con la cadena enviada como tercer argumento hasta que la cadena retornada tenga la longitud especificada como segundo argumento. Si la cadena es ms larga, la corta. Ejemplo:select lpad('hola',10,'0'); retorna "000000hola.rpad(cadena,longitud,cadenarelleno)igual que "lpad" excepto que rellena por la derecha.left(cadena,longitud)retorna la cantidad (longitud) de caracteres de la cadena comenzando desde la inquierda, primer caracter. Ejemplo:select left('buenos dias',8); retorna "buenos d.

Funciones para el manejo de cadenasFuncinSignificadoright(cadena,longitud)retorna la cantidad (longitud) de caracteres de la cadena comenzando desde la derecha, ltimo caracter. Ejemplo:select right('buenos dias',8); retorna "nos dias.substring(cadena,posicion,longitud)retorna una subcadena de tantos caracteres de longitud como especifica en tercer argumento, de la cadena enviada como primer argumento, empezando desde la posicin especificada en el segundo argumento. Ejemplo:select substring('Buenas tardes',3,5); retorna "enas.substring(cadena from posicion for longitud): variante de "substring(cadena,posicion,longitud)". Ejemplo:select substring('Buenas tardes' from 3 for 5); mid(cadena,posicion,longitud)igual que "substring(cadena,posicion,longitud)". Ejemplo:select mid('Buenas tardes' from 3 for 5); retorna "enas.substring(cadena,posicion)retorna la subcadena de la cadena enviada como argumento, empezando desde la posicin indicada por el segundo argumento. Ejemplo:select substring('Margarita',4); retorna "garita.

Funciones para el manejo de cadenasFuncinSignificadoltrim(cadena)retorna la cadena con los espacios de la izquierda eliminados. Ejemplo:select ltrim(' Hola '); retorna "Hola rtrim(cadena)retorna la cadena con los espacios de la derecha eliminados. Ejemplo:select rtrim(' Hola '); retorna " Holatrim([[both|leading|trailing] [subcadena] from] cadena)retorna una cadena igual a la enviada pero eliminando la subcadena prefijo y/o sufijo. Si no se indica ningn especificador (both, leading o trailing) se asume "both" (ambos). Si no se especifica prefijos o sufijos elimina los espacios. Ejemplos:select trim(' Hola '); retorna 'Hola'.select trim (leading '0' from '00hola00'); retorna "hola00".select trim (trailing '0' from '00hola00'); retorna "00hola.replace(cadena,cadenareemplazo,cadenareemplazar): retorna la cadena con todas las ocurrencias de la subcadena reemplazo por la subcadena a reemplazar. Ejemplo:select replace('xxx.mysql.com','x','w'); retorna "www.mysql.com.

Funciones para el manejo de cadenasFuncinSignificadorepeat(cadena,cantidad)devuelve una cadena consistente en la cadena repetida la cantidad de veces especificada. Si "cantidad" es menor o igual a cero, retorna una cadena vaca. Ejemplo:select repeat('hola',3); retorna "holaholaholareverse(cadena)devuelve la cadena invirtiendo el order de los caracteres. Ejemplo:select reverse('Hola'); retorna "aloHinsert(cadena,posicion,longitud,nuevacadena)retorna la cadena con la nueva cadena colocndola en la posicin indicada por "posicion" y elimina la cantidad de caracteres indicados por "longitud". Ejemplo:select insert('buenas tardes',2,6,'xx'); retorna ""bxxtardeslcase(cadena) y lower(cadena)retornan la cadena con todos los caracteres en minsculas. Ejemplo:select lower('HOLA ESTUDIAnte'); retorna "hola estudiante".select lcase('HOLA ESTUDIAnte'); retorna "hola estudiante-ucase(cadena) y upper(cadena)retornan la cadena con todos los caracteres en maysculas. Ejemplo:select upper('HOLA ESTUDIAnte'); retorna "HOLA ESTUDIANTEstrcmp(cadena1,cadena2)retorna 0 si las cadenas son iguales, -1 si la primera es menor que la segunda y 1 si la primera es mayor que la segunda. Ejemplo:select strcmp('Hola','Chau'); retorna 1

Funciones matemticasFuncinSignificadoabs(x)retorna el valor absoluto del argumento "x".Ejemplo: select abs(-20); retorna 20ceiling(x)redondea hacia arriba el argumento "x". Ejemplo: select ceiling(12.34), retorna 13floor(x)redondea hacia abajo el argumento "x". Ejemplo: select floor(12.34); retorna 12greatest(x,y,..)retorna el argumento de mximo valorleast(x,y,...)con dos o ms argumentos, retorna el argumento ms pequeo.mod(n,m)significa "mdulo aritmtico"; retorna el resto de "n" dividido en "m". Ejemplos:select mod(10,3); retorna 1.select mod(10,2); retorna 0.%:devuelve el resto de una divisin. Ejemplos:select 10%3; retorna 1.select 10%2; retorna 0.

Funciones matemticasFuncinSignificadopower(x,y)retorna el valor de "x" elevado a la "y" potencia. Ejemplo:select power(2,3); retorna 8rand()retorna un valor de coma flotante aleatorio dentro del rango 0 a 1.0round(x)retorna el argumento "x" redondeado al entero ms cercano. Ejemplos:select round(12.34); retorna 12.select round(12.64); retorna 13.srqt()devuelve la raiz cuadrada del valor enviado como argumento.truncate(x,d)retorna el nmero "x", truncado a "d" decimales. Si "d" es 0, el resultado no tendr parte fraccionaria. Ejemplos:select truncate(123.4567,2); retorna 123.45;select truncate (123.4567,0); retorna 123.Todas las funciones retornan null en caso de error.

Funciones de fecha y horaFuncinSignificadoadddate(fecha, interval expresion)retorna la fecha agregndole el intervalo especificado. Ejemplos: adddate('2006-10-10',interval 25 day) retorna "2006-11-04". adddate('2006-10-10',interval 5 month) retorna "2007-03-10".adddate(fecha, dias)retorna la fecha agregndole a fecha "dias". Ejemplo: adddate('2006-10-10',25), retorna "2006-11-04".addtime(expresion1,expresion2)agrega expresion2 a expresion1 y retorna el resultado.current_dateretorna la fecha de hoy con formato "YYYY-MM-DD" o "YYYYMMDD".current_timeretorna la hora actual con formato "HH:MM:SS" o "HHMMSS".

Funciones de fecha y horaFuncinSignificadodatediff(fecha1,fecha2)retorna la cantidad de das entre fecha1 y fecha2.dayname(fecha)retorna el nombre del da de la semana de la fecha. dayofmonth(fecha)retorna el da del mes para la fecha dada, dentro del rango 1 a 31.dayofweek(fecha)retorna el ndice del da de semana para la fecha pasada como argumento. Los valores de los ndices son: 1=domingo, 2=lunes,... 7=sbado). Ejemplo: dayofweek('2006-08-10') retorna 5, o sea jueves.dayofyear(fecha)retorna el da del ao para la fecha dada, dentro del rango 1 a 366. Ejemplo: dayofmonth('2006-08-10') retorna 222.extract(tipo from fecha)extrae partes de una fecha.Ejemplos:extract(year from '2006-10-10'), retorna "2006". extract(year_month from '2006-10-10 10:15:25') retorna "200610".

Funciones de fecha y horaFuncinSignificadohour(hora)retorna la hora para el dato dado, en el rango de 0 a 23. Ejemplo: hour('18:25:09') retorna "18minute(hora)retorna los minutos de la hora dada, en el rango de 0 a 59.monthname(fecha)retorna el nombre del mes de la fecha dada.Ejemplo: monthname('2006-08-10') retorna "August.month(fecha)retorna el mes de la fecha dada, en el rango de 1 a 12.now() y sysdate()retornan la fecha y hora actuales.period_add(p,n)agrega "n" meses al periodo "p", en el formato "YYMM" o "YYYYMM"; retorna un valor en el formato "YYYYMM". El argumento "p" no es una fecha, sino un ao y un mes. Ejemplo: period_add('200608',2) retorna "200610.

Funciones de fecha y horaFuncinSignificadoperiod_diff(p1,p2)retorna el nmero de meses entre los perodos "p1" y "p2", en el formato "YYMM" o "YYYYMM". Los argumentos de perodo no son fechas sino un ao y un mes. Ejemplo: period_diff('200608','200602') retorna 6.second(hora)retorna los segundos para la hora dada, en el rango de 0 a 59.sec_to_time(segundos)retorna el argumento "segundos" convertido a horas, minutos y segundos. Ejemplo: sec_to_time(90) retorna "1:30".timediff(hora1,hora2)retorna la cantidad de horas, minutos y segundos entre hora1 y hora2.time_to_sec(hora)retorna el argumento "hora" convertido en segundos.to_days(fecha)retorna el nmero de da (el nmero de da desde el ao 0).

weekday(fecha)retorna el ndice del da de la semana para la fecha pasada como argumento. Los ndices son: 0=lunes, 1=martes,... 6=domingo). Ejemplo: weekday('2006-08-10') retorna 3, o sea jueves.year(fecha)retorna el ao de la fecha dada, en el rango de 1000 a 9999. Ejemplo: year('06-08-10') retorna "2006"

Columnas calculadasEs posible obtener salidas en las cuales una columna sea el resultado de un clculo y no un campo de una tabla.Ejemplo:

Consultar el monto a pagar.select producto, precio, cantidad, precio*cantidad from productos;

Consultar el 10% de descuento .select producto, precio, precio*0.1, precio-(precio*0.1) from productos;

Create tableLa tabla debe ser definida con un nombre que la identifique. Mediante este nombre se tendr acceso a la tabla.CREATE TABLE tabla (nombre_campo1 tipo (tamao), nombre_campo2 tipo (tamao), ... ) Ejemplo:CREATE TABLE usuarios ( nombre varchar(30), clave varchar(10) ); Para ver las tablas existentes en una base de datos se utiliza el comando: show tables;

Clave primariaPara definir un campo como clave primaria es necesario agregar "primary key y el nombre del campo que ser definido como clave primaria.

Ejemplo: CREATE TABLE clientes (id int, nombre varchar(20), clave varchar(10), primary key(id) );

Clave primariaEs importante recordar que:

Si intentamos ingresar un valor para el campo clave y ste ya existe, visualizaremos un mensaje de error indicando que no es posible almacenar el registro debido a que el campo clave ya existe.

Los campos definidos como clave primaria no pueden repetirse.

Cualquier campo puede ser clave primaria, sin embargo, es necesario que sus valores no se repitan.

ALTER TABLEModifica el diseo de una tabla ya existente, se pueden modificar los campos o los ndices existentes.

Sintaxis:

ALTER TABLE tabla {ADD {COLUMN tipo de campo[(tamao)] [CONSTRAINT ndice] CONSTRAINT ndice multicampo} | DROP {COLUMN campo I CONSTRAINT nombre del ndice} }

Alter tableALTER TABLE Empleados ADD COLUMN Salario CURRENCY;Agrega un campo Salario de tipo Moneda a la tabla Empleados.

ALTER TABLE Empleados DROP COLUMN Salario;Elimina el campo Salario de la tabla empleados.

DROP TABLESe utiliza para eliminar una tabla.DROP TABLE

Ejemplo:

DROP TABLE clientes;

Si la tabla a eliminar no existe, se mostrar un mensaje de error, para evitar el error, puede indicarse que se elimine la tabla clientes slo en caso de que exista:

drop table if exists clientes;

TRUNCATE TABLEEl comando TRUNCATE TABLE elimina la tabla especificada:Elimina todos los registros de la tabla.Crea nuevamente la tabla con la misma estructura que se defini inicialmente.

DROP TABLETRUNCATE TABLEDELETEBorra la tablaVaca los registrosMs rpidoMs lentoBorra los registros uno a unoAl eliminar registros auto_increment, la secuencia numricaInicia en 1Al eliminar registros auto_increment, contina con la secuencia numrica

INSERT INTOEl comando INSERT INTO se utiliza para ingresar valores dentro de una tabla ya existente.

Sintaxis:INSERT INTO nombre_tabla (campo1, campo2, campo3) values (valor1,valor2, valor3);

Ejemplo:INSERT INTO clientes(id, nombre, telefono)Values (1001,Jess,1234567);

Valores nulosnull significa valor no existente o desconocido. Null no significa un valor 0, una cadena vaca.Los campos definidos como clave primaria no aceptan valores nulos. Para que un campo no permita valores nulos es necesario indicarlo al definir el campo, agregando "not null". Ejemplo:CREATE TABLE clientes(id int auto_increment, nombre varchar(20) not null, ap_paterno varchar(30), ap_materno varchar(30), primary key (id) );

DeleteEl comando DELETE elimina los registros de una tabla.

Ejemplo:DELETE FROM clientes

Este ejemplo elimina todos los registros de la tabla clientes.

Para eliminar exclusivamente algunos registros, es necesario indicar cul o cules registro debern eliminarse, utilizando la clausula "where.

Ejemplo: DELETE FROM clientesWHERE nombre=Jess;

UPDATEEl comando UPDATE permite modificar uno o varios datos de uno o varios registros.

Sintaxis:

UPDATE nombre_tabla SET nombre_campo = valor_a_asignar;

Ejemplo:

UPDATE clientes SET ciudad=SLP;

De este modo, la actualizacin afectar a todos los registros existentes en la tabla clientes.

UPDATE

Si se desea actualizar solamente algunos registros especficos, se emplea la clusula WHERE

Ejemplo:

UPDATE clientes SET ciudad=SLPWHERE cp=78000;

Es posible actualizar ms de un campo de manera simultnea:

UPDATE clientes SET ciudad=SLP, cp=78000WHERE id=1004;

Consultas bsicasLa sintaxis bsica de una consulta de seleccin es la siguiente:

SELECT Campos FROM Tabla;

En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos, por ejemplo:

SELECT Nombre, Telefono FROM Clientes;

Esta consulta devuelve un registro con el campo nombre y telfono de la tabla clientes.

Consultas de seleccinLas consultas de seleccin se utilizan para indicar al motor de datos que devuelva informacin de las bases de datos.

La informacin es devuelta en forma de conjunto de registros.

Este conjunto de registros es modificable.

Consultas bsicasClausula DISTINCT

Fuerza que solo se muestren los registros con valores distintos, es decir, suprime las repeticiones.

SELECT [DISTINCT] nombres_de_camposFROM tabla;

Filtros Los filtros son condiciones que el gestor de BD interpreta para seleccionar registros y mostrarlos como resultado de la consulta.

Clusula WHERE

Ejemplo WHERESELECT nombre FROM alumnosWHERE nombre=Luis AND ciudad=SLP

SELECT nombre FROM alumnosWHERE nombre=Luis (AND ciudad=SLP OR ciudad=Qro)

Operador de pertenencia a conjuntos INEste operador permite comprobar si una columna tiene un valor igual que cualquiera de los que estn incluidos dentro del parntesis:

SELECT nombreFROM alumnosWHERE ciudad IN (SLP, Qro, Gto);

Operador de rango BETWEENPermite seleccionar los registros que estn incluidos en un rango.

SELECT nombreFROM alumnosWHERE edad BETWEEN 18 AND 25;

Filtros con Test de valor nuloLos operadores IS e IS NOT permiten verificar si un campo es o no es nulo.

SELECT nombreFROM alumnosWHERE ciudad IS null;

SELECT nombreFROM alumnosWHERE ciudad IS NOT null;

Filtros con test de patrnLos filtros con test de patrn seleccionan solamente aquellos registros que cumplan con una serie de caractersticas.

Se utilizan los comodines % y _

% busca coincidencias de cualquier nmero de caracteres._ busca coincidencias de un carcter.

Filtros con test de patrnSELECT *FROM clientesWHERE Ciudad like %an%;

SELECT *FROM clientesWHERE nombre like A _ _ _ _ _ o;

Filtros con test de patrnSELECT *FROM clientesWHERE nombre like _er%;

Filtros con test de patrnSi necesitamos buscar un patrn en el que aparezcan los caracteres comodines, por ejemplo, queremos ver todos los registros que comiencen con un guin bajo, si utilizamos '_%', mostrar todos los registros porque lo interpreta como "patrn que comienza con un caracter cualquiera y sigue con cualquier cantidad de caracteres".

Es decir, si queremos incluir en una bsqueda de patrones los caracteres comodines, debemos anteponer al caracter comodn, la barra invertida "\", as lo tomar como caracter de bsqueda literal y no como comodn para la bsqueda.

Debemos utilizar "\_%", esto se interpreta como 'patrn que comienza con guin bajo y contina con cualquier cantidad de caracteres".

Para buscar el caracter literal "%" se debe colocar "\%.

Filtros por lmite de nmero de registrosPermite limitar el nmero de registros devuelto en una consulta.

LIMIT [desplazamiento], nfilas

desplazamiento indica a partir de qu fila se empieza a contar.nfilas indica el nmero de filas a devolver.

Filtros por lmite de nmero de registrosEjemplo que devuelve las primeras 4 filas:

SELECT nombre, apellidop, apellidomFROM clientes LIMIT 4;

Ejemplo que devuelve 3 filas a partir de la sexta:

SELECT nombre, apellidop, apellidomFROM clientes LIMIT 5,3;

Mltiples tablasConsiderar las siguientes tablas:

create table libros(codigo int unsigned auto_increment, titulo varchar(40) not null, autor varchar(30) not null default 'Desconocido', codigoeditorial tinyint unsigned not null, precio decimal(5,2) unsigned, cantidad smallint unsigned default 0, primary key (codigo) );

create table editoriales(codigo tinyint unsigned auto_increment, nombre varchar(20) not null, primary key(codigo) );

Mltiples tablasAl consultar los datos de los libros:select * from libros;

En el campo "editorial" aparece el cdigo, pero no sabemos el nombre de la editorial.

Para obtener los datos de cada libro, incluyendo el nombre de la editorial, necesitamos consultar ambas tablas, para traer informacin de las dos tablas.

Cuando obtenemos informacin de ms de una tabla decimos que hacemos un "join" (unin).

Mltiples tablasEjemplo:select * from libros join editoriales on libros.codigoeditorial=editoriales.codigo;

Es necesario indicar el nombre de la tabla luego del "from" ("libros"), unimos esa tabla con "join" y el nombre de la otra tabla ("editoriales"), despus la condicin para enlazarlas con "on.

"on" hace coincidir registros de las dos tablas basndose en el valor de algn campo. Los cdigos de las editoriales de ambas tablas, el campo "codigoeditorial" de "libros" y el campo "codigo" de "editoriales" son los que enlazarn ambas tablas.

Mltiples tablasCuando se combina (join, unin) informacin de varias tablas, es necesario indicar qu registro de una tabla se combinar con qu registro de la otra tabla.

Si no se especifica por cual campo se relacionan las tablas el resultado ser el producto cartesiano de ambas tablas , por ejemplo:

select * from libros join editoriales;

Mltiples tablasEjemplo:

select * from libros join editoriales on libros.codigoeditorial=editoriales.codigo;

Al nombrar el campo usamos el nombre de la tabla tambin. Cuando en las tablas, los campos tienen el mismo nombre, debemos especificar a cul tabla pertenece el campo al hacer referencia a l, para ello se antepone el nombre de la tabla al nombre del campo, separado por un punto (.)

Mltiples tablasPara simplificar la sentencia podemos usar un alias para cada tabla:

select * from libros as l join editoriales as e on l.codigoeditorial=e.codigo;

Cada tabla tiene un alias y se referencian los campos usando el alias correspondiente.