MySQL Introducción - 200.72.129.100

Post on 24-Jun-2022

2 views 0 download

Transcript of MySQL Introducción - 200.72.129.100

MySQLMySQLIntroducciIntroduccióónn

CrescencioCrescencio BravoBravo

1

2

MySQL: Introducción

ContenidosContenidos

1 1 ¿¿QuQuéé es es MySQLMySQL??2 El SQL de 2 El SQL de MySQLMySQL3 3 TutorialTutorial BBáásico de sico de MySQLMySQL4 Manual de SQL4 Manual de SQL5 Caracter5 Caracteríísticas avanzadassticas avanzadas6 Herramientas b6 Herramientas báásicas de administracisicas de administracióónn

mysqladminmysqladminmysqlmysql

7 Resumen7 Resumen8 Ejercicios8 Ejercicios

3

MySQL: Introducción

1 1 ¿¿QuQuéé es es MySQL? (i)MySQL? (i)

Un SGBDUn SGBDRelacionalDe código abierto

CaracterCaracteríísticas generalessticas generales:Es rápidoFiableFácil de usarMuy adecuado para aplicaciones en InternetSoporta arquitectura C/S y sistemas embebidosHay disponible gran cantidad de software que soportan MySQL

4

MySQL: Introducción

1 1 ¿¿QuQuéé es es MySQL? (ii)MySQL? (ii)

DB2 8.1http://www-5.ibm.com/es/software/db2

IBM

Informix Standard Enginehttp://www-3.ibm.com/software/data/informix/se

IBM

Adaptive Server Enterprise (ASE) 12.5.1http://www.sybase.com/products/databaseservers/ase

Sybase Inc

Oracle 9i EE Databasehttp://otn.oracle.com/products/oracle9i/index.html

Oracle

PostgreSQL 8http://www.postgresql.com

PostgreSQL

MySQL Database Server 4http://www.mysql.com/products/mysql/index.html

MySQL AB

SQL Server 2000 EEhttp://www.microsoft.com/spain/servidores/sql

Microsoft

Principales vendedores y BDPrincipales vendedores y BD::

5

MySQL: Introducción

1 1 ¿¿QuQuéé es es MySQL? (iii)MySQL? (iii)

BD BD OpenOpen SourceSource:MySQL es una base de datos Open Source (Código Abierto) y por lo tanto de coste gratuitoCCóódigo Abiertodigo Abierto: Movimiento que promulga el derecho de los usuarios a tener libre acceso al código fuente con el que se desarrolle cualquier aplicación, sistema operativo o libreríaEjemplo más conocido: LinuxLas bases de datos Open Source ya juegan en “Primera División”PostgreSQL es también un ejemplo de BD de código abierto

6

MySQL: Introducción

1 1 ¿¿QuQuéé es es MySQL? (iv)MySQL? (iv)

Comparativas – Productividad:

7

MySQL: Introducción

1 1 ¿¿QuQuéé es es MySQL? (v)MySQL? (v)

Comparativas – Tiempo de respuesta:

8

MySQL: Introducción

1 1 ¿¿QuQuéé es es MySQL? (vi)MySQL? (vi)

En 2003En 2003--2004, 2004, MySQLMySQL……Velocidad/RendimientoBajo consumoUtilidades de administraciónProbabilidad reducida de corromper los datosApache+PHP+MySQL en foros/buscadores de aplicacionesCarece de soporte para transacciones, rollbacks y subconsultasNo maneja integridad referencialNo es viable para grandes bases de datos con accesos continuos (mala escalabilidad)

9

MySQL: Introducción

1 1 ¿¿QuQuéé es es MySQL? (vii)MySQL? (vii)

