Tutorialde mysql

51
Tutorialde mysql MySQL es el mayor sistema gestionador de bases de datos de codigo abierto SQL, es desarrollado, distribuido y mantenido por MySQL AB. MySQL AB es una compañía comercial, fundada por desarrolladores de MySQL. 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. 1) Introducción 2) Windows Instalar 3) Linux Instalar 4) MAC OS Instalar 5) Base de datos Descripción 6) Arrancar MySQL 7) Conexión MySQL 8) Creación de Base de Datos 9) Uso Base de datos 10) Extracción de la base de datos 11) Tipo datos 12) Numérico de datos 13) Fecha de datos 14) Cadena de datos 15) Creando Tablas 16) Listando Tablas 17) Borrando Tablas 18) Renombrarando Tablas 19) Modificar los cuadros 20) Alterar - ADD COLUMN 21) Alterar - DROP COLUMN 22) Alterar - MODIFY COLUMN 23) Insertar - Añadir fila 24) Insertar - Múltiples Filas 25) Auto Incremento 26) Contar Filas 27) Selección de Todos los Datos 28) Uso de Límite 29) Selección de Columnas 30) Ordenar Filas 31) Clasificación de múltiples filas 32) Where Cláusula 33) Coincidencia de patrones 34) Group By Cláusula 35) Update Declaración 36) Delete Declaración

Transcript of Tutorialde mysql

Page 1: Tutorialde mysql

Tutorialde mysql

  MySQL es el mayor sistema gestionador de bases de datos de codigo abierto SQL, es desarrollado, distribuido y mantenido por MySQL AB. MySQL AB es una compañía comercial, fundada por desarrolladores de MySQL.

    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.

1) Introducción 2) Windows Instalar3) Linux Instalar 4) MAC OS Instalar5) Base de datos Descripción 6) Arrancar MySQL7) Conexión MySQL 8) Creación de Base de Datos9) Uso Base de datos 10) Extracción de la base de datos11) Tipo datos 12) Numérico de datos13) Fecha de datos 14) Cadena de datos15) Creando Tablas 16) Listando Tablas17) Borrando Tablas 18) Renombrarando Tablas19) Modificar los cuadros 20) Alterar - ADD COLUMN21) Alterar - DROP COLUMN 22) Alterar - MODIFY COLUMN23) Insertar - Añadir fila 24) Insertar - Múltiples Filas25) Auto Incremento 26) Contar Filas27) Selección de Todos los Datos 28) Uso de Límite29) Selección de Columnas 30) Ordenar Filas31) Clasificación de múltiples filas 32) Where Cláusula33) Coincidencia de patrones 34) Group By Cláusula35) Update Declaración 36) Delete Declaración37) Precedencias de los operadores 38) Tipo de conversión39) Operador lógico 40) Operador de comparación41) Operaciones Aritméticas 42) Funciones numéricas43) Cadena Funciones 44) Funciones de fecha y hora

Instalación en Windows :

    Esta sección contiene la información necesaria para llevar a cabo los pasos.

Page 2: Tutorialde mysql

    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.

    El MySQL server instala paquetes que pueden ser bajados de

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 :

     Podemos instalar MySQL en Linux siguiendo algunos simples pasos.

    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.rpmshell> rpm -i MySQL-client-VERSION.i386.rpm

Page 3: Tutorialde mysql

    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:

You cannot install this software on this disk(null).

    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.

     MySQL se instala por si mismo en /usr/local/mysql-VERSION y también instala un enlace simbólico, /usr/local/mysql, que apunta a la nueva ubicación.

    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.

Page 4: Tutorialde mysql

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

    Después de la instalación, puedes arrancar MySQL ejecutando los siguientes comandos en la ventana terminal. Debes tener privilegios de administrador para ejecutar esta tarea.

    Si has instalado el Startup Item, usa este comando:

shell> sudo /Library/StartupItems/MySQLCOM/MySQLCOM start(Introduce tu clave si es necesario)

(Presiona Control-D o escribe "exit" para salir del intérprete)

    Si no usas el Startup Item, introduce la siguiente secuencia de comandos:

shell> cd /usr/local/mysqlshell> 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.

En la siguiente sección daremos un vistazo general a las bases de datos.

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

