Tironemota

SQL

SQL

Buscar:
Columna 1
ÍNDICE
Comandos
Comando SELECT (Consulta de selección)
Comando INSERT INTO (Añadir un registro)
Comando UPDATE (Actualizar datos)
Comando DELETE (Eliminar registros)
Cláusulas
Cláusula FROM (Tabla a utilizar)
Cláusula GROUP BY (Agrupa los registros)
Cláusula HAVING (Condiciones por grupo)
Cláusula ORDER BY (Ordenar los registros)
Cláusula WHERE (Condición de los registros seleccionados)
Predicados
Predicado ALL (Devuelve todos los registros)
Predicado ANY (Indica que la condición se cumplirá si la comparación es cierta)
Predicado BETWEEN ... AND (Comprueba que el valor esta dentro de un intervalo)
Predicado DISTINCT (Omite datos duplicados)
Predicado DISTINCTROW (Registros diferentes)
Predicado EXISTS (Devuelve un valor verdadero si el resultado de una subconsulta devuelve resultados.)
Predicado IN (Comprueba si un campo se encuentra dentro de un determinado rango.)
Predicado LIKE (Compara un campo con una cadena alfanúmerica.)
Predicado TOP (Determinado número de registros)
Operadores
Funciones de agregado
Función AVG() (Utilizada para calcular el promedio de los valores de un campo determinado)
Función COUNT() (Utilizada para devolver el número de registros de la selección)
Función MAX() (Utilizada para devolver el valor más alto de un campo especificado)
Función MIN() (Utilizada para devolver el valor más bajo de un campo especificado)
Función SUM() (Utilizada para devolver la suma de todos los valores de un campo determinado)
Tipos de datos
Tipos de datos Integer (Valores enteros con signo)
Tipos de datos Numeric(n,m) (Números reales hasta 18 digitos, con decimales)
Tipos de datos Decimal(n,m) (Igual que el tipo numeric)
Tipos de datos Float (Número de coma flotante)
Tipos de datos char(n) (Almacena de 1 a 255 caracteres alfanumericos)
Tipos de datos varchar(n) (Igual que el tipo char)
Tipos de datos Date (Almacena fechas, con día, mes y año)
Tipos de datos Datetime (Almacena fechas con fecha y hora)
Tipos de datos Bit (Almacena un 0 ó no cero)
Tipos de datos Image (Almacena imágenes en formato binario)
Tipos de datos Text (Almacena texto en formato binario)
AS (Asignar un alias)
JOIN (Tablas relacionadas)
INNER JOIN (Solo registros relacionados entre tablas)
LEFT JOIN (Relación con tabla a la izquierda)
RIGHT JOIN (Relación con tabla a la derecha)
Cálculos en las consultas
SELECT INTO
ALTER TABLE Instrucción utilizada para modificar una tabla.
ASC Orden ascendente.
CREATE TABLE Sentencia para crear una tabla.
DESC Orden descendente
DROP Palabra clave que indica eliminar.
DROP TABLEInstrucción utilizada para eliminar una tabla.
INSERT Insertar filas en la tabla.
PERCENT Porcentaje de registros.
UNIQUE Palabra clave, especifica que no pueden existir claves duplicadas en el indice.

Comandos 08/10/2022

SELECT (Consulta de selección)

Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado.

La sintaxis general de una consulta SQL es la siguiente:

SELECT [DISTINCT o ALL] <* ó ListaDeLosCampos>
FROM <NombreDeOLasTablas>
[WHERE <Condición> [{ AND|OR <Condición>}]]
[GROUP BY <NombreDelCampo> [, ListaDeCampos]]
[HAVING <condición> [{ AND|OR <Condición>}]]
[ORDER BY <NombreDelCampo> [ASC|DESC] [{[, ListaDeCampos [ASC|DESC]]}]]

La palabra clave DISTINCT permite visualizar solo resultados únicos, al contrario que los resultados duplicados que se mostrarán con la palabra clave ALL. Si no se utiliza ninguna de las dos palabras clave, se mostrarán datos repetidos.

Cuando se desea extraer datos de las tablas, es necesario simplemente listar los campos que se han de extraer.

SELECT Nombre, Apellido, Fecha_Nacimiento 
FROM T_Becarios