CaracterCaracteríísticas detalladas (MySQL 5)sticas detalladas (MySQL 5):C / C++ MultiplataformaSoporta multi-hilo (hilos del kernel)APIs para muchos lenguajes (C++, Java, Perl, PHP, Python, etc.)Soporta transaccionesÁrboles B muy rápidos (compresión de índices)Sistema de gestión de memoria muy eficienteJoins optimizadosServidor separado para arquitecturas C/S o como librería embebidaMuchos tipos de columnas; registros de longitud fija y variableAmplio abanico de sentencias y funcionesPosibilidad de mezclar tablas de BD diferentesSistema de privilegios y passwordsManejo de BD muy grandes64 índices por tabla; índices de hasta 16 columnas; máxima longitud de índice de 1000 bytesConectores ODBC y JavaSoporte de internacionalización (mensajes, juego de caracteres y ordenación)

10

MySQL: Introducción

2 El SQL de 2 El SQL de MySQLMySQL

MySQL soporta ANSI SQL y otros modos de SQL

Extensiones aExtensiones a SQL estSQL estáándarndar:Los nombres de BD y tablas son sensibles a mayúsculas (de acuerdo al SO)Las cadenas se pueden encerrar entre “ o ‘Se puede acceder a tablas de diferentes BD (db.table)Tipos de campos: MEDIUMINT, SET, ENUM, BLOB, TEXTModificadores de tipos: AUTO_INCREMENT, BINARY, NULL, UNSIGNED, ZEROFILLSe aceptan los operadores || y &&Comparaciones entre cadenas: No sensibles a mayúsculas/minúsculas% es sinónimo de MOD()Cada BD se localiza en un directorio del directorio de datosCada tabla se localiza en un ficheroMuchas sentencias tienen una funcionalidad ampliada; existen nuevas funcionesAlgunas otras se comportan de forma diferente

11

MySQL: Introducción

3 3 TutorialTutorial BBáásico de sico de MySQLMySQL (i)(i)

ConexiConexióón al servidorn al servidor:

DesconexiDesconexióónn:

IntroducciIntroduccióón de consultasn de consultas:

12

MySQL: Introducción

3 3 TutorialTutorial BBáásico de sico de MySQLMySQL (ii)(ii)

UtilizaciUtilizacióón de una BDn de una BD:

CreaciCreacióón de una BDn de una BD:

CreaciCreacióón de una tablan de una tabla:

13

MySQL: Introducción

3 3 TutorialTutorial BBáásico de sico de MySQLMySQL (iii)(iii)

Estructura de una tablaEstructura de una tabla:

RecuperaciRecuperacióón de informacin de informacióónn:

14

MySQL: Introducción

3 3 TutorialTutorial BBáásico de sico de MySQLMySQL (iv(iv))

SelecciSeleccióón de determinadas filasn de determinadas filas:

SelecciSeleccióón de columnasn de columnas:

15

MySQL: Introducción

3 3 TutorialTutorial BBáásico de sico de MySQLMySQL (v)(v)

OrdenaciOrdenacióón de filasn de filas:

Contar y agruparContar y agrupar:

16

MySQL: Introducción

3 3 TutorialTutorial BBáásico de sico de MySQLMySQL ((vivi))

Operaciones con fechasOperaciones con fechas:

InformaciInformacióón de bases de datos y tablasn de bases de datos y tablas:

17

MySQL: Introducción

3 3 TutorialTutorial BBáásico de sico de MySQLMySQL ((viivii))

VersiVersióón de MySQLn de MySQL:mysql -V

EjecuciEjecucióón en modo n en modo batchbatch:

18

MySQL: Introducción

4 Manual de 4 Manual de SQL:SQL: Estructura del Estructura del lenguaje (i)lenguaje (i)

Literales:“cadena”, ‘cadena de caracteres’123.45, 5e10Valores lógicos

Valor nulo: NULL

Nombres:

19

MySQL: Introducción

4 Manual de SQL: Estructura del lenguaje (ii)4 Manual de SQL: Estructura del lenguaje (ii)

ComentariosComentarios:

20

MySQL: Introducción

4 Manual de 4 Manual de SQL:SQL: Tipos de columnasTipos de columnas

Tipos de columnas de Tipos de columnas de ANSI SQLANSI SQL:

