SQL fácil de conocer: Volumen 1

La base de datos es MS SQL Server 2012 y los datos utilizados son los datos de prueba en el conjunto de cuentas del producto. Los significados de los campos de ejemplo son los siguientes

XSDD órdenes de venta CGDD1 orden de compra DJLX Tipo de Documento
XSDDMX Detalles de la orden de venta CGDD2 Detalles de la orden de compra YWRQ fecha comercial
DDLS El flujo de órdenes LSBH número de serie FKKHMC Nombre del cliente que paga

Consulta conjunta y uniones izquierda y derecha

1. Conexión cruzada

SELECT * FROM XSDD,XSDDMX WHERE XSDD_DDLS = '51'

XSDDMX tiene un total de 4738 líneas y XSDD tiene un total de 2803 líneas. El resultado de la consulta anterior es 4738 filas, que en realidad es el producto de la columna cuyo DDLS es 51 y las columnas de XSDDMX.

Este método de conexión comúnmente usado se llama conexión cruzada implícita , y otro método que cambia la coma entre las dos tablas para cruzar se llama explícito.

Dos, conexión interna

SELECT * FROM XSDD,XSDDMX WHERE XSDD_DDLS = XSDDMX_DDLS

Del mismo modo, existen métodos de consulta explícitos, los resultados de estos dos métodos son los mismos y ambos devuelven las filas de datos en la tabla de conexión que cumplen las condiciones de conexión y las condiciones de consulta:

SELECT * FROM XSDD inner join XSDDMX on XSDD_DDLS = XSDDMX_DDLS

3. Conexión exterior

Izquierda combinación externa:

SELECT XSDD_DDLS,CGDD1_LSBH FROM XSDD LEFT OUTER JOIN CGDD1 ON XSDD_DDLS = CGDD1_LSBH

XSDD tiene un total de líneas 2803 y CGDD1 tiene un total de líneas 1587. El resultado de la consulta es líneas 2803. Puede ver que el resultado de la consulta contiene todos los números de serie de XSDD. Para la parte que no le corresponde en CGDD1 , la columna de CGDD1 se muestra como NULL El resultado es el siguiente Como se muestra a la izquierda

Unión exterior derecha:

SELECT XSDD_DDLS,CGDD1_LSBH FROM XSDD RIGHT OUTER JOIN CGDD1 ON XSDD_DDLS = CGDD1_LSBH

El resultado de la consulta es de 1587 líneas y el resultado de la consulta es la imagen de la derecha. De hecho, se puede resumir simplemente de la siguiente manera: NULL está en el lado derecho de LEFT y NULL está en el lado izquierdo de RIGHT

    

Palabras clave: Agrupar por

Esta es una palabra clave muy utilizada, pero al principio, debido a la falta de competencia en esta función, ocurrieron algunos problemas que afectaron la eficiencia.

Su aplicación en realidad se enfoca en funciones como las estadísticas:

INSERT INTO XSFXHZ 
SELECT XSFXMX_DJLX,'KH',XSFXMX_FKKH,XSFXMX_FKKHMC,'93',ISNULL(sum(XSFXMX_HSJE),0) , 
       XSFXMX_ZGBH FROM XSFXMX 
WHERE  XSFXMX_YWRQ BETWEEN CONVERT(varchar(8),@year)+@s3sta AND          
       CONVERT(varchar(8),@year)+@s3end
GROUP  BY XSFXMX_DJLX,XSFXMX_ZGBH,XSFXMX_FKKH,XSFXMX_FKKHMC

El campo a consultar aquí debe ser un valor fijo, combinado con la función de agrupación, podemos concluir que estos campos en realidad se pueden dividir en tres tipos,

  • La primera es una cadena ya hecha, como ' KH ', ' 93 ' aquí
  • El segundo es el campo a agrupar y consultar, como XSFXMX_DJLX
  • La tercera es la función de agregación, que calcula el valor del resultado del cálculo de la columna computable correspondiente en este grupo (en muchos casos, es sum o max, etc.)

Para los campos de Group By, están conectados por comas. En los resultados de la consulta, si uno de estos campos es diferente, formará un grupo de forma independiente. En concreto, hay varios grupos diferentes. Esto es realmente una cuestión de permutación y combinación. .

Palabras clave: unión y unión de todos 

La función es fusionar los conjuntos de resultados de las dos consultas, y el nombre del campo de resultado está sujeto al resultado de la primera consulta.

SELECT CGDD1_LSBH FROM CGDD1
UNION 
SELECT XSDD_DDLS FROM XSDD

 La diferencia entre los dos es que union all no elimina los duplicados.

SELECT CGDD1_LSBH FROM CGDD1
UNION ALL
SELECT XSDD_DDLS FROM XSDD

función

El contenido de la función se guarda en la base de datos después de la ejecución, por lo que se puede llamar directamente en la instrucción o el procedimiento almacenado después de la ejecución.

En SQL, las funciones se dividen en las siguientes tres categorías:

  • Funciones integradas: proporcionadas por el sistema y no se pueden modificar
  • Funciones escalares: funciones definidas por el usuario que devuelven un único valor
  • Función con valores de tabla: devuelve un valor de tabla

Esta vez, la función con valores de tabla se usa en el proyecto, que se escribe así

if exists(select * from sys.objects where name = 'GetDwqxFun') drop function GetDwqxFun;
go
CREATE FUNCTION GetDwqxFun(@zgid nvarchar(30))
RETURNS @TempDwlb TABLE 
(
	id nvarchar(30)
)
AS
BEGIN
    --
    INSERT INTO @TempDwlb 
    SELECT @zgid,ZWZGZD_ZGMC FROM ZWZGZD
END 

Preste atención al formato específico, solo recuerde asignar un valor a la tabla de retorno en el valor de la función.

Otras funciones integradas de uso común

obtener la fecha()

La función de esta función es obtener la fecha actual del sistema, y ​​el efecto es el siguiente

SELECT GETDATE() now

Convertir()

El papel de esta función es convertir la fecha en una función general del nuevo tipo de datos. Se puede utilizar junto con el anterior, el efecto es el siguiente:

SELECT CONVERT(varchar(100), GETDATE(), 112)

 

SQL, que a menudo es utilizado por las personas como una herramienta, es completamente simple y conveniente de operar cuando solo se usa para implementar funciones de negocios en el trabajo.Esta puede ser la razón por la cual lo olvidamos rápidamente cuando no lo usamos.

 

 

Supongo que te gusta

Origin blog.csdn.net/qq_41809961/article/details/103365939
Recomendado
Clasificación