Los campos Nombre, Apellido y Fecha_Nacimiento, de la tabla T_Becarios, se mostrarán en el resultado. Cada campo seleccionado se separa del resto por una coma.

El símbolo * permite seleccionar todos los campos disponibles en las tablas que aparecen en la cláusula FROM.

INSERT INTO (Añadir un registro)

Añadir registros nuevos en una tabla existente.

Utilizado para cargar lotes de datos en la base de datos en una única operación.

Hay varios métodos para insertar nuevos datos.

1.- Añadir un registro

En primer lugar, es posible añadir un registro único con la siguiente sintaxis:

1.- INSERT INTO TablaDestino (ListaDeCampos) VALUES (ListaDeValores)

2.- INSERT INTO TablaDestino VALUES ( valor1, 'valorTexto' );

3.- INSERT INTO (campo1, campo2, campo3) VALUES ( valor1, valor2, valor3);

La lista de los campos contiene los campos que se alimentarán, cada uno separado del resto, por una coma. A cada campo se le asignará un valor, que se corresponde con el valor de la lista de valores que aparece en el mismo orden.

Es necesario tener el mismo número de campos y valores asignados, y que los tipos de valores introducidos y su orden sea idéntico. En caso contrario, la consulta se interpretará incorrectamente, incluso Access la rechazará durante su ejecución.

2.- Añadir varios registros a la vez

Para insertar varios registros en una misma consulta, tan solo debes repetir la lista de valores a insertar.

Con repetir me refiero a su estructura, ya que sus valores serán los que tu necesites insertar.

INSERT INTO TablaDestino (ListaDeCampos) VALUES (ListaDeValores1), (ListaDeValores2), (ListaDeValores3);

En esta sintaxis, en lugar de utilizar una sola lista de valores, utiliza varias listas de valores separadas por comas para la inserción.

El número de filas que puede insertar a la vez es de 1,000 filas con esta forma de la instrucción INSERT.

UPDATE (Actualizar datos)

El comando UPDATE se utiliza para actualizar los datos ya presentes en las tablas. Este comando corresponde al tipo de consulta Actualización en Access 2016. También se trata de una consulta de tipo Acción. La sintaxis general de este comando es la siguiente:

UPDATE Tabla_MAY 
SET Campo_1=valor_1 [, Campo_2=Valor_2] 
[WHERE <lista de condiciones de actualización>]

Para cada registro que responde a las condiciones propuestas, se actualizará sus campos. Si no hay ninguna condición (no hay cláusula WHERE), se actualizan todos los registros.

Ejemplo consulta de actualización:

1.- Tabla que se actualizará

[Tabla-Vehículos]

2.- Creamos consulta de actualización

[Consulta-Actualizar]

3.- Consulta vista SQL

[Consulta-Vista-SQL]
UPDATE Vehiculos SET Marca = 'FIAT' WHERE Marca = 'CHEVROLET';

Al activar la consulta, la Marca:CHEVROLET cambia a FIAT

[Actualiza-Marca-Chevrolet]

4.- Otra Consulta vista SQL

[Consulta-Vista-SQL]
UPDATE Vehiculos SET Color = 'NEGRO' WHERE Marca = 'FORD';

Al activar la consulta, el Color:Azul de la Marca:FORD cambia a NEGRO

[Actualiza-Marca-FORD]

5.- Otra Consulta vista SQL

[Consulta-Vista-SQL]
UPDATE Vehiculos SET Color = 'MARRON' WHERE Marca = 'FIAT' AND Color = 'AMARILLO';

Al activar la consulta, el color de la Marca:FIAT con Color:AMARILLO cambia a MARRON

[Actualiza-Marca-FIAT]

DELETE (Eliminar registros)

El comando DELETE permite eliminar registros. Corresponde al tipo de consulta Eliminación de Access 2016. La sintaxis general es la siguiente:

DELETE * FROM TablaAVaciar 
[WHERE <ListaDeCondiciones>]

Se eliminarán todos los registros de la tabla Tabla_A_Vaciar que se corresponden con las condiciones propuestas.

Ejemplo de consulta de eliminación de las peticiones anteriores a 2010:

DELETE * FROM T_Peticiones
WHERE Pet_Fecha<=#01/01/2010#

Cláusulas 09/10/2022

Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular.

FROM (Tabla a utilizar)