21

MySQL: Introducción

4 Manual de SQL: Tipos Num4 Manual de SQL: Tipos Numééricos (i)ricos (i)

NotaciNotacióónn:M: Ancho de visualización máximo (nº total de dígitos decimales)D: En tipos en coma flotante y de coma fija, el número de dígitos que siguen a la comap: Precisión en bits[ ]: opcional

BIT[(M)] : Campo de bits, M (1 a 64) indica el nº de bits, 1 por defectoTINYINT[(M)] [UNSIGNED] [ZEROFILL] : -122 a 127 (unsigned: 0 a 255)BOOL, BOOLEAN : Sinónimos para TINYINT(1). 0 es falso, cualquier otra cosa es verdaderoSMALLINT[(M)] [UNSIGNED] [ZEROFILL] : -32768 a 32767 (unsigned: 0 a 65535)MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] : -8388608 a 8388607 (unsigned: 0 a 16777215)INT[(M)] [UNSIGNED] [ZEROFILL] : -2147483648 a 2147483647 (unsigned: 0 a 4294967295)INTEGER[(M)] [UNSIGNED] [ZEROFILL] : Sinónimo para INT

22

MySQL: Introducción

4 Manual de SQL: Tipos Num4 Manual de SQL: Tipos Numééricos (ii)ricos (ii)

INTEGER[(M)] [UNSIGNED] [ZEROFILL] : Sinónimo para INTBIGINT[(M)] [UNSIGNED] [ZEROFILL] : -9223372036854775808 a 9223372036854775807 (unsigned: 0 a 18446744073709551615)FLOAT[(M,D)] [UNSIGNED] [ZEROFILL] : -3.402823466E+38 a -1.175494351E-38, 0 y 1.175494351E-38 a 3.402823466E+38. El nºaproximado de decimales es 7DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL] : -1.7976931348623157E+308 a -2.2250738585072014E-308, 0 y 2.2250738585072014E-308 a 1.7976931348623157E+308. El nº aproximado de decimales es 15DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL], REAL[(M,D)] [UNSIGNED] [ZEROFILL] : Sinónimos para DOUBLEFLOAT(p) [UNSIGNED] [ZEROFILL]DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL] : Un nº en coma fija empaquetado. M<=65, D<=30. Por defecto, D=0, M=10.DEC[(M[,D])] [UNSIGNED] [ZEROFILL], NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL], FIXED[(M[,D])] [UNSIGNED] [ZEROFILL] : Sinónimos para DECIMAL

23

MySQL: Introducción

4 Manual de SQL: Tipos Num4 Manual de SQL: Tipos Numééricos (iii)ricos (iii)

Necesidades de almacenamientoNecesidades de almacenamiento:

24

MySQL: Introducción

4 Manual de 4 Manual de SQL:SQL: Tipos Tipos Fecha y HoraFecha y Hora

DATE: Fecha, de '1000-01-01' a '9999-12-31'. MySQL muestra las fechas en el formato 'YYYY-MM-DD' DATETIME: Fecha y hora, de '1000-01-01 00:00:00' a '9999-12-31 23:59:59', en formato 'YYYY-MM-DD HH:MM:SS'TIMESTAMP[(M)]: Un sello temporal, de '1970-01-01 00:00:00' hasta el año 2037, en formato 'YYYY-MM-DD HH:MM:SS'

Útil para recoger la fecha y hora de una operación INSERT o UPDATETIME: Hora, de '-838:59:59' to '838:59:59, en formato 'HH:MM:SS'YEAR[(2|4)]: Año en formato de 2 ó 4 dígitos, de 1901 a 2155, incluido el año 0, en formato 'YYYY'

Necesidades de almacenamientoNecesidades de almacenamiento:

25

MySQL: Introducción

4 Manual de SQL: Tipos Cadena (i)4 Manual de SQL: Tipos Cadena (i)

NotaciNotacióónn:M: nº de caracteres