Page 5: Tutorialde mysql

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 :

    Consideramos la información personal de un estudiante (Student) y sus notas en el colegio. Supongamos que la información del estudiante y los resultados de los exámenes están almacenados separadamente, podemos obtener información personal acerca del estudiante como Dirección del primer archivo. Y también la nota del estudiante en un examen puede obtenerse de otro archivo.     Pero consideremos una situación donde queremos obtener la dirección del estudiante así como sus notas. Esto se vuelve complicado cuando tenemos una gran cantidad de datos. Si tenemos una studentID almacenada en dos archivos entonces facilmente podemos relacionar los detalles y recopilarlos.

    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

    MySQL es uno de los populares Sistemas de Bases de Datos Relacionales. Ahora veamos un ejemplo de una simple base de datos consistente en una tabla. Considera el mismo ejemplo que tomamos antes, una base de datos de estudiante (student). La tabla tendrá diferentes campos como StudID, Nombre, Notas, Dirección, Teléfono. Estos cinco campos constituyen una tabla llamada "student" .StudID, Nombre son campos y la fila particular es un registro.

 La siguiente no será necesario si usted tiene instalado MySQL como un servicio.

Arrancar MySQL uso línea de comandos:

    Veamos como arrancar MySQL desde la ventana de línea de comandos manualmente.

    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:

C:\> "C:Program Files\MySQL\MySQL Server 4.1\bin"

Page 6: Tutorialde mysql

    Después de poner la ruta, arranca MySQL como se muestra:

C:\Program Files\MySQL\MySQL Server 4.1\bin> mysqld

    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.

    Puedes parar el MySQL server usando la linea siguiente:

C:\> "C:\Program Files\MySQL\MySQL Server 4.1\bin\mysqladmin" -u root shutdown

    El comando de arriba ayudará a arrancar y parar el MySQL server.

       MySQL es el más popular de código abierto del sistema de gestión de bases de datos relacionales (RDBMS). Ser un código abierto cualquiera puede utilizar y modificar el software a sus necesidades. Esperamos que disfrute de este tutorial. Damos la bienvenida a su valiosa retroalimentación o sugerencias sobre este tutorial de MySQL. Se trata de un derecho de autor de contenido.

Explicación Conectando servidor MySQL:

    Existen tres formas de conectar un servidor MySQL. Éstas son:

Page 7: Tutorialde mysql

Línea de Comandos Lína Cliente de Comandos MySQL Herramientas Externas 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:

C:\> "C:Program Files\MySQL\MySQL Server 4.1\bin"

    Después de introducir la ruta, introduce el siguiente comando para conectar con el servidor MySQL:

C:\Program Files\MySQL\MySQL Server 4.1\bin> mysql.exe -u root

    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.

Línea Cliente de Comandos MySQL:

    Para conectar a un servidor MySQL usando la línea cliente de comandos, dirígete a Inicio -> Programas -> MySQL -> MySQL Server 4.1 -> MySQL Command Line Client.

La ventana de comandos cliente se abrirá e introduce la clave para comenzar tus ejemplos/solicitudes.

Herramientas Externas MySQL:

    También puedes conectarte a MySQL usando una herramienta externa como MySQL Query Browser.

creaCION

CREACIÓN

Page 8: Tutorialde mysql

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:

mysql> show databases;

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,

mysql> create database sample;

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.

Page 9: Tutorialde mysql

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.

mysql> drop database sample;Query OK, 1 row affected (0.05 sec)

Este ejemplo borrará la muestra de base de datos. El ejemplo eliminará permanentemente la base de datos.

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.

    Por ejemplo, si el número de estudiantes de un colegio está en cientos, establece la columna con una cifra de tres dígitos SMALLINT(permitiendo hasta 999 valores).

Page 10: Tutorialde mysql

    Debemos ser conscientes de que si insertamos un string de cinco caracteres en un campo de (3) caracteres, los dos caracteres finales serán truncados. Es mejor establecer una

longitud para texto y número de columnas así como otros atributos como UNSIGNED.

    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.

Tipod de Datos Numéricos :

    Los tipos de datos numéricos son como sigue:

BIT TINYINT BOOLEA N