Las diferentes tablas disponibles en la base de datos de Access pueden servir de fuente de datos. Por lo tanto, cada tabla puede aparecer en la cláusula FROM, separada del resto de las tablas por una coma.

Sintaxis general:

SELECT Nombre, Apellido, Empresa 
FROM T_Becarios, T_Empresas

GROUP BY (Agrupa los registros)

Cuando se hacen cálculos en una consulta, algunas veces es necesario agrupar los campos sobre los que no se hace ningún cálculo. El cálculo solo devolverá una única línea por grupo. Las agrupaciones se hacen con la cláusula GROUP BY.

La siguiente consulta permite contar el número de formaciones por tipo de formación.

SELECT For_Tipo, COUNT(For_Tipo) AS Nb_Formacion  
FROM T_Formaciones  
GROUP BY For_Tipo

De manera general, todos los campos sobre los que no se hace ningún cálculo deben aparecer en la agrupación. Si omite un campo en la agrupación, Access se lo indicará cuando se ejecute la consulta.

HAVING (Condiciones por grupo)

Así cómo es posible filtrar los valores en los registros, también es posible aplicar criterios de filtro a los cálculos de agrupación. Para esto se usa la cláusula HAVING.

Por ejemplo, si solo se desea visualizar las formaciones cuyo número de participantes ha sido estrictamente superior a 5:

SELECT COUNT(ID_Becario), For_Tipo, For_Fecha  
FROM T_Becarios_Formaciones INNER JOIN T_Formaciones  
ON T_Becarios_Formaciones.ID_Formacion = T_Formaciones.FOR_ID  
GROUP BY For_Tipo, For_Fecha  
HAVING COUNT(ID_Becario) > 5

ORDER BY (Ordenar los registros)

Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico.

Durante la visualización de los datos resultantes de la consulta, es posible ordenarlos. La cláusula ORDER BY permite indicar en qué campos se desea realizar una ordenación. Es posible ordenar de dos maneras diferentes: creciente (ascendente), con la palabra clave ASC, y decreciente (descendiente), con la palabra clave DESC. Si no se especifica ningún orden, el orden por defecto que se aplica es el creciente (ASC). Cada campo puede tener su propio orden.

La sintaxis SQL es la siguiente:

ORDER BY Campo_1 [ASC o DESC] [, Campo_2 [ASC o DESC]]

Por ejemplo, la siguiente consulta hará que aparezcan las formaciones por orden de fechas decrecientes y los tipos por orden alfabético (creciente).

SELECT For_Tipo, For_Fecha  
FROM T_Formaciones  
ORDER BY For_Fecha DESC, For_Tipo ASC

Ejemplo: Esta consulta devuelve los campos CodigoPostal, Nombre, Telefono de la tabla Clientes ordenados por el campo Nombre.

SELECT CodigoPostal, Nombre, Telefono 
FROM Clientes 
ORDER BY Nombre;

Se pueden ordenar los registros por más de un campo, como por ejemplo:

SELECT CodigoPostal, Nombre, Telefono 
FROM Clientes 
ORDER BY CodigoPostal, Nombre;

Incluso se puede especificar el orden de los registros: ascendente mediante la cláusula (ASC se toma este valor por defecto) o descendente (DESC)

SELECT CodigoPostal, Nombre, Telefono 
FROM Clientes 
ORDER BY CodigoPostal DESC, Nombre ASC;

WHERE (Condición de los registros seleccionados)

En una consulta de extracción de datos, es posible aplicar algunos criterios de valores para filtrar los registros, según el valor de sus campos. Estos criterios se expresan en la cláusula WHERE de la consulta SQL.

SELECT Nombre, Apellido 
FROM T_Becarios 
WHERE Titulo = 'Sr.'

Esta consulta permite encontrar los nombres y los apellidos de los becarios, cuyo título es 'Sr.' (señor).

Criterios WHERE

Es posible filtrar según varios criterios: igualdad (=), diferencia (<, >, <=, >=, <>), nulidad (Is Null), correspondencia de texto (LIKE), pertenencia a un intervalo (BETWEEN) o lista (IN), etc. Los diferentes criterios se pueden combinar entre ellos gracias a los operadores booleanos (AND, OR, XOR y NOT).

Ejemplos WHERE

La siguiente consulta muestra los campos For_Tipo y For_Fecha de los registros de la tabla T_Formaciones, cuyas fechas For_Fecha están entre el 1 de enero de 2016 y el 1 de junio de 2016.