[NATIONAL] CHAR(M) [BINARY | ASCII | UNICODE] : Cadena de longitud fija que se completa con espacios en blanco por la derecha; el rango de M es de 0 a 255[NATIONAL] VARCHAR(M) [BINARY] : Cadena de longitud variable; el rango de M es de 0 a 65535BINARY y VARBINARY son similares pero contienen cadenas binarias, en lugar de cadenas de caracteresBLOB[(M)] : Objeto binario con una longitud máxima de 65535 bytes.

Permite cuatro subtipos: TINYBLOB, BLOB, MEDIUMBLOB y LONGBLOBTEXT[(M)] : Secuencia de caracteres con una longitud máxima de 65535 caracteres

Permite cuatro subtipos: TINYTEXT, TEXT, MEDIUMTEXT y LONGTEXTENUM('value1','value2',...) : Una enumeración. Un objeto de tipo cadena que puede tener un único valor elegido de la lista de valores.SET('value1','value2',...) : Un conjunto. Un objeto cadena que puede tener 0 o más valores, cada uno elegido de la lista de valores.

26

MySQL: Introducción

4 Manual de SQL: Tipos Cadena (ii)4 Manual de SQL: Tipos Cadena (ii)

Necesidades de almacenamientoNecesidades de almacenamiento:

27

MySQL: Introducción

4 Manual de SQL: Compatibilidad con otros Tipos4 Manual de SQL: Compatibilidad con otros Tipos

Equivalencias con otras BDEquivalencias con otras BD:

28

MySQL: Introducción

4 Manual de 4 Manual de SQL:SQL: Funciones (i)Funciones (i)

Operadores relacionalesOperadores relacionales:>, <, >=, <=, <>, !=, IS NULL, IS NOT NULL

ISNULL(expr)expr BETWEEN min AND max,

expr NOT BETWEEN min AND max…

OperadoresOperadores llóógicosgicos:NOT, !, OR, ||, AND, &&

Funciones de control del flujoFunciones de control del flujo:IF(expr1, expr2, expr3)…

29

MySQL: Introducción

4 Manual de 4 Manual de SQL:SQL: Funciones (ii)Funciones (ii)

Funciones de cadenas de caracteresFunciones de cadenas de caracteres:

CONCAT(str1, str2, …)LENGTH(str)LEFT(str, len)RIGHT(str, len)SUBSTRING(str, pos, len)UCASE(str), UPPER(str), LCASE(str), RCASE(str)…

expr LIKE patpat es el patrón con el que comparar; puede contener dos tipos de comodines:

% coincide con cualquier nº de caracteres, incluido cero caracteres_ coincide exactamente con un caracter

30

MySQL: Introducción

4 Manual de SQL: Funciones (iii)4 Manual de SQL: Funciones (iii)

Operaciones aritmOperaciones aritmééticasticas:+, -, *, /

Funciones matemFunciones matemááticasticas:ABS(x), MOD(n, m), SQRT(x), PI(), …

OtrasOtras funcionesfunciones:DATABASE(), USER(), VERSION(), …

Funciones de agregadoFunciones de agregado:AVG: Calculo promedio de los valores de una columnaCOUNT: Nº de filas de la selecciónSUM: Suma de los valores de una columnaMAX, MIN: Valor más alto y más bajo de una columna

31

MySQL: Introducción

4 Manual de 4 Manual de SQL:SQL: ManipulaciManipulacióón de n de Datos (i)Datos (i)

SELECTSELECT

select_expression indica las columnas que se quieren recuperar

Se puede incluir cualquier expresión válida

32

MySQL: Introducción

4 Manual de SQL: Manipulaci4 Manual de SQL: Manipulacióón de Datos (ii)n de Datos (ii)

INSERTINSERT

33

MySQL: Introducción

4 Manual de SQL: Manipulaci4 Manual de SQL: Manipulacióón de Datos (iii)n de Datos (iii)

UPDATE

DELETEDELETE

34

MySQL: Introducción