SMALLINT MEDIUMIN T

INT

INTEGER BIGINT FLOAT

DOUBLE DECIMAL

    Vamos a ver los tipos de datos numéricos de manera abreviada.

BIT :

    BIT es un sinónimo de TINYINT(1).

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 :

Page 11: Tutorialde mysql

    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 :

    Un número entero de tamaño medio. El rango suscrito va de -8388608 a 8388607. El rango no suscrito va de 0 a 16777215.

INT :

    Un número entero de tamaño normal. El rango suscrito va de -2147483648 to 2147483647. El rango no suscrito va de 0 a 4294967295.

INTEGER :

    Este tipo es sinónimo de INT.

BIGINT :

     Un número entero grande. El rango suscrito va de -9223372036854775808 a 9223372036854775807. El rango no suscrito va de 0 a 18446744073709551615.

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 :

    El número máximo de dígitos (M) para DECIMAL es 64.

Page 12: Tutorialde mysql

Tipos de Datos Fecha y Hora :

DATE TIME DATETIME

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 :

    Una combinación de Fecha y Hora. El rango es 1000-01-01 00:00:00 a 9999-12-31 23:59:59. Los valores fecha hora son mostrados en formato YYYY-MM-DD HH:MM:SS.

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.

String tipos de datos :

Page 13: Tutorialde mysql

CHAR VARCHA R

TINYTEXT

TEXT BLOB MEDIUMTEX T

LONGTEX T

BINARY VARBINARY

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 :

    Un string con una longitud máxima de 255 caracteres.

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 :

    Tiene una longitud máxima de 16777215 caracteres.

Page 14: Tutorialde mysql

LONGTEXT, LONGBLOB :

    Tiene una longitud máxima de 4294967295 caracteres.

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 :

     VARBINARY es similar al tipo VARCHAR. Almacena el valor como un string de bytes binario en vez de como un caracter string no binario.

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.

Page 15: Tutorialde mysql

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

CREATE TABLE tableName( fieldName1 dataType(size) [NULL | NOT NULL] fieldName2 dataType(size) [NULL | NOT NULL]);

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 siguiente te ayudará a crear una tabla:

CREATE TABLE student( studID INT(5), name VARCHAR(30),);

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 :

fieldName INT UNSIGNED AUTO_INCREMENT PRIMARY KEY

La PRIMARY KEY está especificada despues de definir los campos en el ejemplo siguiente:

CREATE TABLE student( studID INT UNSIGNED AUTO_INCREMENT, name VARCHAR(30),

Page 16: Tutorialde mysql

PRIMARY KEY(studID));

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 :

    Podemos examinar la estructura de una tabla usando la sentencia DESCRIPTION o DESC. El ejemplo siguiente describe ula estructura de la tabla student.mysql> desc student;+---------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+---------+-------------+------+-----+---------+-------+| studid | int(10) | YES | | NULL | || name | varchar(20) | YES | | NULL | || address | varchar(40) | YES | | NULL | || phone | int(10) | YES | | NULL | |+---------+-------------+------+-----+---------+-------+4 rows in set (0.00 sec)

    También podemos usar la sentencia SHOW FIELDS FROM para mostrar la misma estructura.

mysql> SHOW FIELDS FROM student;

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)

Page 17: Tutorialde mysql

Borrando tablas :

    La sentencia DROP es usada para borrar una o más tablas completamente de la base de datos.

La sintaxis esDROP TABLE tbl_name

    El ejemplo siguiente borrar la tabla student

mysql> drop table student;Query OK, 0 rows affected (0.00 sec)

    Este ejemplo eliminará o 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.

mysql> rename table student to class;Query OK, 0 rows affected (0.00 sec)

    Ahora podemos ver la tabla si el nombre es cambiado con el ejemplo siguiente.

mysql> show tables;+--------------------+| Tables_in_sample |+--------------------+| class |+--------------------+1 row in set (0.00 sec)

    Si el ejemplo renombra más de una tabla, las operaciones de renombrar van de izquierda a derecha.

    Podemos tambien alternar dos nombres de tablas. Vamos a asumir la tabla tmp que no existe.

Page 18: Tutorialde mysql

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 :

