http://www.tutorialesprogramacionya.com/oracleya/
https://www.javatpoint.com/oracle-insert-all
miércoles, 25 de septiembre de 2019
lunes, 23 de septiembre de 2019
INNER JOIN ORACLE
INNER JOIN con 2 tablas
INNER JOIN con 3 tablas
Existen distintas formas de hacer INNER JOIN, aquí 4 ejemplos:
(Using y Natural Join no sirve con asterisco en select)
viernes, 20 de septiembre de 2019
Patrones de Busqueda LIKE-NOTLIKE
Existe un operador relacional que se usa para realizar comparaciones exclusivamente de cadenas, "like" y "not like".
Hemos realizado consultas utilizando operadores relacionales para comparar cadenas. Por ejemplo, sabemos recuperar los libros cuyo autor sea igual a la cadena "Borges":
select *from libros
where autor='Borges';
El operador igual ("=") nos permite comparar cadenas de caracteres, pero al realizar la comparación, busca coincidencias de cadenas completas, realiza una búsqueda exacta.
Imaginemos que tenemos registrados estos 2 libros:
"El Aleph", "Borges";
"Antologia poetica", "J.L. Borges";
Si queremos recuperar todos los libros de "Borges" y especificamos la siguiente condición:
select *from libros
where autor='Borges';
sólo aparecerá el primer registro, ya que la cadena "Borges" no es igual a la cadena "J.L. Borges".
Esto sucede porque el operador "=" (igual), también el operador "<>" (distinto) comparan cadenas de caracteres completas. Para comparar porciones de cadenas utilizamos los operadores "like" y "not like".
Entonces, podemos comparar trozos de cadenas de caracteres para realizar consultas. Para recuperar todos los registros cuyo autor contenga la cadena "Borges" debemos tipear:
select *from libros
where autor like "%Borges%";
El símbolo "%" (porcentaje) reemplaza cualquier cantidad de caracteres (incluyendo ningún caracter). Es un caracter comodín. "like" y "not like" son operadores de comparación que señalan igualdad o diferencia.
Para seleccionar todos los libros que comiencen con "M":
select *from libros
where titulo like 'M%';
Note que el símbolo "%" ya no está al comienzo, con esto indicamos que el título debe tener como primera letra la "M" y luego, cualquier cantidad de caracteres.
Para seleccionar todos los libros que NO comiencen con "M":
select *from libros
where titulo not like 'M%';
Así como "%" reemplaza cualquier cantidad de caracteres, el guión bajo "_" reemplaza un caracter, es otro caracter comodín. Por ejemplo, queremos ver los libros de "Lewis Carroll" pero no recordamos si se escribe "Carroll" o "Carrolt", entonces tipeamos esta condición:
select *from libros
where autor like "%Carrol_";
"like" se emplea con tipos de datos caracter y date. Si empleamos "like" con tipos de datos que no son caracteres, Oracle convierte (si es posible) el tipo de dato a caracter. Por ejemplo, queremos buscar todos los libros cuyo precio se encuentre entre 10.00 y 19.99:
select titulo,precio from libros
where precio like '1_,%';
Queremos los libros que NO incluyen centavos en sus precios:
select titulo,precio from libros
where precio not like '%,%';
Los valores nulos no se incluyen en las búsquedas con "like" y "not like".
Retornar
Hemos realizado consultas utilizando operadores relacionales para comparar cadenas. Por ejemplo, sabemos recuperar los libros cuyo autor sea igual a la cadena "Borges":
select *from libros
where autor='Borges';
El operador igual ("=") nos permite comparar cadenas de caracteres, pero al realizar la comparación, busca coincidencias de cadenas completas, realiza una búsqueda exacta.
Imaginemos que tenemos registrados estos 2 libros:
"El Aleph", "Borges";
"Antologia poetica", "J.L. Borges";
Si queremos recuperar todos los libros de "Borges" y especificamos la siguiente condición:
select *from libros
where autor='Borges';
sólo aparecerá el primer registro, ya que la cadena "Borges" no es igual a la cadena "J.L. Borges".
Esto sucede porque el operador "=" (igual), también el operador "<>" (distinto) comparan cadenas de caracteres completas. Para comparar porciones de cadenas utilizamos los operadores "like" y "not like".
Entonces, podemos comparar trozos de cadenas de caracteres para realizar consultas. Para recuperar todos los registros cuyo autor contenga la cadena "Borges" debemos tipear:
select *from libros
where autor like "%Borges%";
El símbolo "%" (porcentaje) reemplaza cualquier cantidad de caracteres (incluyendo ningún caracter). Es un caracter comodín. "like" y "not like" son operadores de comparación que señalan igualdad o diferencia.
Para seleccionar todos los libros que comiencen con "M":
select *from libros
where titulo like 'M%';
Note que el símbolo "%" ya no está al comienzo, con esto indicamos que el título debe tener como primera letra la "M" y luego, cualquier cantidad de caracteres.
Para seleccionar todos los libros que NO comiencen con "M":
select *from libros
where titulo not like 'M%';
Así como "%" reemplaza cualquier cantidad de caracteres, el guión bajo "_" reemplaza un caracter, es otro caracter comodín. Por ejemplo, queremos ver los libros de "Lewis Carroll" pero no recordamos si se escribe "Carroll" o "Carrolt", entonces tipeamos esta condición:
select *from libros
where autor like "%Carrol_";
"like" se emplea con tipos de datos caracter y date. Si empleamos "like" con tipos de datos que no son caracteres, Oracle convierte (si es posible) el tipo de dato a caracter. Por ejemplo, queremos buscar todos los libros cuyo precio se encuentre entre 10.00 y 19.99:
select titulo,precio from libros
where precio like '1_,%';
Queremos los libros que NO incluyen centavos en sus precios:
select titulo,precio from libros
where precio not like '%,%';
Los valores nulos no se incluyen en las búsquedas con "like" y "not like".
Retornar
Tipo de Cuentas Oracle
Cuentas Oracle
Sys y System
Ambos usuario son creados de forma automática al crear la base de datos ORACLE y se otorga el rol de DBA.
SYS:
Todas las tablas y vistas para el diccionario de datos de la base de datos están almacenados en el esquema SYS. Estas tablas y vistas son críticas para el funcionamiento de la base de datos ORACLE. Para mantener la integridad del diccionario de datos, las tablas del esquema SYS son manipulados solo por la base de datos. Nunca se debería modificar algo o crear tablas en el esquema del usuario SYS.
SYSTEM:
El usuario SYSTEM se utiliza para crear tablas y vistas adicionales que muestran información administrativa, tablas internas y vistas utilizado por varias opciones y herramientas de la base de datos ORACLE. No se recomienda utilizar el esquema SYSTEM para almacenar tablas de interés para usuarios no administrativos.
HR
Human Resource
¿Qué es un esquema de base de datos?
Un esquema de base de datos representa la configuración lógica de todo o parte de una base de datos relacional. Puede existir de dos formas: como representación visual y como un conjunto de fórmulas conocidas como restricciones de integridad que controlan una base de datos. Estas fórmulas se expresan en un lenguaje de definición de datos, tal como SQL. Como parte de un diccionario de datos, un esquema de base de datos indica cómo las entidades que conforman la base de datos se relacionan entre sí, incluidas las tablas, las vistas, los procedimientos almacenados y mucho más.jueves, 19 de septiembre de 2019
Curso Base de Datos Oracle 19 Sep
¿Qué es Oracle?
Oracle es básicamente un herramienta cliente/servidor para la gestión de base de datos, es un producto vendido a nivel mundial, aunque la gran potencia que tiene y su elevado precio hace que solo se vea en empresas muy grandes y multinacionales, por norma general.
Oracle como antes lo mencionamos se basa en la tecnología cliente/ servidor, pues bien, para su utilización primero seria necesario la instalación de la herramienta servidor ( Oracle8i ) y posteriormente podríamos atacar a la base de datos desde otros equipos con herramientas de desarrollo como Oracle Designer y Oracle Developer, que son las herramientas de programación sobre Oracle a partir de esta premisa vamos a desarrollar las principales acepciones de Oracle y sus aplicaciones en las distintas ares de trabajo.
Características
- Modelo relacional: los usuarios visualizan los datos en tablas con el formato filas/columnas.
- Herramienta de administración gráfica intuitiva y cómoda de utilizar.
- Control de acceso: tecnologías avanzadas para vigilar la entrada a los datos.
- Protección de datos: seguridad completa en el entorno de producción y de pruebas y gestión de copias de seguridad.
- Lenguaje de diseño de bases de datos muy completo (PL/SQL): permite implementar diseños "activos", que se pueden adaptar a las necesidades cambiantes de negocio.
- Alta disponibilidad: escalabilidad, protección y alto rendimiento para la actividad empresarial.
- Gestión de usuarios: agilidad en los trámites, reducción de costes y seguridad en el control de las personas que acceden a las aplicaciones y a los sistemas.
Ventajas
- Motor de base de datos objeto-relacional más usado a nivel mundial.
- Multiplataforma: puede ejecutarse desde un PC hasta una supercomputadora.
- Permite el uso de particiones para hacer consultas, informes, análisis de datos, etc.
- Soporta todas las funciones que se esperan de un buen servidor.
- Software del servidor que puede ejecutarse en multitud de sistemas operativos: Linux, Mac, Windows, etc.
- Existe incluso una versión personal para Windows 9x, lo cual es un punto a favor para los desarrolladores que se llevan trabajo a casa.
- Oracle es la base de datos con más orientación hacía INTERNET.
Desventajas
- Las versiones más recientes de Oracle son la 11g, 10g, 9g, 8g, desde el lanzamiento original de la 8 se sucedieron varias versiones con correcciones, hasta alcanzar la estabilidad en la 8.0.3. El motivo de tantos fallos fue, al parecer, la remodelación del sistema de almacenamiento por causa de la introducción de extensiones orientadas a objetos.
- El mayor inconveniente de Oracle es quizás su precio. Incluso las licencias de Personal Oracle son excesivamente caras, en mi opinión. Otro problema es la necesidad de ajustes. Un error frecuente consiste en pensar que basta instalar el Oracle en un servidor y enchufar directamente las aplicaciones clientes. Un Oracle mal configurado puede ser desesperantemente lento.
- También es elevado el coste de la información, y sólo últimamente han comenzado a aparecer buenos libros sobre asuntos técnicos distintos de la simple instalación y administración.
Versiones de Oracle
Standard Edition One
Ofrece facilidad de uso, potencia y rendimiento para grupos de trabajo, a nivel de departamentos y aplicaciones Web. Desde los entornos de un solo servidor para pequeñas empresas a los entornos de sucursales altamente distribuidos.
Standard Edition
Oracle Database Standard Edition ofrece las funcionalidades de la edición Standard Edition One, con el apoyo de máquinas más grandes y la agrupación de los servicios con Oracle Real Application Clusters (Oracle RAC). La funcionalidad no se incluía ni como opción en versiones estandard anteriores.
Enterprise Edition
Ofrece el rendimiento, la disponibilidad, la escalabilidad y la seguridad necesaria para las aplicaciones de misión crítica, tales como el procesamiento de grandes volúmenes de transacciones en línea (OLTP), almacenes de datos en consultas intensivas y exigentes aplicaciones de Internet.
Express Edition (XE)
Es una edición básica de la base de datos de Oracle. Es rápida de descargar, fácil de instalar y administrar, y es libre de desarrollar, implementar y distribuir. Es fácil de actualizar a las otras ediciones de Oracle sin migraciones costosas y complejas. Oracle Database XE se puede instalar en cualquier máquina tamaño con cualquier número de CPUs, almacena hasta 11 GB de datos de usuario, con un máximo de 1 GB de memoria, y con una sola CPU en la máquina host. Existe un foro en línea, para dar soporte.
Personal
Soporta los entornos de desarrollo de un solo usuario y el despliegue que requieren la plena compatibilidad con Oracle Database Standard Edition One, Oracle Database Standard Edition y Oracle Database Enterprise Edition. Le diferencia la excepción de la no opción de Oracle Real Application Clusters. Personal Edition sólo está disponible en los sistemas operativos Windows y Linux. Tampoco incluye los módulos de administración no están incluidos.
Limitaciones XE
La diferencia principal entre estas dos versiones es que la Express Edition es ideal para desarrollo de pequeñas webs. Es la versión gratuita de Oracle Database por lo que tiene las siguientes limitaciones:
- Sólo aprovecha 1 cpu del servidor.
- Sólo se puede asignar 1 Gb de memoria a la instancia.
- El tamaño máximo de la BD no puede superar los 4 Gb.
SQL plus
SQL*Plus es un programa de línea de comandos de Oracle que puede ejecutar comandos SQL y PL/SQL de forma interactiva o mediante un script.
SQL*Plus opera como una herramienta relativamente simple con una interfaz de líneas de comando básica. Los programadores y los administradores de bases de datos (DBA's) lo usan de forma muy común como interfaz fundamental en la mayoría de las instalaciones de software de Oracle.
SQL Developer
Oracle SQL Developer es la herramienta gráfica gratuita que proporciona Oracle para que no sea necesario utilizar herramientas de terceros (como el conocido TOAD, o el PL/SQL Developer) para desarrollar, o simplemente para ejecutar consultas o scripts SQL, tanto DML como DDL, sobre bases de datos Oracle.
¿Qué es SQL?
SQL (por sus siglas en inglés Structured Query Language; en español lenguaje de consulta estructurada) es un lenguaje de dominio específico utilizado en programación, diseñado para administrar, y recuperar información de sistemas de gestión de bases de datos relacionales.1 Una de sus principales características es el manejo del álgebra y el cálculo relacional para efectuar consultas con el fin de recuperar, de forma sencilla, información de bases de datos, así como realizar cambios en ellas.
Clásificación (Sentencias) de SQL
DML
DML significa DATA MANIPULATION LANGUAGE, este se utiliza para todas las transacciones de control sobre datos, esta categoría va destinada mas hacia las tablas, ya que en estas es donde se pueden emplear mayormente estas sentencias, con DML se puede insertar registros a las tablas, también modificarlas, consultarlas y hasta eliminarlas.
Esta categoría esta comprendida mas exactamente por las siguientes sentencias:
- SELECT - Instrucción básica con la cual se recupera datos de la base de datos, está instrucción se puede combinar con otras para hacer querys más complejas utilizando más tablas.
- INSERT - Instrucción básica para insertar datos en una tabla, está instrucción depende de otras dos para hacer una inserción básica, estás son INTO Y VALUES.
- UPDATE - Actualiza los datos de los registros de una o varias tablas.
- DELETE - Elimina uno o varios registros de una tabla, si se elimina en cascada se eliminarán en todos los registros que estén relacionados en otras tablas.
- MERGE - Operación UPSERT (inserción o actualización).
- CALL - Llama a un pl / sql o subprograma java.
- EXPLAIN PLAN - Explicar la ruta de acceso a los datos.
- LOCK TABLE - Concurrencias de control.
DDL
DDL significa DATA DEFINITION LANGUAGE, este sirve para definir las estructuras de bases de datos. mas especificamente sirve para crear tablas, usuarios, schemas, objetos, vistas, triggers y todo lo que permita el gestor. ademas de las anterior opción da también otras instrucciones que ayudan al manejo y mantenimiento arquitectónico del gestor.
Estas categoría esta conformada por las siguientes instrucciones:
CREATE - Crear cualquier tipo de objeto permitido por el gestor.
ALTER - Altera la estructura de cualquier objeto permitido por el gestor.
DROP - Elimina los objetos construidos por la sentencia CREATE.
TRUNCATE - Vacia el contenido de cualquier objeto en el gestor.
COMMENT - Agregar comentarios al diccionario de base de datos.
RENAME - Renombrar a un objeto.
DCL
DCL significa por sus siglas en inglés Lenguaje de Control de Datos, este es un lenguaje proporcionado por el gestor de Base de Datos, que sirve para controlar el acceso a los datos en diferentes niveles y formas, mas familiar mente serian las instrucciones que utiliza el DBA (Administrador de la Base de Datos), para controlar el acceso y permisos de los usuarios que actúan dentro del sistema, así podiendo dar permisos a un usuario de crear tablas, eliminar registros, actualizar usuarios etc ....
• GRANT: Permite suministrarle los suficientes permisos a un usuario para que ejecuten sus tareas en el sistema.
• REVOKE: Permite eliminar los permisos dados por el DBA con la instrucción GRANT
• CONNECT
• SELECT
• INSERT
• UPDATE
• DELETE
• USAGE
En Oracle, la ejecución de un comando DCL implica un COMMIT de forma implícita. Sin embargo, en PostgreSQL, la ejecución de un comando DCL forma parte de una transacción, por lo que puede ser deshecha mediante el comando ROLLBACK.
CONTROL DE TRANSACCIÓN (TCL)
Es un lenguaje de programación y un subconjunto de SQL , que se utiliza para controlar el procesamiento de transacciones en una base de datos. Una transacción es una unidad lógica de trabajo que comprende una o más sentencias SQL, por lo general un grupo de Data Manipulation Language (DML). Ejemplos de comandos de TCL incluyen:
• COMMIT - GUARDA EL TRABAJO REALIZADO.
• SAVEPOINT - IDENTIFICA UN PUNTO EN UNA TRANSACCIÓN A LA QUE MÁS TARDE SE PUEDE VOLVER.
• ROLLBACK - RESTAURAR LA BASE DE DATOS A LA ORIGINAL, HASTA EL ÚLTIMO COMMIT.
• SET TRANSACTION - CAMBIA LAS OPCIONES DE TRANSACCIÓN COMO NIVEL DE AISLAMIENTO Y QUÉ SEGMENTO DE CANCELACIÓN UTILIZA.
Lenguaje de Manipulación de Datos
Sintaxis Básica
| Recupera datos de la base de datos. Añade nuevas filas de datos a la base de datos. Suprime filas de datos de la base de datos. Modifica datos existentes en la base de datos. |
Transacciones en SQL
Las transacciones en SQL son unidades o secuencias de trabajo realizadas de forma ordenada y separada en una base de datos. Normalmente representan cualquier cambio en la base de datos, y tienen dos objetivos principales:
Proporcionar secuencias de trabajo fiables que permitan poder recuperarse fácilmente ante errorres y mantener una base de datos consistente incluso frente a fallos del sistema.
Proporcionar aislamiento entre programas accediendo a la vez a la base de datos.
Una transacción es una propagación de uno o más cambios en la base de datos, ya sea cuando se crea, se modifica o se elimina un registro. En la práctica suele consistir en la agrupación de consultas SQL y su ejecución como parte de una transacción.
Propiedades de las transacciones
Las transacciones siguen cuatro propiedades básicas, bajo el acrónimo ACID (Atomicity, Consistency, Isolation, Durability):
Atomicidad: aseguran que todas las operaciones dentro de la secuencia de trabajo se completen satisfactoriamente. Si no es así, la transacción se abandona en el punto del error y las operaciones previas retroceden a su estado inicial.
Consistencia: aseguran que la base de datos cambie estados en una transacción exitosa.
Aislamiento: permiten que las operaciones sean aisladas y transparentes unas de otras.
Durabilidad: aseguran que el resultado o efecto de una transacción completada permanezca en caso de error del sistema.
Control de las transacciones
Existen tres comandos básicos de control en las transacciones SQL:
COMMIT. Para guardar los cambios.
ROLLBACK. Para abandonar la transacción y deshacer los cambios que se hubieran hecho en la transacción.
SAVEPOINT. Crea checkpoints, puntos concretos en la transacción donde poder deshacer la transacción hasta esos puntos.
Los comandos de control de transacciones se usan sólo con INSERT, DELETE y UPDATE. No pueden utilizarse creando tablas o vaciándolas porque las operaciones se guardan automáticamente en la base de datos.
viernes, 10 de mayo de 2019
JavaScript
¿Qué es JavaScript?
Javascript es un lenguaje de programación que permite a los desarrolladores crear acciones en sus páginas web. Se utiliza principalmente en su forma del lado del cliente (client-side), implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas aunque existe una forma de JavaScript del lado del servidor (Server-side JavaScript o SSJS). Su uso en aplicaciones externas a la web, por ejemplo en documentos PDF, aplicaciones de escritorio (mayoritariamente widgets) es también significativo.
Características de JavaScript
- Conozcamos ahora las características de JavaScript que haces de este lenguaje, uno de los más populares en la actualidad.
- Es Liviano.
- Multiplataforma, ya que se puede utilizar en Windows, Linux o Mac o en el navegador de tu preferencia.
- Es Imperativo y estructurado, mediante un conjunto de instrucciones indica al computador qué tarea debe realizar.
- Prototipado, debido a que usa prototipos en vez de clases para el uso de herencia.
- Orientado a objetos y eventos.
- Es Interpretado, no se compila para poder ejecutarse.
Diferencias entre Java y JavaScript
Dada la similitud de nombre suelen considerarse como sinónimos o muy similares cuando existen diferencias apreciables entre las que cabe destacar: * Java es un lenguaje de programación y JavaScript no, aunque ambos comparten la misma sintaxis.
- JavaScript no es un lenguaje compilado. JavaScript se integra directamente en las páginas HTML y es interpretado (sin estar compilado) por el cliente (navegador). Es decir, el programa fuente (página web) se ejecuta directamente.
- JavaScript está basado en objetos, mientras que Java es un lenguaje de programación orientado a objetos (OOP). JavaScript no utiliza clases, herencias o técnicas habituales en la OOP.
- No existe la declaración de tipos de variables a utilizar. JavaScript se encarga de ello automáticamente.
- Las referencias a los objetos se comprueban en tiempo real durante la ejecución. En los lenguajes compilados como Java esa comprobación se efectúa al compilarse.
- JavaScript no puede (no sabe) escribir en el disco duro (excepto cookies). Por ello puede considerarse como un lenguaje seguro en Internet, en el sentido que desde las páginas web, con JavaScript, no se pueden “gastar bromas”.
Formas de Incluir JavaScript
La primera forma de insertar JavaScript en HTML es directa. Puedes hacerlo utilizando la etiqueta <script> </script> que debe envolver todo el código JS que escribas. Se puede agregar el código JS:
entre las etiquetas <head>
entre las etiquetas <body>
Estructura Básica de JavaScript
- Pre. Comentario informativo de lo que vamos a programar y de que esperamos que haga el programa.
- Declaración de variables. Una variable es un espacio de memoria que sirve para alojar una información. Un dato como por ejemplo una cadena de texto o un número. En javascript no es necesario declarar las variables, pero es una práctica recomendada para no hacer sufrir a los ordenadores en exceso.
- Declaración de funciones. Una función es un tipo especial de variable que almacena un cálculo o una acción y que puede o no devolver un resultado.
- Las funciones a su vez pueden volver a tener todos los pasos del 1 al 6 que se mencionan en este escrito.
- Declaración de instrucciones. Aquello que queremos que ejecute el script.
- Dar un resultado o cálculo. Como ejemplo de resultado podríamos tener un texto escrito, un resultado numérico, una modificación de una página web, … etc
- Post. Enunciado explicativo de lo que ha hecho el programa y que resultado y de que tipo y valor devuelve el programa.
Colocar Comentarios en JavaScript
JavaScript permite insertar comentarios en el código, al igual que la mayoría de los lenguajes de programación. En concreto hay dos tipos de comentarios permitidos, los comentarios en línea que comienzan con una doble barra: //, y los comentarios multilínea, que comienzan con /* y terminan con */.
Tipo de Datos en JavaScript
Variables, Constantes e Identificadores
Variables
Las variables se usan como nombres simbólicos para valores en tu aplicación. Los nombres de las variables, llamados identificadores, se rigen por ciertas reglas.
Un identificador en JavaScript tiene que empezar con una letra, un guión bajo (_) o un símbolo de dólar ($); los valores subsiguientes pueden ser números. Debido a que JavaScript diferencia entre mayúsculas y minúsculas, las letras incluyen tanto desde la "A" hasta la "Z" (mayúsculas) como de la "a" hasta la "z".
Constantes
Puede crear una de solo lectura, llamada constante con la palabra clave const. La sintaxis del identificador de la constante es el mismo como para un indentificador de variable: debe de empezar con una letra, guión bajo(_) o símbolo de dollar($) y puede contener alfabéticos, numéricos o guiones bajos.
Identificadores
Los identificadores de un lenguaje son la ristra de caracteres que le asignamos a los nombres de variables, constantes, funciones, objetos, etc..., que nosotros definimos en dicho lenguaje, estos son necesarios para poder invocar a dichos elementos en lugares posteriores a su definición.
Los identificadores deben seguir las siguientes reglas:
El identificador debe empezar por una letra o por el caracter '_'.
Los caracteres siguientes, además de letras o el caracter '_', pueden ser cifras.
Recordar que le uso de mayúsculas o minúsculas no es importante porque JavaScript no diferencia de los nombres de mayúsculas o minúsculas en los identificadores. Veamos algunos ejemplos de nombres de variables:
Num_linea
aux1
_exit
Palabras Reservadas en JavaScript
Expresiones y Operadores en JavaScript
Operadores
JavaScript tiene los siguientes tipos de operadores. Esta sección describe dichos operadores y contiene información sobre el orden de los mismos:
Operadores de asignación
Operadores de comparación
Operadores aritméticos
Operadores bit a bit
Operadores lógicos
Operadores de cadena de caracteres
Operador condicional (ternario)
Operador coma
Operadores unarios
Operadores relacionales
JavaScript tiene operadores binarios y unarios, y un operador ternario especial, el operador condicional. Un operador binario requiere dos operandos, uno antes del operador y otro después de este.
Expresiones
Una expresión es cualquier unidad válida de código que resuelve un valor.
Cada expresión sintáctica válida resuelve a algún valor, pero conceptualmente, hay dos tipos de expresiones: las que tienen efectos secundarios (por ejemplo: aquellas que asignan un valor a una variable) y las que de alguna manera son evaluadas y resuelven un valor.
La expresión x = 7 es un ejemplo del primer tipo. Esta expresión usa el operador = para asignar el valor siete a la variable x. La expresión en sí misma evalúa a siete.
El código 3 + 4 es un ejemplo del segundo tipo de expresiones. Esta expresión usa el operador + para sumar tres y cuatro sin asignar el valor (siete) a ninguna variable.
JavaScript cuenta con las siguientes categorías de expresiones:
- Aritméticas: evalúan a un número, por ejemplo 3.14159. (Usos generales Operadores aritméticos.)
- Cadenas de caracteres: evalúan a una cadena de caracteres, por ejemplo, "Juan" o "234". (Usos generales Operadores de cadenas de caracteres.)
- Lógicas: evalúan a true o false. (A menudo involucran a los Operadores lógicos.)
- Expresiones primarias: Palabras clave básicas y expresiones generales en JavaScript.
- Expresiones al lado izquierdo: Los valores izquierdos son el destino de una asignación.
Estructuras de Control y Manejo de Errores
Control de Flujo
Sentencia de Bloque: a sentencia de bloque es el tipo de sentencia más básico y se utiliza para agrupar sentencias. El bloque se delimita entre un par de llaves:
{
sentencia_1;
sentencia_2;
.
.
.
sentencia_n;
}
Sentencias Condicionales: Una sentencia condicional es un conjunto de comandos que se ejecutan si una condición es verdadera. JavaScript soporta dos sentencias condicionales: if...else y switch.
Se utiliza la sentencia if para comprobar si la condición lógica es verdadera. Se utiliza la opción else para ejecutar un sentencia si la condición es falsa. A continuación se muestra un ejemplo de if...else:
if (condición) {
sentencia_1;
} else {
sentencia_2;
}
Manejo de Excepciones
Puedes lanzar excepciones usando la sentencia throw y manejarlas usando las sentencias try...catch.
Sentencia Throw: Prácticamente cualquier objecto puede ser lanzado en JavaScript. Sin embargo, no todos los objetos lanzados son creados igual. Mientras que es bastante común para lanzar números o strings como errores, frecuentemente son más efectivos utilizar uno de los tipos de excepciones específicamente creados para este proposito:
Try... Catch: La sentencia try...catch marca un bloque de instrucciones a intentar que pueden causar alguna excepción, y declarar una o más respuestas en caso de que una excepción sea arrojada. Si una excepción es arrojada, la sentencia try...catch se encarga de atraparla.
Bloque Catch: Un bloque catch es usado para manejar todas las excepciones que pueden ser generadas en el bloque try.
catch (catchID) {
instrucciones
}
Bloque Finally: El bloque finally contiene instrucciones para ejecutar luego de la ejecución del bloque try y el bloque catch pero antes de las instrucciones ubicadas luego de la sentencia try...catch. El bloque finally se ejecuta cuando se haya arrojado o no una excepción. Si una excepción es arrojada, las instrucciones en el bloque finally se ejecutan incluso si no existe un bloque catch que maneje la excepción.
Funciones en JavaScript
¿Qué es una función en JavaScript?
En términos generales, una función es un "subprograma" que puede ser llamado por código externo (o interno en caso de recursión) a la función. Al igual que el programa en sí mismo, una función se compone de una secuencia de declaraciones, que conforman el llamado cuerpo de la función. Se pueden pasar valores a una función, y la función puede devolver un valor.
Partes de una Función
Tipos de Funciones
Funciones con Parámetros
los parámetros nos sirven para llamar a nuestras funciones con unos datos específicos para que los procese. Y en cada llamada, podemos darle unos parámetros diferentes, que harán que pueda comportarse de forma diferente, si ese es el comportamiento que le hemos programado.
Funciones Recursivas
Las funciones recursivas son aquellas que se llaman a sí mismas. Existen multitud de técnicas para desarrollar este tipo de funciones, ya que sus usos son muy diversos, pero fundamentalmente hay que tener en consideración que son funciones peligrosas, porque si no controlamos su ejecución, se estarán ejecutando indefinidamente, como en el caso de los bucles infinitos. La diferencia con los bucles infinitos es que dependiendo de la implementación del intérprete de JavaScript, es posible que rompamos la pila de memoria.
Funciones Flecha
Una expresión de función flecha (también conocida como función flecha gruesa o fat arrow function en inglés) tiene una sintaxis más corta comparada con las expresiones de función y not tiene su propio this, arguments, super o new.target. Las funciones flecha son siempre funciones anónimas. Véase también esta entrada en el blog hacks.mozilla.org : "ES6 In Depth: Arrow functions" (en inglés).
¿Qué es un Parámetro?
En JavaScript, los parámetros de funciones están establecidos por defecto a undefined. Sin embargo, en ciertas situaciones puede ser útil establecerlos a un valor suministrado por defecto diferente. Es entonces cuando los parámetros por defecto pueden ayudar.
En el pasado, la estrategia general para establecer los parámetros por defecto era comprobar los valores de éstos en el cuerpo de la función y asignar un valor si estos eran undefined. Si en el siguiente ejemplo ningún valor es suministrado para b durante el llamado, su valor sería undefined cuando se evalúe a*b; y la llamada de multiply retornaría NaN. Sin embargo, esto se evita con la segunda línea en este ejemplo:
Funciones Predeterminadas
Funciones Útiles para Cadenas de Textos
length
, calcula la longitud de una cadena de texto (el número de caracteres que la forman)var mensaje = "Hola Mundo";
var numeroLetras = mensaje.length; // numeroLetras = 10
+
, se emplea para concatenar varias cadenas de textovar mensaje1 = "Hola";
var mensaje2 = " Mundo";
var mensaje = mensaje1 + mensaje2; // mensaje = "Hola Mundo"
Además del operador
+
, también se puede utilizar la función concat()
var mensaje1 = "Hola";
var mensaje2 = mensaje1.concat(" Mundo"); // mensaje2 = "Hola Mundo"
Las cadenas de texto también se pueden unir con variables numéricas:
var variable1 = "Hola ";
var variable2 = 3;
var mensaje = variable1 + variable2; // mensaje = "Hola 3"
Cuando se unen varias cadenas de texto es habitual olvidar añadir un espacio de separación entre las palabras:
var mensaje1 = "Hola";
var mensaje2 = "Mundo";
var mensaje = mensaje1 + mensaje2; // mensaje = "HolaMundo"
Los espacios en blanco se pueden añadir al final o al principio de las cadenas y también se pueden indicar forma explícita:
var mensaje1 = "Hola";
var mensaje2 = "Mundo";
var mensaje = mensaje1 + " " + mensaje2; // mensaje = "Hola Mundo"
toUpperCase()
, transforma todos los caracteres de la cadena a sus correspondientes caracteres en mayúsculas:var mensaje1 = "Hola";
var mensaje2 = mensaje1.toUpperCase(); // mensaje2 = "HOLA"
toLowerCase()
, transforma todos los caracteres de la cadena a sus correspondientes caracteres en minúsculas:var mensaje1 = "HolA";
var mensaje2 = mensaje1.toLowerCase(); // mensaje2 = "hola"
charAt(posicion)
, obtiene el carácter que se encuentra en la posición indicada:var mensaje = "Hola";
var letra = mensaje.charAt(0); // letra = H
letra = mensaje.charAt(2); // letra = l
indexOf(caracter)
, calcula la posición en la que se encuentra el carácter indicado dentro de la cadena de texto. Si el carácter se incluye varias veces dentro de la cadena de texto, se devuelve su primera posición empezando a buscar desde la izquierda. Si la cadena no contiene el carácter, la función devuelve el valor -1
:var mensaje = "Hola";
var posicion = mensaje.indexOf('a'); // posicion = 3
posicion = mensaje.indexOf('b'); // posicion = -1
Su función análoga es
lastIndexOf()
:lastIndexOf(caracter)
, calcula la última posición en la que se encuentra el carácter indicado dentro de la cadena de texto. Si la cadena no contiene el carácter, la función devuelve el valor -1
:var mensaje = "Hola";
var posicion = mensaje.lastIndexOf('a'); // posicion = 3
posicion = mensaje.lastIndexOf('b'); // posicion = -1
La función
lastIndexOf()
comienza su búsqueda desde el final de la cadena hacia el principio, aunque la posición devuelta es la correcta empezando a contar desde el principio de la palabra.substring(inicio, final)
, extrae una porción de una cadena de texto. El segundo parámetro es opcional. Si sólo se indica el parámetro inicio
, la función devuelve la parte de la cadena original correspondiente desde esa posición hasta el final:var mensaje = "Hola Mundo";
var porcion = mensaje.substring(2); // porcion = "la Mundo"
porcion = mensaje.substring(5); // porcion = "Mundo"
porcion = mensaje.substring(7); // porcion = "ndo"
Si se indica un
inicio
negativo, se devuelve la misma cadena original:var mensaje = "Hola Mundo";
var porcion = mensaje.substring(-2); // porcion = "Hola Mundo"
Cuando se indica el inicio y el final, se devuelve la parte de la cadena original comprendida entre la posición inicial y la inmediatamente anterior a la posición final (es decir, la posición
inicio
está incluida y la posición final
no):var mensaje = "Hola Mundo";
var porcion = mensaje.substring(1, 8); // porcion = "ola Mun"
porcion = mensaje.substring(3, 4); // porcion = "a"
Si se indica un
final
más pequeño que el inicio
, JavaScript los considera de forma inversa, ya que automáticamente asigna el valor más pequeño al inicio
y el más grande al final
:var mensaje = "Hola Mundo";
var porcion = mensaje.substring(5, 0); // porcion = "Hola "
porcion = mensaje.substring(0, 5); // porcion = "Hola "
split(separador)
, convierte una cadena de texto en un array de cadenas de texto. La función parte la cadena de texto determinando sus trozos a partir del carácter separador
indicado:var mensaje = "Hola Mundo, soy una cadena de texto!";
var palabras = mensaje.split(" ");
// palabras = ["Hola", "Mundo,", "soy", "una", "cadena", "de", "texto!"];
Con esta función se pueden extraer fácilmente las letras que forman una palabra:
var palabra = "Hola";
var letras = palabra.split(""); // letras = ["H", "o", "l", "a"]
Funciones Útiles para Arrays
length
, calcula el número de elementos de un arrayvar vocales = ["a", "e", "i", "o", "u"];
var numeroVocales = vocales.length; // numeroVocales = 5
concat()
, se emplea para concatenar los elementos de varios arraysvar array1 = [1, 2, 3];
array2 = array1.concat(4, 5, 6); // array2 = [1, 2, 3, 4, 5, 6]
array3 = array1.concat([4, 5, 6]); // array3 = [1, 2, 3, 4, 5, 6]
join(separador)
, es la función contraria a split()
. Une todos los elementos de un array para formar una cadena de texto. Para unir los elementos se utiliza el carácter separador
indicadovar array = ["hola", "mundo"];
var mensaje = array.join(""); // mensaje = "holamundo"
mensaje = array.join(" "); // mensaje = "hola mundo"
pop()
, elimina el último elemento del array y lo devuelve. El array original se modifica y su longitud disminuye en 1 elemento.var array = [1, 2, 3];
var ultimo = array.pop();
// ahora array = [1, 2], ultimo = 3
push()
, añade un elemento al final del array. El array original se modifica y aumenta su longitud en 1 elemento. (También es posible añadir más de un elemento a la vez)var array = [1, 2, 3];
array.push(4);
// ahora array = [1, 2, 3, 4]
shift()
, elimina el primer elemento del array y lo devuelve. El array original se ve modificado y su longitud disminuida en 1 elemento.var array = [1, 2, 3];
var primero = array.shift();
// ahora array = [2, 3], primero = 1
unshift()
, añade un elemento al principio del array. El array original se modifica y aumenta su longitud en 1 elemento. (También es posible añadir más de un elemento a la vez)var array = [1, 2, 3];
array.unshift(0);
// ahora array = [0, 1, 2, 3]
reverse()
, modifica un array colocando sus elementos en el orden inverso a su posición original:var array = [1, 2, 3];
array.reverse();
// ahora array = [3, 2, 1]
Funciones Útiles par Números
NaN
, (del inglés, "Not a Number") JavaScript emplea el valor NaN
para indicar un valor numérico no definido (por ejemplo, la división 0/0
).var numero1 = 0;
var numero2 = 0;
alert(numero1/numero2); // se muestra el valor NaN
isNaN()
, permite proteger a la aplicación de posibles valores numéricos no definidosvar numero1 = 0;
var numero2 = 0;
if(isNaN(numero1/numero2)) {
alert("La división no está definida para los números indicados");
}
else {
alert("La división es igual a => " + numero1/numero2);
}
Infinity
, hace referencia a un valor numérico infinito y positivo (también existe el valor –Infinity
para los infinitos negativos)var numero1 = 10;
var numero2 = 0;
alert(numero1/numero2); // se muestra el valor Infinity
toFixed(digitos)
, devuelve el número original con tantos decimales como los indicados por el parámetro digitos
y realiza los redondeos necesarios. Se trata de una función muy útil por ejemplo para mostrar precios.var numero1 = 4564.34567;
numero1.toFixed(2); // 4564.35
numero1.toFixed(6); // 4564.345670
numero1.toFixed(); // 4564
Funciones Anidadas en JavaScript
Se puede anidar una función dentro de una función. La función anidada (interna) es privada a su función contenedora (externa). También forma un cierre. Un cierre, es una expresión (típicamente una función) que puede tener variables libres junto con un entorno que ata esas variables (que "cierra" la expresión).
Dado que una función anidada es un cierre, esto significa que una función anidada puede "heredar" los argumentos y variables de su función contenedora. En otras palabras, la función interna contiene el ámbito de la función externa.
En resumen:
- La función interna sólo se puede acceder a partir de sentencias dentro de la función externa.
- La función interna forma un cierre: la función interna puede utilizar los argumentos y variables de la función externa, mientras que la función externa no puede utilizar los argumentos y las variables de la función interna.
Suscribirse a:
Entradas (Atom)