Resumen Cap24 Deitel
Resumen Cap24 Deitel
Resumen Cap24 Deitel
- Una base de datos (pág. 1046) es una colección integrada de datos. Un sistema de gestión de bases de datos (SGBD;
pág. 1046) proporciona mecanismos para almacenar, organizar, recuperar y modificar los datos.
- Los sistemas de gestión de bases de datos más populares de hoy en día son los sistemas de bases de datos
relacionales (pág. 1046).
- SQL (pág. 1046) es el lenguaje estándar internacional que se utiliza para consultar (pág. 1046) y manipular datos
relacionales.
- Los programas se conectan e interactúan con las bases de datos relacionales a través de un software de interfaz
que facilita las comunicaciones entre un sistema de administración de bases de datos y un programa.
- Un controlador JDBC (p. 1046) permite que las aplicaciones Java se conecten a una base de datos en un SGBD en
particular y permite recuperar y manipular los datos de la base de datos.
- Una base de datos relacional (pág. 1047) almacena los datos en tablas (pág. 1047). Las tablas están compuestas por
filas (p. 1047), y las filas están compuestas por columnas en las que se almacenan los valores.
- La clave primaria de una tabla (p. 1047) tiene una única en cada fila.
- Una columna de identidad es la forma estándar de SQL para representar una columna autoincrementada (pág.
1048). La palabra clave SQL IDENTITY (pág. 1048) marca una columna como columna de identidad.
- Una clave externa es una columna en una tabla que debe coincidir con la columna de clave primaria en otra tabla.
Esto se conoce como la Regla de Integridad Referencial (pág. 1050).
- Una relación de uno a muchos (pág. 1051) entre los cuadros indica que una fila de un cuadro puede tener muchas
filas relacionadas en un cuadro separado.
- Cada columna de una clave primaria debe tener un valor, y el valor de la clave primaria debe ser único. Esto se
conoce como la Regla de Integridad de la Entidad (pág. 1051).
- Las claves externas permiten unir la información de múltiples tablas. Hay una relación de uno a muchos entre una
clave primaria y su correspondiente clave externa.
donde el asterisco (*; pág. 1052) indica que deben seleccionarse todas las columnas de tableName, y tableName
especifica la tabla de la base de datos de la que se recuperarán las filas.
- Para recuperar columnas específicas, sustituya el * por una lista de nombres de columna separados por comas.
Sección 24.4.2 Cláusula WHERE
- La cláusula opcional WHERE (p. 1053) en una consulta especifica los criterios de selección de la misma. La forma
básica de una consulta con criterios de selección (p. 1052) es
- La cláusula WHERE puede contener operadores <, >, <=, >=, =, <> y LIKE. LIKE (p. 1053) se utiliza para la coincidencia
de patrones de cadenas (p. 1053) con caracteres comodín por ciento (%) y guión bajo (_).
- Un carácter de porcentaje (%; p. 1053) en un patrón indica que una cadena que coincide con el patrón puede tener
cero o más caracteres en el lugar del carácter de porcentaje en el patrón.
- Un guión bajo (_ ; pág. 1053) en la cadena del patrón indica que un solo carácter en esa posición en el patrón.
- El resultado de una consulta se puede ordenar con la cláusula ORDENAR POR (p. 1055). La forma más simple de la
cláusula ORDER BY es
SELECCIONAR columnaNombre1, columnaNombre2, ... DESDE tablaNombre ORDENAR POR columna DESC
donde ASC especifica el orden ascendente, DESC especifica el orden descendente y la columna especifica la columna
en la que se basa el orden. El orden de clasificación por defecto es ascendente, por lo que ASC es opcional.
- Se pueden utilizar varias columnas para ordenar con una cláusula de ORDEN POR del formulario
- Las cláusulas DÓNDE y ORDENAR POR pueden combinarse en una sola consulta. Si se usa, ORDER BY debe ser la
última cláusula de la consulta.
- Un INNER JOIN (p. 1057) fusiona filas de dos tablas haciendo coincidir valores en columnas que son comunes a las
tablas. La forma básica del operador INNER JOIN es:
DE LA TABLA1
ON tabla1.columnaNombre = tabla2.columnaNombre
La cláusula ON (p. 1057) especifica las columnas de cada tabla que se comparan para determinar qué filas se unen. Si
una instrucción SQL utiliza columnas con el mismo nombre de varias tablas, los nombres de las columnas deben
estar completamente calificados (pág. 1057), anteponiéndoles el nombre de la tabla y un punto (.).
- Una declaración INSERT (p. 1058) inserta una nueva fila en una tabla. La forma básica de esta declaración es
donde tableName es la tabla en la que se inserta la fila. El nombre de la tabla va seguido de una lista de nombres de
columnas entre paréntesis. La lista de nombres de columna va seguida de la palabra clave SQL VALORES (pág. 1058)
y de una lista de valores separados por comas entre paréntesis.
- SQL utiliza comillas simples (') para delimitar las cadenas. Para especificar una cadena que contiene una sola cita en
SQL, escapar de la cita única con otra cita única (es decir, '').
- Una declaración de ACTUALIZACIÓN (p. 1059) modifica los datos de una tabla. La forma básica de una declaración
UPDATE es
Tabla de actualizaciónNombre
donde tableName es la tabla a actualizar. La palabra clave SET (p. 1059) va seguida de una lista separada por comas
de la columnaNombre = pares de valores. La cláusula opcional WHERE determina qué filas se deben actualizar.
- Una declaración de BORRAR (p. 1060) elimina las filas de una tabla. La forma más simple de una declaración
BORRAR es
donde tableName es la tabla de la que se puede eliminar una fila (o filas). El criterio opcional WHERE determina qué
filas se deben eliminar. Si se omite esta cláusula, se eliminan todas las filas de la tabla.
- La base de datos de Java pura de Oracle, Java DB (p. 1060) se instala con el JDK en Windows, Mac OS X y Linux.
- La base de datos Java DB tiene tanto una versión integrada como una versión en red.
- Java DB viene con varios archivos que te permiten configurarlo y ejecutarlo. Antes de ejecutar estos archivos desde
una ventana de comandos, debe configurar la variable de entorno JAVA_HOME para que se refiera al directorio de
instalación exacto del JDK.
- La herramienta Java DB ij le permite interactuar con la Java DB desde la línea de comandos. Puedes usarla para
crear bases de datos, ejecutar scripts SQL y realizar consultas SQL. Cada comando que introduzcas en la línea de
comandos ij> debe terminar con un punto y coma (;).
- El paquete java.sql contiene clases e interfaces para acceder a bases de datos relacionales en Java.
- Un objeto de conexión (p. 1065) gestiona la conexión entre un programa de Java y una base de datos. Los objetos
de conexión permiten a los programas crear sentencias SQL que acceden a los datos.
- El método DriverManager (p. 1065) getConnection (p. 1065) intenta conectarse a una base de datos en una URL
que especifica el protocolo de comunicación, el subprotocolo (p. 1065) de comunicación y el nombre de la base de
datos.
- El método de conexión createStatement (p. 1066) crea un objeto Statement (p. 1066), que puede utilizarse para
enviar sentencias SQL a la base de datos.
- El método de conexión executeQuery (pág. 1066) ejecuta una consulta y devuelve un objeto ResultSet (pág. 1066).
Los métodos ResultSet permiten que un programa manipule los resultados de la consulta.
- Un objeto ResultSetMetaData (pág. 1066) describe el contenido de un ResultSet. Los programas pueden utilizar
metadatos de forma programada para obtener información sobre los nombres y tipos de columna del ResultSet.
- El método ResultSetMetaData getColumnCount (p. 1066) recupera el número de columnas del ResultSet.
- El método ResultSet next (pág. 1066) posiciona el cursor ResultSet en la siguiente fila y devuelve true si la fila
existe; de lo contrario, devuelve false. Se debe llamar a este método para empezar a procesar un ResultSet porque el
cursor está posicionado incialmente antes de la primera fila.
- Es posible extraer cada columna del ResultSet como un tipo específico de Java. El método ResultSetMetaData
getColumnType (p. 1066) devuelve una constante Types (p. 1067) (paquete java.sql) que indica el tipo de la columna.
- Los métodos ResultSet get típicamente reciben como argumento un número de columna (como int) o un nombre
de columna (como String) que indica el valor de la columna a obtener.
- Cada objeto Statement sólo puede abrir un ResultSet a la vez. Cuando una secuencia devuelve un nuevo ResultSet,
la secuencia cierra el ResultSet anterior.
- El método TableModel (p. 1067) getColumnClass (p. 1068) devuelve un objeto Class que representa la superclase
de todos los objetos de una columna particular. Una TablaJT (p. 1067) utiliza esta información para configurar el
renderizador de celdas y el editor de celdas por defecto para esa columna en una TablaJT.
- El método de conexión createStatement tiene una versión sobrecargada que recibe el tipo de resultado y la
concurrencia. El tipo de resultado especifica si el cursor del ResultSet puede desplazarse en ambas direcciones o sólo
hacia adelante y si el ResultSet es sensible a los cambios. La concurrencia de resultados (p. 1072) especifica si el
ResultSet puede actualizarse.
- El método ResultSetMetaData getColumnClassName (p. 1073) obtiene el nombre de clase completo de una
columna.
- El método TableModel getColumnCount (p. 1073) devuelve el número de columnas del ResultSet.
- El método ResultSetMetaData getColumnName (p. 1073) obtiene el nombre de una columna del ResultSet.
- El método TableModel getRowCount (p. 1073) devuelve el número de filas en el ResultSet del modelo.
- El método TableModel getValueAt (p. 1073) devuelve el objeto de una fila y una columna determinadas del
ResultSet subyacente del modelo.
- El método ResultSet absolute (p. 1073) posiciona el cursor ResultSet en una fila específica.
- El método AbstractTableModel fireTableStructureChanged (p. 1074) notifica a cualquier JTable que utilice un
objeto TableModel particular como su modelo que los datos del modelo han cambiado.
- Interface RowSet (p. 1080) configura una conexión a la base de datos y ejecuta una consulta automáticamente.
- Un RowSet conectado (p. 1080) permanece conectado a la base de datos mientras el objeto está en uso. Un
RowSet desconectado (pág. 1080) se conecta, ejecuta una consulta y luego cierra la conexión.
- JdbcRowSet (p. 1080) (un RowSet conectado) envuelve un objeto ResultSet y le permite desplazarse y actualizar sus
filas. A diferencia de un objeto ResultSet, un JdbcRowSet es desplazable y actualizable por defecto.
- CachedRowSet (p. 1080), un RowSet desconectado, almacena en caché los datos de un ResultSet en la memoria. Un
CachedRowSet es desplazable y actualizable. Un CachedRowSet también es serializable.
- La clase RowSetProvider (paquete javax.sql.rowset; p. 1080) proporciona un método estático newFactory que
devuelve un objeto que implementa la interfaz RowSetFactory (paquete javax.sql.rowset) que puede utilizarse para
crear varios tipos de RowSets.
- JdbcRowSet method setCommand especifica la consulta SQL que se usará para poblar un RowSet.
- JdbcRowSet method execute ejecuta la consulta SQL. El método execute perform establece una conexión con la
base de datos, prepara la declaración de la consulta, ejecuta la consulta y almacena el ResultSet devuelto por la
consulta. La conexión, la sentencia y el ResultSet están encapsulados en el objeto JdbcRowSet.
- Las Declaraciones Preparadas (p. 1082) se compilan, por lo que se ejecutan más eficientemente que las
Declaraciones.
- Los PreparedStatements pueden tener parámetros, por lo que la misma consulta puede ejecutarse con diferentes
argumentos.
- Un parámetro se especifica con un signo de interrogación (?) en la sentencia SQL. Antes de ejecutar un
PreparedStatement, debe utilizar los métodos de conjunto de PreparedStatement para especificar los argumentos.
- El primer argumento del método PreparedStatement setString (p. 1082) representa el número del parámetro que
se está configurando y el segundo argumento es el valor de ese parámetro.
- Los números de los parámetros se cuentan desde 1, empezando por el primer signo de interrogación (?).
- El método setString escapa automáticamente los valores de los parámetros de String según sea necesario.
- Interface PreparedStatement proporciona métodos establecidos para cada tipo de SQL soportado.
- El JDBC permite a los programas invocar procedimientos almacenados (p. 1098) usando objetos CallableStatement
(p. 1098).
- El procesamiento de transacciones (pág. 1098) permite a un programa que interactúa con una base de datos tratar
una operación de la base de datos (o un conjunto de operaciones) como una operación única, conocida como
operación atómica (pág. 1099) o transacción (pág. 1099).
- Al cometer una transacción (pág. 1099) se concluye la(s) operación(es) de la base de datos; las inserciones,
actualizaciones y supresiones no pueden anularse sin realizar una nueva operación de la base de datos.
- Anular una transacción (pág. 1099) deja la base de datos en su estado anterior a la operación de la base de datos.
- Cuando autocommit está desactivado, el programa debe seguir la última sentencia SQL de la transacción con una
llamada a Connection method commit (para confirmar los cambios en la base de datos; pág. 1099) o Connection
method rollback (para devolver la base de datos a su estado anterior a la transacción; pág. 1099).