SELECT For_Tipo, For_Fecha 
FROM T_Formaciones 
WHERE For_Fecha BETWEEN #01/01/2016# AND #06/01/2016#

La siguiente consulta muestra los nombres y apellidos de los registros de la tabla T_Becarios cuyo Nombre empieza por A.

SELECT Nombre, Apellido  
FROM T_Becarios  
WHERE Nombre LIKE 'A*'

La siguiente consulta devolverá todos los datos de la tabla tCoches menos los que sean de color rojo

SELECT matricula, marca, modelo, color, kilometraje
FROM tCoches
WHERE NOT color = 'rojo';

Predicados 10/10/2022

El predicado se incluye entre la cláusula y el primer nombre del campo a recuperar, los posibles predicados son:

ALL (Devuelve todos los registros)

Si no se incluye ninguno de los predicados se asume ALL. El Motor de base de datos selecciona todos los registros que cumplen las condiciones de la instrucción SQL. No es conveniente abusar de este predicado ya que obligamos al motor de la base de datos a analizar la estructura de la tabla para averiguar los campos que contiene, es mucho más rápido indicar el listado de campos deseados.

SELECT ALL FROM Empleados;
SELECT * FROM Empleados;

TOP (Determinado número de registros)

Devuelve un cierto número de registros que entran entre al principio o al final de un rango especificado por una cláusula ORDER BY. Supongamos que queremos recuperar los nombres de los 25 primeros estudiantes del curso 1994:

SELECT TOP 25 Nombre, Apellido 
FROM Estudiantes
ORDER BY Nota DESC;

Si no se incluye la cláusula ORDER BY, la consulta devolverá un conjunto arbitrario de 25 registros de la tabla Estudiantes .El predicado TOP no elige entre valores iguales. En el ejemplo anterior, si la nota media número 25 y la 26 son iguales, la consulta devolverá 26 registros. Se puede utilizar la palabra reservada PERCENT para devolver un cierto porcentaje de registros que caen al principio o al final de un rango especificado por la cláusula ORDER BY. Supongamos que en lugar de los 25 primeros estudiantes deseamos el 10 por ciento del curso:

SELECT TOP 10 PERCENT Nombre, Apellido 
FROM Estudiantes
ORDER BY Nota DESC;

El valor que va a continuación de TOP debe ser un Integer sin signo. TOP no afecta a la posible actualización de la consulta.

DISTINCT (Omite datos duplicados)

Omite los registros que contienen datos duplicados en los campos seleccionados. Para que los valores de cada campo listado en la instrucción SELECT se incluyan en la consulta deben ser únicos.

Por ejemplo, varios empleados listados en la tabla Empleados pueden tener el mismo apellido. Si dos registros contienen López en el campo Apellido, la siguiente instrucción SQL devuelve un único registro:

SELECT DISTINCT Apellido 
FROM Empleados;

Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos indicados en la cláusula SELECT posean un contenido diferente. El resultado de una consulta que utiliza DISTINCT no es actualizable y no refleja los cambios subsiguientes realizados por otros usuarios.

Podemos tambien obtener las diferentes marcas y modelos de coches ejecutando la siguiente consulta.

SELECT DISTINCT marca, modelo
FROM tCoches;

DISTINCTROW (Registros diferentes)

Devuelve los registros diferentes de una tabla, a diferencia del predicado anterior que sólo se fijaba en el contenido de los campos seleccionados, éste lo hace en el contenido del registro completo independientemente de los campo indicados en la cláusula SELECT.

SELECT DISTINCTROW Apellido 
FROM Empleados;

Si la tabla empleados contiene dos registros: Antonio López y Marta López el ejemplo del predicado DISTINCT devuelve un único registro con el valor López en el campo Apellido ya que busca no duplicados en dicho campo. Este último ejemplo devuelve dos registros con el valor López en el apellido ya que se buscan no duplicados en el registro completo.

BETWEEN ... AND

Comprueba que el valor esta dentro de un intervalo.

LIKE

Compara un campo con una cadena alfanúmerica. LIKE admite el uso de caracteres comodines.

ANY

Indica que la condición se cumplirá si la comparación es cierta para al menos un elemento del conjunto.

EXISTS