RENAME TABLE current_db.tbl_name TO other_db.tbl_name;

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

ALTER TABLE tbl_name alter_specification [, alter_specification] ...

    La siguiente tabla describe la especificacion Alter

Especificación Alter Descripción

Rename Renombra el nombre de una Tabla

Add Añade una columna nueva, clave, índice

Add First Añade una columna First

Add After Añade una columna After

Drop Suelta una columna, Índice, clave

Change Cambia el nombre de una columna

Change Type Cambia el tipo de columna

Modify Modifica el tipo de columna

Page 19: Tutorialde mysql

Renombrando una Tabla :

    Podemos RENOMBRAR la tabla usando ALTER TABLE. El siguiente ejemplo renombra la tabla student a class.

mysql> ALTER TABLE student RENAME class;

    El ejemplo de arriba cambiará el nombre de la tabla.

Añadiendo una columna a una tabla:

    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.

mysql> ALTER TABLE student ADD COLUMN marks INT(10);Query OK, 0 rows affected (0.05 sec)Records: 0 Duplicates: 0 Warnings: 0

mysql> desc student;+---------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+---------+-------------+------+-----+---------+-------+| studid | int(10) | YES | | NULL | || name | varchar(20) | YES | | NULL | || address | varchar(40) | YES | | NULL | || phone | int(10) | YES | | NULL | || marks | int(10) | YES | | NULL | |+---------+-------------+------+-----+---------+-------+5 rows in set (0.00 sec)

    A continuación veremos las alteraciones al mostrar las tablas.

Page 20: Tutorialde mysql

INSERT STATEMENT :

INSERT es usado para insertar nuevas filas o datos en una tabla existente. La sintaxis de Insert es

INSERT INTO tbl_name VALUES[(col_name,...)];

Si el tipo de datos no es mencionado considerará valores NULL.

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

INSERT INTO tbl_name SET col_name = expr,.....;

Vamos a tomar los mismos valores insertando en la tabla student.

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

INSERT INTO tbl_name VALUES[(col_name,...)];

Si el tipo de datos no es mencionado considerará valores NULL.

El siguiente ejemplo añadirá los valores como studid, nombre, notas, dirección y número de Teléfono en la tabla student.

Page 21: Tutorialde mysql

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

INSERT INTO tbl_name SET col_name = expr,.....;

Vamos a tomar los mismos valores insertando en la tabla student.

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

INSERT STATEMENT FOR MULTIPLE ROWS :

    Podemos insertar múltiples filas en una tabla usando una sentencia simple INSERT.

La Sintaxix es

INSERT INTO tbl_name(col_name1, col_name2,...) VALUES(expr1, expr2,.....;), (expr1a, expr2a,.....;)

Ejemplo :

mysql> insert into student(studid,name,marks,address,phone) values(3,'michael',75,'edinburgh',2598234),(4,'jack',82,'victoria street',2436821),(5,'anne',100,'downing street',2634821);Query OK, 3 rows affected (0.00 sec)Records: 3 Duplicates: 0 Warnings: 0

    El ejemplo de arriba insertará tres detalles para students en la tabla student. Este ejemplo será útil mientras se inserta una gran cantidad de datos en una tabla específica.

Page 22: Tutorialde mysql

Auto Increment :

    El atributo auto increment es usado para genera un identificador para las filas introducidas. Vamos a ver un ejemplo usando auto increment.

mysql> create table stud(id bigint not null unique auto_increment,name char(20));Query OK, 0 rows affected (0.03 sec)

    En el ejemplo de arriba, hemos creado una tabla stud y hemos asignado autoincrement al campo llamado id. Ahora podemos insertar valores para el campo solo como en el ejemplo siguiente. mysql> insert into stud(name) values ('anne'),('michael'),('james'),('rajesh'),('harry');Query OK, 5 rows affected (0.05 sec)Records: 5 Duplicates: 0 Warnings: 0

    Ahora si seleccionamos la tabla, el campo nombrado id se incrementará automáticamente como se muestra a continuación. mysql> select * from stud;+----+---------+| id | name |+----+---------+| 1 | anne || 2 | michael || 3 | james || 4 | rajesh || 5 | harry |+----+---------+5 rows in set (0.00 sec)

SELECT

