Friday, September 14, 2007

Introducción a SQL básico, parte 1

SQL, SEQUEL pronunciada, es la lengua de estándar para tener acceso a bases de datos emparentadas. SQL es una abreviatura para el lenguaje de interrogación estructurado. No dejar el hecho de que es un susto de la lengua tú. Usar su funcionalidad básica es muy simple.

Aun cuando SQL es un estándar, cada vendedor tiene sus propias extensiones y limitaciones. Oracle no es ninguna excepción. Hasta Oracle 9i, Oracle no apoyó estándar ensambla el sintaxis que fue apoyado por las bases de datos tan simples como MS-Access. Sin embargo, Oracle ha proporcionado siempre las extensiones que te hicieron una plataforma muy robusta para todo del acceso de usuario general a las preguntas ad hoc a los usos en tiempo real del alto rendimiento al almacenamiento de los datos.

En este artículo, cubriré el SQL básico. Las preguntas en este artículo funcionarán contra la mayoría de la cualquier base de datos de Oracle. Los objetos contra los cuales estamos preguntando diferencian entre los vendedores de la base de datos. Seguiré este artículo pronto con un artículo que describe más funcionalidad avanzada del SQL y cómo esa funcionalidad diferencia entre Oracle, MySQL y PostgreSQL.


El sintaxis más básico del SQL comienza con una cláusula y una a SELECTAS de la cláusula. Una cláusula SELECT dice a base de datos LO QUE deseas seleccionar. A FROM la cláusula dice a base de datos dónde encontrar que los datos.

Funcionar SQL*Plus (descrito en el artículo que mencioné arriba), conexión como cualquier usuario tienes disponible y entras:

SELECT table_name
FROM all_tables;


Cuando funciono mi pregunta, consigo una lista de las tablas seguidas por el texto “113 filas seleccionadas.”. La cláusula SELECT es TABLE_NAME y FROM cláusula son los all_tables. El punto y coma en el extremo dice a Oracle que hayas terminado tu comando. DEBES incorporar un punto y coma o una raya vertical antes de que Oracle te procese comando.

Esto era un comando muy útil pero podría ser hecho más útil. La lista de tablas era justa que, una lista. Si buscáramos una tabla específica, sería duro con una lista desordenada como eso. Intentemos poner una cierta orden a ella.

Entrar:

SELECT table_name
FROM all_tables
ORDER BY table_name
/



La autorización, allí es tres diferencias aquí. No hay punto y coma sino que hay una raya vertical, “/”. La raya vertical también dice a Oracle que hayas terminado un comando. La raya vertical debe aparecer la columna 1 del ion en una línea por sí mismo. Un punto y coma puede seguir dondequiera mientras no haya líneas en blanco entre él y el comando.

El tipo raya vertical en una línea por sí mismo y Oracle ejecutará nuevamente el comando anterior. Ahora intentarlo.

Autorización, también agregamos una ORDER BY cláusula a nuestro comando. La ORDER BY dice Oracle a, extrañamente bastante, pide el sistema del resultado. ¿Qué pidió cerca? TABLE_NAME.

Ahora que es mucho más útil. Puedes enrollar a través de la lista y encontrar una tabla específica. La voluta a través de ella ahora y encuentra la tabla, DUAL. Si no ves esta tabla, algo no se configura correctamente en tu base de datos ni se configura correctamente con tu usuario. DUAL es una tabla especial proporciona por Oracle. Debe siempre tener una fila y solamente tener una columna. Esa columna, DUMMY, debe siempre tener el valor “X”.

Entrar:

SELECT table_name
FROM all_tables
WHERE table_name = 'DUAL'
/



Debes conseguir solamente una sola fila detrás. Si consigues más que una sola fila, debes tener tablas DUALES múltiples en tu base de datos. Agreguemos una columna nueva a nuestro selecto:

SELECT table_name
FROM all_tables
WHERE table_name = 'DUAL'
AND OWNER = 'SYS'
/


SYS es un usuario muy especial. SYS posee la mayor parte de los objetos subyacentes en una base de datos.

Como puedes ver WHERE la cláusula limita los datos tú selecto. La oirás/lees te referiste como donde cláusula, línea del límite, línea de la restricción, etc.

Tan cómo sabía que la opinión de ALL_TABLES tenía el OWNER de la columna en ella.

Entrar:

DESC DUAL