Devuelve un valor verdadero si el resultado de una subconsulta devuelve resultados.

IN

Comprueba si un campo se encuentra dentro de un determinado rango. El rango puede ser una sentencia SELECT.

Operadores 09/06/2022

OperadorUsoTipo
+SumaAritmético
-RestaAritmético
*MultiplicaciónAritmético
/DivisiónAritmético
**ExponenciaciónAritmético
^ExponenciaciónAritmético
<Menor queComparación
>Mayor queComparación
<=Menor o igual queComparación
>=Mayor o igual queComparación
<>Distinto deComparación
!=Distinto deComparación
!<No menor queComparación
!>No mayor queComparación
BETWEENIntervaloComparación
LIKEComparaciónComparación
InEspecificarComparación
ANDEs el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas.Lógico
OrEs el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta.Lógico
NOTNegación lógica. Devuelve el valor contrario de la expresión.Lógico
+Se emplea para unir datos de tipo alfanúmerico.Concatenación

Funciones de agregado 09/06/2022

Estas funciones se incorporan en las consultas SELECT y retornan un único valor al operar sobre un grupo de registros.

FunciónDescripción
AVG( )Utilizada para calcular el promedio de los valores de un campo determinado
COUNT( )Utilizada para devolver el número de registros de la selección
SUM( )Utilizada para devolver la suma de todos los valores de un campo determinado
MAX( )Utilizada para devolver el valor más alto de un campo especificado
MIN( )Utilizada para devolver el valor más bajo de un campo especificado

Tipos de datos 09/06/2022

Tipos de datos númericos
TipoDefiniciónBytes
IntegerValores enteros con signo4
Numeric(n,m)Números reales hasta 18 digitos (con decimales), donde n representa el total de digitos admitidos (normalmente denominado precisión) y m el número de posiciones decimales (esscala).5-17
Decimal(n,m)Igual que el tipo numeric.5-17
FloatNúmero de coma flotante, este tipo de datos se suele utilizar para los valores en notación cientifica.4-8
Tipos de datos alfanumericos
TipoDefiniciónBytes
char(n)Almacena de 1 a 255 caracteres alfanumericos. Este valor viene dado por n, y es el tamaño utilizado en disco para almacenar dato.
Es decir si defino un campo como char(255), el tamaño real del campo será de 255, aunque el valor solo contenga 100.
0-255
varchar(n)Igual que el tipo char, con la salvedad que varchar almacena únicamente los bytes que contenga el valor del campo.0-255
Nota: El tamaño del campo varía en función de cada base de datos, siendo 255 el valor estandar. En realidad el tamaño viene delimitado por el tamaño de las páginas de datos, para SQL Server el limite esta en 8000 bytes (8000 caracteres), siempre y cuando tengamos definido el tamaño de la página de datos a 8K
Tipos de datos fecha
TipoDefiniciónBytes
DateAlmacena fechas, con día, mes y año8
DatetimeAlmacena fechas con fecha y hora4
Tipos de datos lógicos
TipoDefiniciónBytes
BitAlmacena un 0 ó no cero. Según las bases de datos será 1 ó -1. Se aplica la lógica booleana, 0 es falso y no cero verdadero.1 bit
Tipos de datos BLOB
TipoDefiniciónBytes
ImageAlmacena imágenes en formato binario, hasta un máximo de 2 Gb de tamaño0-2 Gb
TextAlmacena texto en formato binario, hasta un máximo de 2 Gb de tamaño.0-2 Gb

AS (Asignar un alias) 20/10/2022

Es posible añadir tantas columnas como se quiera en una consulta (con el límite de 255 campos máximo). Para esto se usa la palabra clave AS. Este operador también permite asignar un nombre a cómo queremos ver un campo calculado.

Ejemplo de alias utilizado para el número de formaciones por fecha:

SELECT COUNT(For_Fecha) AS Num_Formacion, For_Fecha AS Fecha_Formacion 
FROM T_Formaciones   
GROUP BY For_Fecha

JOIN (Tablas relacionadas) 20/10/2022

Es posible indicar en la consulta si se deben tener en cuenta algunas correspondencias entre las diferentes tablas. Hay tres tipos de correspondencias SQL en Access:

SELECT *
FROM Tabla_1 [INNER o LEFT o RIGHT] JOIN Tabla_2
ON <condiciones del join>