Contando Filas :

    COUNT(*) cuenta el número de filas de una tabla.

La sintaxis es

SELECT COUNT(*) from tbl_name;

Page 23: Tutorialde mysql

Ejemplo : mysql> select count(*) from student;+----------+| count(*) |+----------+| 5 |+----------+1 row in set (0.00 sec)

    El ejemplo superior listará el número de filas en la tabla student.

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

SELECT what_to_select from tbl_name;

    Para ver todos los datos de la tabla, usamos el ejemplo siguiente.

mysql> select * from student;+--------+---------+-------+------------------+---------+| 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 || 6 | steve | 75 | downing street | 2874698 || 7 | anne | 80 | edinburgh | 2569843 || 8 | mille | 98 | victoria street | 1236547 |+--------+---------+-------+------------------+---------+8 rows in set (0.00 sec)

    El ejemplo de arriba listará los detalles completos de la tabla student. Aqui * seleccionará todas las columnas de la tabla.

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.

    Veamos un ejemplo de muestra para la sentencia SELECT LIMIT.

mysql> select * from student limit 2,5;+--------+---------+-------+-----------------+---------+| studid | name | marks | address | phone |+--------+---------+-------+-----------------+---------+

Page 24: Tutorialde mysql

| 3 | michael | 75 | edinburgh | 2598234 || 4 | jack | 82 | victoria street | 2436821 || 5 | anne | 100 | downing street | 2634821 || 6 | steve | 75 | downing street | 2874698 || 7 | anne | 80 | edinburgh | 2569843 |+--------+---------+-------+-----------------+---------+5 rows in set (0.00 sec)

    Aquí el primer argumento del ejemplo especifica el ajuste de la primera fila a devolver, y el segundo especifica el máximo número de filas a devolver. Por tanto devuelve las filas de la 3 a la 7 de la tabla student.

    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 |

Page 25: Tutorialde mysql

| 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.

Page 26: Tutorialde mysql

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.

La sintaxis de select where eis

SELECT what_to_select FROM tbl_name WHERE conditions_to_satisfy;

    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.

mysql> select * from student where name like 'm%';+--------+---------+-------+-----------------+---------+| studid | name | marks | address | phone |

Page 27: Tutorialde mysql

+--------+---------+-------+-----------------+---------+| 3 | michael | 75 | edinburgh | 2598234 || 8 | mille | 98 | victoria street | 1236547 |+--------+---------+-------+-----------------+---------+2 rows in set (0.01 sec)

    En el ejemplo de muestra de arriba listará todos los nombres que empiecen por M de la tabla student.

    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)

Page 28: Tutorialde mysql

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.

mysql> select name, count(name) from student group by name;+-------+-------------+| name | count(name) |+-------+-------------+| anne | 2 || david | 1 || jack | 1 || mille | 1 || steve | 2 |+-------+-------------+5 rows in set (0.03 sec)

    El ejemplo siguiente mostrará el nombre y la suma d elas notas del student usando la cláusula groupby. mysql> select name,sum(marks),count(*) from students group by name;+----------+------------+----------+| name | sum(marks) | count(*) |+----------+------------+----------+| anne | 175 | 2 || maichael | 82 | 1 || mike | 182 | 2 || rock | 100 | 1 || steve | 175 | 2 |+----------+------------+----------+5 rows in set (0.00 sec)

Sentencia UPDATE :

    El ejemplo UPDATE es usado para cambiar o modificar los valores de la tabla existentes.

La sintaxis Update es

UPDATE tbl_name SET

Page 29: Tutorialde mysql

col_name1=expr1 [, col_name2=expr2 ...][WHERE where_condition];

    El ejemplo UPDATE actualiza las columnas de las filas existentes en una tabla con los nuevos valores. La cláusula SET es usada para indicar qué columnas serán modificadas. La cláusula WHERE es usada para especificar las condiciones que identificarán las filas a actualizar.

    El siguiente ejemplo establecerá la address de student a una nueva address.

mysql> update student set address='welling street' whereaddress='victoria street';Query OK, 1 row affected (0.03 sec)Rows matched: 1 Changed: 1 Warnings: 0

    Pero esto establecerá todas las address de students que alguna vez vivieron en vitoria street cambiarán a welling street.

    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

