corporate query
corporate query
Advanced querying involves writing complex SQL queries to retrieve, analyze, and present data in ways that
support business decisions.
Key Concepts:
Subqueries and Nested Queries: Queries within queries to fetch data based on complex conditions.
Example:
sql
Copy code
SELECT EmployeeID, FirstName, LastName
FROM Employees
WHERE Salary > (SELECT AVG(Salary) FROM Employees);
This query retrieves employees whose salaries are above the average salary.
Common Table Expressions (CTEs): Temporary result sets that can be referenced within a
SELECT, INSERT, UPDATE, or DELETE statement.
Example:
sql
Copy code
WITH SalesCTE AS (
SELECT Department, SUM(SalesAmount) AS TotalSales
FROM Sales
GROUP BY Department
)
SELECT * FROM SalesCTE WHERE TotalSales > 50000;
This CTE calculates the total sales by department and then filters departments with sales greater than
50,000.
Window Functions: Functions that perform calculations across a set of table rows that are related to
the current row.
Example:
sql
Copy code
SELECT EmployeeID, Salary,
RANK() OVER (ORDER BY Salary DESC) AS SalaryRank
FROM Employees;
Pivoting Data: Transforming rows into columns to create a more readable format, often used in
reporting.
Example:
sql
Copy code
SELECT * FROM (
SELECT Year, Quarter, Revenue
FROM Financials
) AS SourceTable
PIVOT (
SUM(Revenue)
FOR Quarter IN ([Q1], [Q2], [Q3], [Q4])
) AS PivotTable;
Example:
sql
Copy code
WITH RecursiveCTE AS (
SELECT EmployeeID, ManagerID, 1 AS Level
FROM Employees
WHERE ManagerID IS NULL
UNION ALL
SELECT e.EmployeeID, e.ManagerID, Level + 1
FROM Employees e
JOIN RecursiveCTE r ON e.ManagerID = r.EmployeeID
)
SELECT * FROM RecursiveCTE;
Data manipulation involves inserting, updating, and deleting data in the database. Management includes
maintaining the structure and integrity of the database.
Key Concepts:
Example:
sql
Copy code
INSERT INTO Employees (FirstName, LastName, Department, Salary)
VALUES ('Alice', 'Johnson', 'Finance', 60000);
Example:
sql
Copy code
UPDATE Employees
SET Salary = Salary * 1.05
WHERE Department = 'Finance';
sql
Copy code
DELETE FROM Employees
WHERE EmployeeID = 10;
Example:
sql
Copy code
MERGE INTO Employees AS Target
USING NewEmployees AS Source
ON Target.EmployeeID = Source.EmployeeID
WHEN MATCHED THEN
UPDATE SET Target.Salary = Source.Salary
WHEN NOT MATCHED THEN
INSERT (EmployeeID, FirstName, LastName, Department, Salary)
VALUES (Source.EmployeeID, Source.FirstName, Source.LastName,
Source.Department, Source.Salary)
WHEN NOT MATCHED BY SOURCE THEN
DELETE;
Example:
sql
Copy code
BEGIN TRANSACTION;
UPDATE Accounts
SET Balance = Balance - 1000
WHERE AccountID = 12345;
UPDATE Accounts
SET Balance = Balance + 1000
WHERE AccountID = 67890;
IF @@ERROR != 0
ROLLBACK TRANSACTION;
ELSE
COMMIT TRANSACTION;
Securing the database involves controlling who can access or modify the data.
Key Concepts:
Example:
sql
Copy code
GRANT SELECT, INSERT ON Employees TO HR_Manager;
REVOKE DELETE ON Employees FROM HR_Manager;
sql
Copy code
CREATE ROLE FinanceTeam;
GRANT SELECT, UPDATE ON Financials TO FinanceTeam;
Views: Create virtual tables to control access to specific columns or rows of data.
Example:
sql
Copy code
CREATE VIEW View_Sales AS
SELECT SalesPerson, SUM(SalesAmount) AS TotalSales
FROM Sales
WHERE Region = 'North'
GROUP BY SalesPerson;
Example:
sql
Copy code
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
Example:
sql
Copy code
CREATE SERVER AUDIT AuditDataChanges
TO FILE (FILEPATH = 'C:\Audit\');
4. Performance Optimization
Optimizing SQL performance is critical for handling large datasets and complex queries efficiently.
Key Concepts:
Example:
sql
Copy code
CREATE INDEX idx_Department ON Employees (Department);
Query Execution Plans: Analyze how SQL Server executes queries to find bottlenecks.
Example:
sql
Copy code
EXPLAIN SELECT * FROM Employees WHERE Department = 'IT';
Example:
sql
Copy code
CREATE PARTITION FUNCTION pfEmployee (INT)
AS RANGE LEFT FOR VALUES (1000, 2000, 3000);
Example:
sql
Copy code
SET RESULT_CACHE MODE = FORCE;
Example:
sql
Copy code
SELECT * FROM Employees
WHERE Department = 'IT'
OPTION (OPTIMIZE FOR UNKNOWN);
SQL often needs to work with other systems, whether for data exchange, reporting, or automation.
Key Concepts:
Example:
sql
Copy code
SELECT * FROM OPENQUERY(LinkedServerName, 'SELECT * FROM RemoteDB.Employees');
ETL (Extract, Transform, Load): Automate data integration from various sources.
Example:
sql
Copy code
INSERT INTO DataWarehouse.Employees (EmployeeID, Name, Department)
SELECT EmployeeID, FirstName + ' ' + LastName, Department
FROM SourceDB.Employees;
Example:
sql
Copy code
EXEC sp_OACreate 'MSXML2.ServerXMLHTTP', @object OUT;
EXEC sp_OAMethod @object, 'open', NULL, 'GET', 'https://api.example.com/data',
'false';
Example:
sql
Copy code
CREATE PROCEDURE GetEmployeeSales
@EmployeeID INT
AS
BEGIN
SELECT SUM(SalesAmount) AS TotalSales
FROM Sales
WHERE SalesPersonID = @EmployeeID;
END;
Data Export/Import: Move data between SQL Server and other formats (e.g., CSV, Excel).
Example:
sql
Copy code
BULK INSERT Employees
FROM 'C:\data\employees.csv'
WITH (
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);