El comando de DESC es un comando del SQL*Plus, no un comando del SQL. El comando del SQL*Plus y del SQL no es caso sensible. Ése es tú puede entrarlos en como mayúsculo, minúscula o cualquier combinación del caso. El texto en las cotizaciones, llamadas los literales, es caso sensible. El entrar del intento:

SELECT table_name
FROM all_tables
WHERE table_name = 'Dual'
/



No debes conseguir ninguna fila. ALL_TABLES, y la mayoría de las otras opiniones del diccionario de los datos, siempre datos del almacén en mayúscula. Hay una manera de crear objetos en un caso más bajo y mezclado pero considero que una tan mala práctica que no quisiera que fuera el que está para demostrarte cómo. ; -)

SQL proporciona las funciones útiles que puedes ejecutar en tu seleccionas para modificar datos. Suponer que deseamos encontrar el tercer carácter del nombre de la tabla para cada tabla. Entraríamos:

SELECT table_name, substr(table_name, 3, 1)
FROM all_tables
/


Puedes ver que hay dos columnas en ti lista de la vuelta. SUBSTR es una función del SQL que significa subsecuencia. Básicamente, vuelve un subconjunto del valor en una secuencia.

Si deseaste ver si un valor está en una secuencia podrías entrar:

SELECT table_name, instr(table_name, 'A')
FROM all_tables
/


INSTR es una función que encuentra la localización de una subsecuencia en una secuencia. La llamada de función antedicha dice vuelta la localización de la subsecuencia A para el table_name de la columna de los all_tables de la tabla. Si la columna nueva es un 0, ese nombre de la tabla no contiene un A. Si es un número más arriba de 0, que la primera localización en el nombre de la tabla del carácter A.

Y ése es SQL básico en una cáscara de nuez. Todo este sintaxis trabajará en la mayoría de la cualquier base de datos pero solamente Oracle tiene la tabla DUAL. Los diccionarios de los datos también varían entre las bases de datos. De una manera disimulada, también te he introducido a conceptos más avanzados de Oracle como la tabla DUAL y un diccionario de los datos.

Cubrimos hoy el SELECT, FROM, WHERE ORDER BY cláusulas del SQL. SELECT es CUÁL, FROM la FUENTE, WHERE está el LÍMITE y la ORDER BY es la ORDEN DE. Con estas cuatro cláusulas, puedes tener acceso apenas sobre cualquier base de datos emparentada en existencia.

Estoy trabajando en tres artículos para seguir éste. Un artículo demostrará cómo ejecutar las preguntas equivalentes presentadas en este artículo contra MySQL y PostgreSQL (y de tal modo describir sus diccionarios de los datos), una cubierta SQL avanzado del artículo (y cómo diferencian las otras bases de datos) y un artículo sobre tipos de datos.

Los tipos de datos son la base de cualquier base de datos. Oracle, MySQL y PostgreSQL ofrecen tipos de datos muy ricos. MySQL hace las cosas un pedacito complicado que PostgreSQL o Oracle. Explicaré lo que significo en el artículo próximo.

Puesto que he descrito los tres artículos que estoy trabajando actualmente encendido, fijar por favor a la discusión sobre este artículo que quisieras ver primero.

3 comments:

Abraham said...

Muy bueno como repaso, acabo de tomar un curso introductorio a Oracle y algunas sentencias son las mismas que me explicaba el instructor. Me pregunto si tienes alguna entrada en mente con lo que respecta a la seguridad en ORACLE, es el tema que mas me interesa, si cuentas con algo de informacion te agradeceria la ayuda para poder documentarme sobre el tema. Gracias y FELICIDADES por este nuevo proyecto!

LewisC said...

Gracias por el comentario. Apesadumbrado llevó tan de largo la contestación.

¡Planeo cubrir algunos asuntos en seguridad en un futuro próximo satisfago tan la lectura de la subsistencia!

Agradece.

Unknown said...

La verdad muy mal redactado.. tu español es pésimo por lo que veo.. una de dos o aprendes a redactar bien en español o redactas en tu idioma.. como yo lo veo parece traducido de otro idioma a travez de un traductor..

Me gustaria tener una opinion sobre el contenido pero no lo llegue a leer todo ya que.. como te digo.. esta pesimamente redactado..

Un saludo espero que mejores tu español.

My Zimbio
KudoSurf Me!