DELETE FROM tbl_name[WHERE where_condition];

    La sentencia DELETE borrar las filas de la tabla tbl_name y devuelve el número de filas borradas. La cláusula WHERE es usada para especificar las condiciones que identifican qué filas serán borradas. Si la sentencia DELETE está sin la cláusula WHERE, todas las filas serán borradas.

Page 30: Tutorialde mysql

    Ahora veamos un ejemplo para la sentencia DELETE.

mysql> delete from student where name='michael';Query OK, 1 row affected (0.00 sec)

    El ejemplo de arriba borrará la grabación para el "student" Michael de la tabla.

    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

Page 31: Tutorialde mysql

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.

    Consideremos un ejemplo parar convertir un string en un entero.

mysql> Select 1+'11'; --> 12

    Aquí el string '11' es convertido a número y el resultado de la expresión es también un número.

    Veamos otro ejemplo para convertir un entero en un string. mysql> select concat(1, ' HIOX'); --> '1 HIOX'

    No podemos convertir fundir un número en un string explicitamente. Aquí usamos la función CAST() o CONCAT().

mysql> select 12, cast(12 as char); --> 12, '12'mysql> select 12, concat(12); --> 12, '12'

Operador Lógico :

    MySQL soporta las siguientes operaciones lógicas :

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;

Page 32: Tutorialde mysql

(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.

Page 33: Tutorialde mysql

Operador de Comparación:

    El operador de comparación es usado para comparar expresiones o valores. El resultado de comparación será o Verdadero (1) o Falso (0). MySQL admite los siguientes operadores de comparación:

EQUAL(=) LESS THAN(<)

LESS THAN OR EQUAL(<=) GREATER THAN(>)

GREATER THAN OR EQUAL(>=) NOT EQUAL(<>,!=)

BETWEEN GREATEST

= :     Igual.

mysql> select 1 = 0; --> 0

mysql> select 0.0 = 0; --> 1

< :     Menos que. mysql> select 4.5 < 5; --> 1

mysql> select 1.1 < 1; --> 0

<= :     Menor que o igual. mysql> select 2.2 <= 2.2; --> 1

mysql> select 2.2 <= 2.1; --> 0

> :     Greater than. mysql> select 7 > 2; --> 1

mysql> select 4 > 4.1; --> 0

>= :     Mayor que o igual. mysql> select 10 >= 10; --> 1

mysql> select 4.4 >= 4.5; --> 0

<>, != :     Diferente. mysql> select 8 <> 8;

Page 34: Tutorialde mysql

--> 0

mysql> select 7 != 7.7; --> 1

expr BETWEEN min AND max :    Si expr es mayor que o igual a min y expr es menor que o igual a max, BETWEEN devuelve 1, de otra forma devuelve 0. mysql> select 5 between 5 and 6; --> 1

mysql> select 'N' between 'M' and 'O'; --> 1

    Es igual para expr NOT BETWEEN min AND max, pero con Not.

GREATEST(value1,value2,...) :    Este operador devuelve el argumento mayor, comparado con dos o más argumentos. mysql> select greatest('N', 'M', 'O'); --> O

mysql> select greatest(1, 2); --> 2

    La misma regla se aplica buscando el LEAST().

Funciones Numéricas :

    Una función numérica consiste en dos secciones principales. Est Operaciones Aritméticas

Funciones Matemáticas

    Vamos a hablar acerca de las operaciones Aritmé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;

Page 35: Tutorialde mysql

--> 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.

Las funciones string importantes son,

CHAR_L ENGTH

CON CAT

CONC AT_WS

FOR MAT

LCASE LEN GTH

LOCAT E

REP EAT

REPLAC E

REV ERSE

SUBST RING

CHAR_LENGTH(str) or CHARACTER_LENGTH(str) :

    Esta función string devuelve la longitud del string.

mysql> select char_length("hioxindia"); --> 9

mysql> select character_length("easycalculation"); --> 15

CONCAT(str1,str2,...) :

    Devuelve el string concatenado de los argumentos dados. mysql> select concat('hiox','india');

Page 36: Tutorialde mysql

--> 'hioxindia'

CONCAT_WS() :

    Acrónimo de Concatenate With Separator (Concatenado Con Separador) y es una forma especial de función CONCAT. Devuelve el string concatenado de los argumentos dados separado por un separador dado. mysql> SELECT CONCAT_WS('!','One','Two','Three'); --> 'One!Two!Three'( Here '!' is the seperator)

FORMAT() :

    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() :

    Devuelve la minúscula del string dado. mysql> select lcase('HIOX'); --> 'hiox'

mysql> select lower('EASYCALCULATION'); --> easycalculation

    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) :

    Devuelve la posición de la primera aparición del substring en el string. mysql> select locate('ind','hioxindia'); --> 5