INNER JOIN (Solo registros relacionados entre tablas)

El join INNER JOIN permite tener en cuenta solo los registros para los que existe una correspondencia exacta entre las tablas.

SELECT Nombre, Apellido, Empresa 
FROM T_Becarios INNER JOIN T_Empresas 
ON T_Becarios.ID_Empresa = T_Empresas.ID_Empresa

LEFT JOIN (Relación con tabla a la izquierda)

El join izquierdo externo LEFT JOIN permite visualizar todos los registros contenidos en la tabla de la izquierda (más abajo T_Becarios), incluso si no hay correspondencia en la tabla de la derecha (más abajo T_Empresas). De esta manera, se muestran todos los nombres y apellidos de becarios, incluso si no trabajan para ninguna empresa (caso de los jubilados, estudiantes y parados, por ejemplo).

SELECT Nombre, Apellido, Empresa  
FROM T_Becarios LEFT JOIN T_Empresas  
ON T_Becarios.ID_Empresa = T_Empresas.ID_Empresa

RIGHT JOIN (Relación con tabla a la derecha)

El join derecho externo RIGHT JOIN permite visualizar todos los registros de la tabla de la derecha.

Cálculos en las consultas 20/10/2022

Es posible realizar cálculos sobre los datos a partir de las consultas SQL. Por ejemplo, determinar el número total de becarios por formación, o incluso el precio total que debe pagar una empresa por sus becarios.

Existen varias funciones en SQL (total COUNT, suma SUM, mínimo MIN, máximo MAX, etc.), que se completan con otras funciones directamente de VBA (Left, Right, Mid, DateSerial, etc.).

Por ejemplo, la siguiente consulta permite visualizar los nombres y las iniciales del apellido de todos los becarios.

SELECT Nombre, Left(Apellido,1) As Iniciales 
FROM T_Becarios

SELECT INTO 20/10/2022

De la misma manera que la consulta INSERT INTO va a añadir registros nuevos en una tabla existente, la consulta SELECT INTO va a crear una nueva tabla y añadir en ella los registros. La sintaxis general de este comando es la siguiente:

SELECT Campo_1 [, Campo_2] INTO TablaDestino  
FROM TablaOrigen  
[WHERE <lista de condiciones>]

Se va a crear una tabla TablaDestino sobre la marcha (si la tabla TablaDestino ya existe, aparecerá un mensaje de alerta indicando que ya existe y se eliminará). Cada campo de la consulta se creará en la tabla TablaDestino, y después se añadirán los registros del resultado de la consulta SELECT.

Ejemplo de consulta de inserción de las peticiones anteriores a 2010 en una tabla T_Peticiones_Archivadas

SELECT * INTO T_Peticiones_Archivadas 
FROM T_Peticiones 
WHERE Pet_Fecha<=#01/01/2010#
Actualizar Indice_Registro
UPDATE Nombre_tabla
    SET campo2 = 'valor2', campo3 = 'valor3', campo4 = 'valor4', campo5 = 'valor5'
    WHERE Campo_clave = 'valor1'
Cambiar valor de un campo
UPDATE Nombre_tabla 
    SET Nombre_columna = Valor_nuevo 
    WHERE Campo_clave = 'Número_Registro_indicado'
Consulta simple:
SELECT u.campo_clave, u.campo2, u.campo3, u.campo4, r.campo_clave, r.campo2 
    FROM Tabla_uno u 
    INNER JOIN tabla_dos r 
    ON u.campo5 = r.campo_clave 
    WHERE Campo_clave= 'Indice_Registro_Buscar'
Consulta de dos tablas; Tabla_uno será u y Tabla_dos derá d:
SELECT u.campo2, u.campo3, d.campo2 
    FROM Tabla_uno u 
    INNER JOIN Tabla_dos d 
    ON u.campo4 = d.campo1 
    WHERE u.campo1 = 'Número_Registro_indicado'
                    
Eliminar 1 columna de la tabla:
ALTER TABLE 'Nombre_tabla' 
    DROP 'Nombre_columna'
Consulta con parametros:
SELECT * FROM Nombre_tabla 
    WHERE (Campo_dos = 'Parametro_Uno' AND Campo_clave != 'Indice_Registro') 
    OR (Campo_tres = 'Parametro_dos' AND Campo_clave!= 'Indice_Registro)