4 Manual de SQL: Definici4 Manual de SQL: Definicióón de Datos (i)n de Datos (i)

Crear y eliminar BDCrear y eliminar BD:

CreaciCreacióón de tablasn de tablas:

35

MySQL: Introducción

4 Manual de SQL: Definici4 Manual de SQL: Definicióón de Datos (ii)n de Datos (ii)

36

MySQL: Introducción

4 Manual de SQL: Definici4 Manual de SQL: Definicióón de Datos (iii)n de Datos (iii)

37

MySQL: Introducción

4 Manual de SQL: Definici4 Manual de SQL: Definicióón de Datos (iv)n de Datos (iv)

ModificaciModificacióón de tablasn de tablas:

38

MySQL: Introducción

4 Manual de SQL: Definici4 Manual de SQL: Definicióón de Datos (v)n de Datos (v)

Cambio del nombre de una tablaCambio del nombre de una tabla:

EliminaciEliminacióón de tablasn de tablas:

CreaciCreacióón de n de ííndicendice:

EliminaciEliminacióón de n de ííndicendice:

39

MySQL: Introducción

5 5 CaracterCaracteríísticas Avanzadassticas Avanzadas

Utilidad para chequeo, optimización y reparación de tablasDELETE, INSERT, REPLACE y UPDATE devuelven el número de filas afectadasTodos los programas/utilidades permiten la obtención de ayuda en línea (--help o -?)El comando SHOW muestra información sobre BD, tablas e índices

40

MySQL: Introducción

6 Herramientas de 6 Herramientas de AdministraciAdministracióónn: : mysqladmin (i)mysqladmin (i)

mysqladminmysqladmin: Una utilidad para realizar operaciones administrativas

Operaciones mOperaciones máás habitualess habituales:Crear BD:

mysqladmin create <nombreBD>Eliminar BD:

mysqladmin drop <nombreBD>Ver el estado de MySQL:

mysqladmin pingmysqladmin status

Detener el servidor:mysqladmin shutdown

Puede ser necesario autentificarse:mysqladmin create <nombreBD> -u root -p

41

MySQL: Introducción

6 Herramientas de 6 Herramientas de AdministraciAdministracióónn: : mysqladmin (ii)mysqladmin (ii)

Todas las operacionesTodas las operaciones:

42

MySQL: Introducción

6 Herramientas de 6 Herramientas de AdministraciAdministracióónn: : mysql (i)mysql (i)

mysqlmysql: Una consola para ejecutar comandos de SQLPermite un uso interactivo y no interactivo

Comandos mComandos máás habitualess habituales:help,?: Ayudaexit, quit: Saliruse <nombreBD>: Abrir otra BDstatus: Estado del servidorsource <nombreFich>: Ejecuta un fichero con comandos SQL

43

MySQL: Introducción

6 Herramientas de 6 Herramientas de AdministraciAdministracióónn: : mysql (ii)mysql (ii)

Todos los comandosTodos los comandos:

44

MySQL: Introducción

7 Resumen7 Resumen

Qué hemos aprendido…Sabemos qué es MySQLHemos repasado sus características principales y hemos visto que soporta un SQL extendidoHemos realizado un pequeño tutorial de MySQLHemos repasado el SQL que “entiende” MySQLHemos practicado con dos de sus herramientas principales de consola

45

MySQL: Introducción

8 Ejercicios8 Ejercicios

Con mysql:1 Crear una BD alumnos con tres tablas: alumno, asignatura, nota2 Crear una BD personal con la lista de dvds y las cuentas de la casa3 Una vez creadas, mostrar todas las BD con el comando adecuado4 Mostrar todas las tablas de cada BD5 Ver la estructura de las tablas6 Crear un fichero de texto con extensión .sql que contenga instrucciones SQL para insertar algunos datos de ejemplo y ejecutarlo7 Practicar con diferentes select y update desde la línea de órdenes de mysql

Con mysqladmin:8 Estudiar la forma equivalente de crear estas dos BD