mysql> select position('cul' in 'easycalculation'); --> 8

REPEAT(str,count) :

    El string dado es repetido para la cuenta dada. mysql> select repeat('HIOX',2); --> 'HIOXHIOX'

REPLACE(str,from_str,to_str) :

    En el string dado 'str' el 'from_str' es reemplazado por el string 'to_str'. mysql> select replace('MyMYSql','My','you'); --> youMYSql

    El 'from_str' es sensible a las mayúsculas. Aquí en el ejemplo superior la primera 'My' es cambiada, pero no la segunda ('MY').

Page 37: Tutorialde mysql

REVERSE(str) :

    El string dado es revertido y devuelto. mysql> select reverse('HIOX'); --> 'XOIH'

SUBSTRING(str,pos) :

    La función devuelve un substring del string 'str' empezando en la posición 'pos'. mysql> select substring('EASYCALCULATION', 5); --> 'CALCULATION'

Funciones de Fecha y Hora:

    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 DATE

CURTI ME

DATE DIFF

DATE_ ADD

DAY NAME

DAYOF MONTH

DAYO FWEEK

DAYO FYEAR

HO UR

MINUT E

MONT H

MONT HNAME

NO W

CURDATE() :

    Esta función devuelve la fecha actual en formato 'YYYY-MM-DD' o 'YYYYMMDD' (Año-Mes-Día)

mysql> select curdate(); --> 2007-01-03

CURTIME() :

    Devuelve la hora actual en formato 'HH:MM:SS' o 'HHMMSS'. mysql> select curtime(); --> 17:33:07

DATEDIFF(expression1,expression2) :

    expression1 y expression2 son expresiones fecha o fecha-y-hora. Esta función devuelve

Page 38: Tutorialde mysql

expression1 – expression2 expresados como un valor en días de una fecha a la otra. Aquí sólo las partes de fecha serán consideradas para el cálculo. mysql> select datediff('2007-2-6 17:33:25','2007-1-1'); --> 36

DATE_ADD(fechahora, INTERVAL tipo expresión fechahora) :

    Esta función de fecha añade la expresión a la datetime suministrada. mysql> select date_add('2007-1-14', interval 15 day); --> 2007-01-29

    Esta función es la misma para DATE_SUB, pero tomará lugarsubstrayéndola en vez de añadiéndola.

DAYNAME(fecha) :

    Devuelve el nombre del día para una fecha especificada. mysql> select dayname('2007-01-04'); --> Thursday

DAYOFMONTH(fecha) or DAY(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) :

    Devuelve la hora del tiempo especificado en formato numérico de 0 a 23. mysql> select hour('14:46:12'); --> 14

MINUTE(hora) :

    Devuelve el minuto del tiempo especificado en formato numérico de 0 a 59. mysql> select minute('14:46:12'); --> 46

MONTH(fecha) :

    Devuelve el mes para la fecha dada en formato numérico en rango de 0 a 12. mysql> select month('2007-07-09'); --> 7

Page 39: Tutorialde mysql

MONTHNAME(fecha) :

    Devuelve el nombre del mes para la fecha especificada. mysql> select monthname('2007-07-09'); --> July

NOW() :

    Esta función de fecha devuelve la fecha y hora actual en formato 'YYYY-MM-DD HH:MM:SS' o YYYYMMDDHHMMSS (Año-Mes-Día Hora:Minuto:Segundo) mysql> select now(); --> 2007-01-04 14:56:15

PAGINA : http://www.es.hscripts.com/tutoriales/mysql/fecha-hora-functiones.php