Professional Documents
Culture Documents
MySQL es una base de datos relacional y fue originalmente desarrollado para manejar
grandes bases de datos mucho más rápido que con otras soluciones existentes y ha sido
utilizada con éxito en muchos entornos de producción de alta demanda durante varios años.
A pesar del constante desarrollo, el Servidor MySQL ofrece hoy en día una rica y útil serie
de funciones. Su conectividad, velocidad y seguridad hacen del Servidor MySQL altamente
apropiado para acceder a bases de datos en Intenet.
Ahora vamos a hacer un paso a paso en MySQL desde la Instalación hasta conceptos
Avanzados. En la página siguiente veremos Cómo Instalar MySQL.
Instalación en Windows :
Esta sección contiene la información necesaria para llevar a cabo los pasos.
Empezando con MySQL 4.1.5, los usuarios pueden usar el nuevo asistente de
Instalación MySQL y el Asistente de Configuración MySQL para instalar MySQL en
Windows.
http://dev.mysql.com/downloads/
Baja la última versión (ver 5.0 disponible ahora) de MySQL desde esta página. La
Version 5.0 está disponible en
http://dev.mysql.com/downloads/mysql/5.0.html
Una vez que seleccionas la versión, deberás seleccionar el Paquete que necesites desde
los enlaces disponibles. Si no sabes cual será el que necesitas, selecciona el Windows
Essentials(X86) o Windows (x86) ZIP/Setup.EXE. Después de la instalación, deberías
ser capaz de empezar a usar MySQL escribiendo 'mysql' en la ventana de comandos. Si
algo va mal, puede que hayas hecho algo erróneo durante la instalación y debes intentar
reinstalar.
Si el paquete que has bajado está en un archivo ZIP necesitar extraerlo del archivo
primero. Si hay un archivo setup.exe haz doble clic para empezar el proceso de instalación
así como si hay un archivo .msi haz doble clic. Y el asistente te guiarás hasta el final.
En la siguiente sección podemos ver un vistazo general de las bases de datos y como crear,
usar y eliminarlas. Aquellos que quieran saber acerca de la instalación de MySQL en linux
deberán usar el enlace que aparece a continuación.
Instalación en LINUX :
La forma recomendad de instalar MySQL en Linux es usando los paquetes RPM. Para
obtener los paquetes RPM visita http://dev.mysql.com/downloads/. Puedes elegir tu paquete
según el tipo de Linux(RedHat,SuSE,Ubuntu,..), en cada categoría baja los paquetes del
servidor y del cliente usando los links que aparecen ahí.
Después de bajar el paquete necesario, necesitarás instalar solo los paquetes MySQL-
server y MySQL-client para obtener una instalación funcional del MySQL. Esto se llama
Instalación Estándar.
Para ver todos los archivos de un paquete RPM (por ejemplo, un MySQL-server RPM),
ejecuta una línea de comando como esta:
shell> rpm -qpl MySQL-server-VERSION.i386.rpm
Para efectuar una instalación mínima, instala los RPM del servidor y del cliente:
shell> rpm -i MySQL-server-VERSION.i386.rpm
shell> rpm -i MySQL-client-VERSION.i386.rpm
Para instalar solo los programas cliente, instala sólo el cliente RPM:
shell> rpm -i MySQL-client-VERSION.i386.rpm
El servidorRPM coloca datos bajo el directorio /var/lib/mysql. Después de la instalación,
deberás ser capaz de empezar a usar MySQL escribiendo 'mysql' en la ventana de
comandos. Si algo va mal, puede que hayas hecho algo mal durante la instalación y puedes
intentar reinstalar.
Las cuentas que son listadas en las grandes tablas MySQL inicialmente no tienen claves.
Después de iniciar el servidor, deberás insertar claves para ellas.
En la siguiente sección podemos ver como crear una base de datos y crear tablas para esas
bases de datos. Aquellos que quieran saber acerca de la instalación de MySQL en sistemas
operativos Mac pueden usar el enlace que aparece debajo.
Instalación en MAC :
Vamos a ver como instalar MySQL en Max OS X. A partir de MySQL 4.0.11, puedes
instalar MySQL en Mac OS X 10.2.x ("Jaguar") y superiores usando un paquete binario
Mac OS X en formato PKG. Por favor, ten en cuenta que versiones más viejas de Mac OS
X(por ejemplo, 10.1.x) no son soportadas por este paquete. Según tu versión de OS elige el
paquete (si es 10.3 elige Mac OS X 10.3 (PowerPC, 32-bit)) y puedes bajarlo de
http://dev.mysql.com/downloads/.
Después de bajarlo, para instalar Install MySQL haz doble clic en el icono del paquete.
Esto ejecutará el Paquete de Instalación de Mac OS X. Debido a un bug en el paquete
instalador de Mac OS X puede que veas el siguiente mensaje de error en la selección del
disco de destino:
Si este error ocurre, simplemente haz clic en botón Go Back una vez para volver a la
pantalla anterior. A continuación haz clic en Continuar para seguir a la selección del disco
de destino de nuevo, y ahora deberías poder elegir el disco de destino correctamente.
Si estás ejecutando Mac OS X Server, una versión de MySQL deberá estar ya instalada.
La tabla siguiente muestra las versiones de MySQL que coinciden con las versiones Mac
OS X Server.
Versión Mac OS X Server Versión MySQL
10.2-10.2.2 3.23.51
10.2.3-10.2.6 3.23.53
10.3 4.0.14
10.3.2 4.0.16
10.4.0 4.1.10a
shell> cd /usr/local/mysql
shell> sudo ./bin/mysqld_safe
(Introduce tu clave si es necesario)
(Presiona Control-Z)
shell> bg
(Presiona Control-D o introduce "exit" para salir del intérprete)
Deberías ser capaz de conectar al servidor de MySQL server, por ejemplo, ejecutando
/usr/local/mysql/bin/mysql. Las cuentas están listadas en los grandes listados de MySQL
inicialmente no tienen claves. Después de arrancar el servidor, deberías establecer claves
para ellos.
Base de Datos:
Una base de datos es una colección de datos que están organizados así podemos acceder
a sus contenidos, manejarlos y actualizarlos fácilmente.El programa usado para manejar y
hacer ejemplos de una base de datos es conocido como Sistema de Manejo de Bases de
Datos (DBMS). Aparece el concepto de Sistema de Manejo de Bases de Datos Relacionales
(RDBMS). Una base de datos relacionar es donde los datos son almacenados en más de una
tabla, cada una contiene diferentes tipos de datos. Las diferentes tablas pueden ser
enlazadas, así la información de archivos separados pueden usarse juntos. Esto es explicado
abajo usando un ejemplo.
Ejemplo :
En bases de datos relacionales, una tabla es un conjunto de elementos de datos (celdas)
que están organizadas, definidas y almacenadas usando un modelo de filas horizontales y
columnas verticales. Una tabla tiene un número específico de columnas pero puede tener
cualquier número de files (por ejemplo deberá tener una estructura de datos específica pero
puede tener cualquier número de datos). Aquí cada columna es conocida como campo, cada
fila es llamada registro.
MySQL
La siguiente no será necesario si usted tiene instalado MySQL como un servicio.
Para arrancar mysqld desde la línea de comandos, primero debes abrir una ventana
de consola, por ejemplo Inicio -> Ejecutar, escribir cmd o command para abrir la
ventana de la consola. Despues de abrir la ventana de la consola, introduce la ruta
donde está instalado tu MySQL. Por ejemplo:
La version depende del mysql server que hayas instalado. La ruta puede varias
también dependiendo de la versión de MySQL que hay en tu sistema.
Explicación
Conectando servidor MySQL:
Línea de Comandos :
Puedes conectar MySQL desde la ventana de Consola por ejemplo, Inicio -> Ejecutar, y
escribir cmd o command para abrir la ventana de la línea de comandos.
Después de abrir la ventana de consola, introduce la ruta donde MySQL está instalado. Por
ejemplo:
La ruta puede varias dependiendo de la instalación de MySQL en tu sistema. En lugar del
directorio puede conectar usando tu nombre de usuario.
También puedes conectarte a MySQL usando una herramienta externa como MySQL
Query Browser.
creaCION
CREACIÓN
Antes de empezar a crear una base de datos comprueba si existe alguna base de datos con el
nombre que vas a crear. Revisa esto con la sentencia SHOW:
Este ejemplo listará las bases de datos disponibles. Por favor ten en cuenta que MySQL es
sensible al uso de mayúsculas. Así que puedes dar el ejemplo con diferentes mayúsculas también.
Así que show dataBASES; , SHOW dataBASES; también funcionará.
Una vez que has confirmado que no tienes ninguna base de datos con el nombre que quieres
crear, entonces puedes crear tu propia base de datos con,
Por favor, observa que sólo en Unix el nombre de la base de datos es sensible a las mayúsculas.
El ejemplo de arriba creará una base de datos vacía y no contendrá ninguna tabla.
El uso
Si quieres crear tablas para una base de datos primero tiene que seleccionar la base de
datos. Para seleccionar la base de datos tienes que introducir el siguiente ejemplo:
mysql> USE sample;
Database changed
Aquí sample es la database (base de datos) que tu quieres seleccionar. El comando
USE no necesita un punto y coma al final del ejemplo.
Puedes usar el siguiente comando para ver la actual base de datos a la que estás
conectado:
mysql> select database();
+------------+
| database() |
+------------+
| sample |
+------------+
Entiende las diferencias entre Usar una Base de Datos y Seleccionar una Base de Datos ()
ya que la primera es seleccionar una base de datos y la última mostrar la actualmente
seleccionada. Después de seleccionar la base de datos tu puedes crear tablas y otras
operaciones similares.
Nota : Tienes que seleccionar la base de datos usando la sentencia USE cada vez que entras
en Mysql server o cuando quieres cambiar la base de datos.
Si escribes el ejemplo siguiente podrás ver una información como Empty set (por
ejemplo) no hay tablas en la seleccionada base de datos.
mysql> show tables;
Empty set (0.00 sec)
extraccion
Las bases de datos pueden ser reemplazadas o eliminadas usando la sentencia DROP. El siguiente
ejemplo elimina la base de datos de muestra.
DROP DATABASE suelta todas las tablas de la base de datos y borra la base de datos. Una vez
que el comando DROP es usado, entonces no podemos usar esa base de datos. Así que debemos
ser cuidadosos con esta sentencia.
Tipos de Datos :
Definición : Tipos de Datos es la característica de las columnas y variables que definen que
tipos de valores de datos pueden albergar. La característica indica cuando un dato
representa un número, fecha, un carácter string, etc.
Los tipos de Datos son usados para indicar el tipo de campo que estamos creando en la
tabla. MySQL soporta un número de tipos de datos en tres categorías importantes:
Tipos Numéricos
Tipos de Fecha y Hora
Tipos String(Carácter)
Antes de crear una tabla, identifica si en la columna debe ir un texto, un número o un tipo
de fecha. Cada columna en una tabla está hecha de tipos de datos. El tamaño del valor
deberá ser el valor más pequeño dependiendo del valor más grande.
Los corchetes ('[' y ']') indican partes optionales del tipo de definiciones.
Ahora nos iremos levemente a una visión general de los tipos de datos MySQL.
BOOLEA
BIT TINYINT
N
SMALLIN MEDIUMIN
INT
T T
DOUBLE DECIMAL
BIT :
TINYINT[(M)] :
Un número entero muy pequeño. El rango suscrito va de -128 a 127. El rango no suscrito
va de 0 a 255.
BOOL, BOOLEAN :
Estos tipos son sinónimos de TINYINT(1). Un valor para cero es considerado falso.
Valores que no sean cero son considerados verdad.
SMALLINT :
Un número entero pequeño. El rango suscrito va de -32768 a 32767. El rango no suscrito
va de 0 a 65535.
MEDIUMINT :
INT :
INTEGER :
BIGINT :
FLOAT :
Un número punto flotante pequeño (simple precisión). Los valores van de
3.402823466E+38 a -1.175494351E-38, 0, y 1.175494351E-38 a 3.402823466E+38.
DOUBLE :
Un número punto flotante normal (doble precisión). Los valores van de
1.7976931348623157E+308 a -2.2250738585072014E-308, 0, y 2.2250738585072014E-
308 a 1.7976931348623157E+308.
DECIMAL :
TIMESTAMP YEAR
DATE :
Una Fecha. El rango es 1000-01-01 a 9999-12-31. Los valores de fecha se muestran con
el formato YYYY-MM-DD (Año-Mes-Día).
TIME :
Una Hora. El rango es -838:59:59 a 838:59:59. Los valores de hora se muestran con el
formato HH:MM:SS.
DATETIME :
TIMESTAMP :
Una Marca de Tiempo. El rango es 1970-01-01 00:00:01 UTC hasta parcialmente el año
2037. Una columna TIMESTAMP es útila para grabar la fecha y hora de una operación
INSERT o UPDATE.
YEAR :
Un Año. Los valores de año son mostrados en formato de dos dígitos o de cuatro. El
rango de valores para un dígito de cuatro es 1901 a 2155. Para los dos dígito, el rango es 70
a 69, representando años desde 1970 a 2069.
Para todas la columnas de fecha y hora, podemos asignar también los valores usando
strings o números.
MEDIUMTE
TEXT BLOB
XT
LONGTEX
BINARY VARBINARY
T
ENUM SET
CHAR() :
Es un string de longitud fija que es principalmente usado cuando los datos no van a
variar mucho en su longitud. Toma valores de 0 a 255 de longitud de caracteres. Cuando
almacenamos valores CHAR ellos están rellenos correctamente con espacios de la longitud
específica. Cuando obtenemos valores CHAR, los espacios finales son eliminados.
VARCHAR() :
Es una variable string de longitud y es usada principalmente cuando los datos pueden
variar en longitud. Toma valores de 0 a 255 de longitud de caracteres. Los valores
VARCHAR no son rellenados cuando son más cortos.
TINYTEXT, TINYBLOB :
TEXT :
Las columnas TEXT son tratadas como caracteres string (strings no binarios). Contiene
una longitud máxima de 65535 caracteres.
BLOB :
BLOB es el acrónimo de Binary Large OBject (Objeto Binario Grande). Puede tener un
montón de datos variables. Las columnas BLOB son tratadas como string de bytes (string
binarios). Contiene una longitud máxima de 65535.
MEDIUMTEXT, MEDIUMBLOB :
BINARY :
BINARY es similar al tipo CHAR. Almacena el valor como string de byte binario en
vez de como un caracter string no binario
VARBINARY :
ENUM() :
Una enumeracion. Cada columna puede tener uno de los posibles valores especificados.
Puede almacenar solo uno de los valores que están declarados en la lista específica
contenida en los paréntesis ( ). La lista ENUM tiene un alcance de más de 65535 valores..
SET() :
Un set. Cada columna puede tener más de uno de los posibles valores especificados.
Contiene más de 64 objetos de lista y puede almacenar más de una opción. Los valores
SET son representados internamente como números enteros.
Si CHAR y VARCHAR son usados en la misma tabla, entonces MySQL cambiará
automáticamente CHAR a VARCHAR por razones de compatibilidad. Los paréntesis ( )
permiten introducir un máximo número de caractereces que serán usados en la columna.
Creando tablas:
Una vez que has seleccionado la base de datos, podemos empezar a crear tablas. La sentencia
CREATE es usado para crear una tabla en MySQL con restricciones. Una restricción es una
cohibición para el comportamiento de una variable.
La sintaxis de Create es
Si NULL está especificado, el campo se puede dejar vacío. Si NOT NULL está especificado, el
campo debe tener un valor. En ausencia de NULL o NOT NULL, NULL es asumido.
El ejemplo de la tabla de arriba creará una tabla student con campos ID y Name.
PRIMARY KEY :
PRIMARY KEY es un campo en una tabla que identifica unicamente un registro. Este atributo es
usado para definir el nombre del campo para crear una clave primaria.
Ejemplo :
La PRIMARY KEY está especificada despues de definir los campos en el ejemplo siguiente:
También podemos crear una clave primaria compuesta. Una clave primaria compuesta es
cuando más de un campo es usado para identificar únicamente un registro.
Vamos a crear una tabla para mantener los detalles de student en una clase.
mysql> create table student(studid int(10), name varchar(20), address varchar(40), phone int(10));
Query OK, 0 rows affected (0.05 sec)
Tabla Desc :
Listando Tablas :
Podemos listar todas las tablas en la base de datos usando el ejemplo SHOW TABLES.
El siguiente ejemplo listará las tablas en la actual base de datos.
mysql> show tables;
+--------------------+
| Tables_in_sample |
+--------------------+
| student |
+--------------------+
1 row in set (0.00 sec)
Borrando tablas :
La sentencia DROP es usada para borrar una o más tablas completamente de la base de
datos.
La sintaxis es
DROP TABLE tbl_name
El ejemplo siguiente borrar la tabla student
DROP TABLE este ejemplo suelta todos los campos de una tabla y borra la tabla. Una
vez que se usa la sentencia DROP TABLE, no podemos usar esa tabla. Así que debemos
ser cuidadosos con esta sentencia.
Renombrando tablas :
La sentencia RENAME es usada para renombrar una o más tablas en una base de datos.
La sintaxis es
RENAME TABLE tbl_name TO new_tbl_name
[, tbl_name2 TO new_tbl_name2] ...
El siguiente ejemplo de muestra renombra la tabla de student como tabla class.
Podemos tambien alternar dos nombres de tablas. Vamos a asumir la tabla tmp que no
existe.
Ejemplo :
RENAME TABLE emp1 TO tmp,
emp2 TO emp1,
tmp TO emp2;
Podemos también usar RENAME TABLE para mover la tabla de una base de datos a
otra.
Ejemplo :
ALTER TABLE :
ALTER TABLE es usado para cambiar la estructura de una tabla existente. Podemos
añadir o borrar columnas, cambiar el tipo de las columnas existentes, o renombrar las
columnas o la tabla misma. También podemos cambiar el comentario de la tabla y el tipo
de tabla.
La Sintaxis es
Para hacerlo el modificador ADD COLUMN es utilizado para añadir una columna a una
tabla. El siguiente ejemplo añade un campo llamado marks a la tabla student.
INSERT es usado para insertar nuevas filas o datos en una tabla existente.
La sintaxis de Insert es
El siguiente ejemplo añadirá los valores como studid, nombre, notas, dirección y número de
Teléfono en la tabla student.
mysql> insert into student values(1, "steve", 100, "5th cross street", 2456987);
Query OK, 1 row affected (0.01 sec)
INSERT...SET STATEMENT :
INSERT...SET también es usado para insertar valores usando el nombre de la columna.
La sintaxis es
mysql> insert into student set studid=1, name='steve', marks=100, address='5th cross street',
phone=2456987;
Query OK, 1 row affected (0.03 sec)
INSERT STATEMENT :
INSERT es usado para insertar nuevas filas o datos en una tabla existente.
La sintaxis de Insert es
El siguiente ejemplo añadirá los valores como studid, nombre, notas, dirección y número de
Teléfono en la tabla student.
mysql> insert into student values(1, "steve", 100, "5th cross street", 2456987);
Query OK, 1 row affected (0.01 sec)
INSERT...SET STATEMENT :
INSERT...SET también es usado para insertar valores usando el nombre de la columna.
La sintaxis es
mysql> insert into student set studid=1, name='steve', marks=100, address='5th cross street',
phone=2456987;
Query OK, 1 row affected (0.03 sec)
MUTIPLICACION DE FILAS
Podemos insertar múltiples filas en una tabla usando una sentencia simple INSERT.
La Sintaxix es
Ejemplo :
El atributo auto increment es usado para genera un identificador para las filas
introducidas. Vamos a ver un ejemplo usando auto increment.
SELECT
Contando Filas :
La sintaxis es
Explicación
Después de insertar datos en la tabla, probablemente queramos revisar si los datos están
guardados correctamente. Para hacer, usamos la sentencia SELECT.
La Sintaxis de Select es
LIMIT :
La clásula LIMIT puede ser usada para acotar el número de filas devueltas por la
sentencia SELECT. Toma uno o dos argumentos numéricos, que deben ser números
enteros constantes no negativos.
También podemos devolver valores del principio del resultado especificando el número
de filas en un simple argumento como el siguiente.
mysql> select * from student limit 5;
+--------+---------+-------+------------------+---------+
| studid | name | marks | address | phone |
+--------+---------+-------+------------------+---------+
| 1 | steve | 100 | 5th cross street | 2456987 |
| 2 | david | 98 | welling street | 547896 |
| 3 | michael | 75 | edinburgh | 2598234 |
| 4 | jack | 82 | victoria street | 2436821 |
| 5 | anne | 100 | downing street | 2634821 |
+--------+---------+-------+------------------+---------+
5 rows in set (0.08 sec)
El ejemplo superior devuelve las cinco primeras filas de la tabla student.
Explicación
Podemos seleccionar una columna en particular para ver, obtener las filas enteras. Supón
que quieres ver el nombre del student solo; para ello usamos el ejemplo siguiente.
mysql> select name from student;
+---------+
| name |
+---------+
| steve |
| david |
| michael |
| jack |
| anne |
| steve |
| anne |
| mille |
+---------+
8 rows in set (0.27 sec)
Podemos también seleccionar múltiples columnas, separando con comas como en el
ejemplo siguiente.
mysql> select name, marks from student;
+---------+-------+
| name | marks |
+---------+-------+
| steve | 100 |
| david | 98 |
| michael | 75 |
| jack | 82 |
| anne | 100 |
| steve | 75 |
| anne | 80 |
| mille | 98 |
+---------+-------+
8 rows in set (0.03 sec)
En el ejemplo de arriba, hemos seleccionado name y marks
de la tabla student.
En las muestras precedentes, el ejemplo para las filas seleccionadas son mostradas en orden
no particular. Tambien podemos seleccionar las filas mostrandose en un formato ordenado
usando la cláusula ORDER BY.
El siguiente ejemplo de muestra ordenará las filas en orden ascendente según las marks.
mysql> select name, marks from student order by marks;
+---------+-------+
| name | marks |
+---------+-------+
| michael | 75 |
| steve | 75 |
| anne | 80 |
| jack | 82 |
| david | 98 |
| mille | 98 |
| steve | 100 |
| anne | 100 |
+---------+-------+
8 rows in set (0.03 sec)
También podemos ordenar las filas en orden descendente. En el ejemplo siguiente de
muestra las marks son ordenadas en orden descendente.
mysql> select name, marks from student order by marks desc;
+---------+-------+
| name | marks |
+---------+-------+
| steve | 100 |
| anne | 100 |
| david | 98 |
| mille | 98 |
| jack | 82 |
| anne | 80 |
| michael | 75 |
| steve | 75 |
+---------+-------+
8 rows in set (0.00 sec)
Ahora veremos cómo podemos ordenar múltiples columnas.
odemos seleccionar una fila en particular usando la cláusula sentencia WHERE. También
podemos revisar cualquier condición usando la cláusula o palabra clave WHERE. Donde
la condición viene de la mano cuando estamos usando una tabla grande con muchos y
grandes volúmenes de datos pero puede que queramos ver solo un número pequeño de filas
que satisfagan una condición.
Aquí conditions_to_satisfy especifica una o más condiciones que las filas deben
satisfacer para clasificarse y aparecer.
Veamos un ejemplo de muestra para obtener un dato simple de student usando WHERE.
mysql> select * from student where name = 'jack';
+--------+------+-------+-----------------+---------+
| studid | name | marks | address | phone |
+--------+------+-------+-----------------+---------+
| 4 | jack | 82 | victoria street | 2436821 |
+--------+------+-------+-----------------+---------+
1 row in set (0.00 sec)
Aquí en el ejemplo de muestra de arriba hemos obtenido detalles simples para student.
Supon que si queremos recivier los detalles de 'studen' que hayan aprobados más de 90
notas, podemos usar el ejemplo siguiente.
mysql> select * from student where marks > 90;
+--------+-------+-------+------------------+---------+
| studid | name | marks | address | phone |
+--------+-------+-------+------------------+---------+
| 1 | steve | 100 | 5th cross street | 2456987 |
| 2 | david | 98 | welling street | 547896 |
| 5 | anne | 100 | downing street | 2634821 |
| 8 | mille | 98 | victoria street | 1236547 |
+--------+-------+-------+------------------+---------+
4 rows in set (0.05 sec)
CONSIDENCIA DE PATRONES
Algunas veces podemos necesitar ver la tabla con un carácter comparable. En MySQL
usamos LIKE o NOT LIKE para la comparación. EIn MySQL los patrones son sensibles a
las mayúsculas por defecto.
Let us consider an example query to display the student names starting with the letter M.
El ejemplo de muestra siguiente listará los nombres que acaben por la letra e.
mysql> select * from student where name like '%e';
+--------+-------+-------+------------------+---------+
| studid | name | marks | address | phone |
+--------+-------+-------+------------------+---------+
| 1 | steve | 100 | 5th cross street | 2456987 |
| 5 | anne | 100 | downing street | 2634821 |
| 6 | steve | 75 | downing street | 2874698 |
| 7 | anne | 80 | edinburgh | 2569843 |
| 8 | mille | 98 | victoria street | 1236547 |
+--------+-------+-------+------------------+---------+
5 rows in set (0.00 sec)
También podemos listar los nombres que contienen una letra específica en cualquier
lugar. El siguiente ejemplo de muestra listará los nombres que contienen la letra "a".
mysql> select * from student where name like '%a%';
+--------+---------+-------+-----------------+---------+
| studid | name | marks | address | phone |
+--------+---------+-------+-----------------+---------+
| 2 | david | 98 | welling street | 547896 |
| 3 | michael | 75 | edinburgh | 2598234 |
| 4 | jack | 82 | victoria street | 2436821 |
| 5 | anne | 100 | downing street | 2634821 |
| 7 | anne | 80 | edinburgh | 2569843 |
+--------+---------+-------+-----------------+---------+
5 rows in set (0.00 sec)
Supón que si queremos encontrar nombres que contienen exactamente cinco caracteres,
usaremos una carater especial "_" (guión bajo). El siguiente ejemplo de muestra listará
todos los nombres de cinco letras de la tabla student.
mysql> select * from student where name like '_____';
+--------+-------+-------+------------------+---------+
| studid | name | marks | address | phone |
+--------+-------+-------+------------------+---------+
| 1 | steve | 100 | 5th cross street | 2456987 |
| 2 | david | 98 | welling street | 547896 |
| 6 | steve | 75 | downing street | 2874698 |
| 8 | mille | 98 | victoria street | 1236547 |
+--------+-------+-------+------------------+---------+
4 rows in set (0.00 sec)
Group By :
La cláusula Group by clause es usada para mostrar las filas y columnas agrupadas por
columnas selectivas. Puede usarse para ver las funciones agregadas, como count().
El siguiente ejemplo de muestra listará el nombre del student y también contará los
nombres repetidos usando Group By en la sentencia select.
Sentencia UPDATE :
El ejemplo UPDATE es usado para cambiar o modificar los valores de la tabla
existentes.
La sintaxis Update es
Supón que si queremos establecer la address de un solo student a una nueva address
entonces podemos coger la opción siguiente.
mysql> update student set address='welling street' where name='jack';
Query OK, 1 row affected (0.03 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Si queremos cambiar una mark de student también podemos usar lo siguiente.
mysql> update student set marks=100 where name='david';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Esto también se puede escribir como sigue.
mysql> update student set marks=marks+2 where name='david';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
En la sentencia UPDATE podemos usar también operacións aritméticas.
Sentencia DELETE :
El ejemplo de borrado es usado para borrar los valores de una tabla.
La sintaxis es
También podemos borrar todos los valores en la tabla como el ejemplo siguiente.
mysql> delete from student;
Query OK, 8 rows affected (0.00 sec)
El ejemplo de arriba borrará todas las grabaciones de la tabla de estudiantes.
PROCEDENCIA DE OPERADOR
Precedencia de Operador :
Los operadores son usado para operar con dos operandos. Una amplia colección de
Operadores están disponibles en MySQL. Los operadores precedentes son mostrados en
esta tabla.
Preced. Mayor :=
1 ||, OR, XOR
2 &&, AND
3 BETWEEN, CASE, WHEN, THEN, ELSE
4 =, <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
5 |
6 &
7 <<, >>
8 -, +
9 *, /, DIV, %, MOD
10 ^
11 - (unary minus), ~ (unary bit inversion)
12 !, NOT
Menor BINARY, COLLATE
Si una sentencia contiene paréntesis, entonces las operaciones dentro del paréntesis van
primero. Estos operadores serán explicados en las siguientes secciones. sections.
Explicación
Tipo de Conversión :
Tipo de conversión tiene lugar cuando los operadores son usados con diferentes tipos de
operandos en una expresión. Algunas conversiones son hechas implícitamente y algunas
necesitan conversiones explícitas.
En MySQL los números son convertidos a strings y algunas veces los strings en números
dependiendo de la condición.
Operador Lógico :
Operado AND(&&)
Operador OR(||)
Operador NOT(!)
Operador AND(&&) :
El operador lógico AND(&&) indica si ambos operandos son verdad. Vamos a ver una
sentencia usando el operador AND.
mysql> select studid, name from student where marks > 80
and marks < 100;
(or)
mysql> select studid, name from student where marks > 80
&& marks < 100;
+--------+-------+
| studid | name |
+--------+-------+
| 4 | jack |
| 8 | mille |
+--------+-------+
2 rows in set (0.00 sec)
En el ejemplo de arriba se listará el studid y name del student que ha asegurado más de
80 y menos de 100.
Operador OR(||) :
El operador lógico (||) indica si cada operando es verdad. Vamos a ver una sentencia
usando el operador OR.
mysql> select name, marks, address from student where
name like 'a%' or name like 's%';
(or)
mysql> select name, marks, address from student where
name like 'a%' || name like 's%';
+-------+-------+------------------+
| name | marks | address |
+-------+-------+------------------+
| steve | 100 | 5th cross street |
| anne | 100 | downing street |
| steve | 75 | downing street |
| anne | 80 | edinburgh |
+-------+-------+------------------+
4 rows in set (0.00 sec)
En la sentencia de arriba se listará name, marks y address de student donde el name
empieza con las letras A y S.
Operador NOT(!) :
El operador lógico NOT(!) sólo tiene un operando y devuelve el valor inverso.
mysql> select * from student where not (studid=1);
(or)
mysql> select * from student where ! (studid=1);
+--------+-------+-------+-----------------+---------+
| studid | name | marks | address | phone |
+--------+-------+-------+-----------------+---------+
| 2 | david | 100 | welling street | 547896 |
| 4 | jack | 82 | welling street | 2436821 |
| 5 | anne | 100 | downing street | 2634821 |
| 6 | steve | 75 | downing street | 2874698 |
| 7 | anne | 80 | edinburgh | 2569843 |
| 8 | mille | 98 | victoria street | 1236547 |
+--------+-------+-------+-----------------+---------+
6 rows in set (0.00 sec)
Listará todos los detalles de student excepto el studid 1.
Operador de Comparación:
BETWEEN GREATEST
= : Igual.
mysql> select 1 = 0;
--> 0
GREATEST(value1,value2,...) :
Este operador devuelve el argumento mayor, comparado con dos o más argumentos.
mysql> select greatest('N', 'M', 'O');
--> O
Funciones Numéricas :
Funciones Matemáticas
Arithmetic Operations :
En MySQL, tenemos las operaciones Aritméticas usuales. Veamos los operadores
aritméticos uno a uno con un ejemplo.
Addition (+) :
mysql> select 5+5;
--> 10
Subtraction (-) :
mysql> select 25-18;
--> 7
Multiplication (*) :
mysql> select 4*4;
--> 16
Division (/) :
mysql> select 5/3;
--> 1.67
Ahora vamos a las funciones Matemáticas.
Función String :
Las funciones son sets predefinidos de instrucciones que devuelven un valor. Las
funciones referentes a strings son llamados funciones String. Hay diferentes tipos de
funciones disponibles en MySQL.
CONC FOR
CHAR_L CON
AT_W MA
ENGTH CAT
S T
REV
REPLAC SUBST
ERS
E RING
E
CHAR_LENGTH(str) or CHARACTER_LENGTH(str) :
Formatea el nº dado y redondea a los dígitos dados despues del punto decimal.
mysql> SELECT FORMAT(12332.123456, 4);
--> '12,332.1235'
LCASE(str) or LOWER() :
De la manera que UPPER o UCASE devuelve la mayúscula del string dado.
LENGTH(str) :
Devuelve la longitud del string dado en bytes. Si hay un caracter de 2 byte la longitud es
calculada como 2. Donde CHAR_LENGTH calcula solo la longitud del caracter.
mysql> select length('HIOXINDIA');
--> 9
LOCATE(substr,str) or POSITION(substr IN Str) :
La función devuelve un substring del string 'str' empezando en la posición 'pos'.
mysql> select substring('EASYCALCULATION', 5);
--> 'CALCULATION'
Esta función es usada para manipular el formato de muestra de una fecha y una hora.
Vamos a ver algunas funciones básicas para fecha y hora.
CUR
CURTI DATE DATE
DAT
ME DIFF _ADD
E
MONT
HO MINUT MONT
HNAM
UR E H
E
NO
W
CURDATE() :
DAYNAME(fecha) :
Devuelve la fecha para el día del mes en el rango de 1 a 31. DAY () es un sinónimo para
DAYOFMONTH().
mysql> select dayofmonth('2007-01-04');
--> 4
DAYOFWEEK(fecha) :
Devuelve el día de la semana en formato numérico como 1 para Domingo hasta 7 para
Sábado.
mysql> select dayofweek('2007-01-04');
--> 5
DAYOFYEAR(fecha) :
Devuelve el día del año para la fecha dada en formato numérico, en rago de 1 a 366.
mysql> select dayofyear('2007-07-09');
--> 190
HOUR(hora) :
PAGINA : http://www.es.hscripts.com/tutoriales/mysql/fecha-hora-functiones.php