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.