0% found this document useful (0 votes)
31 views

Lecture 10 - SQL Best Practices

Uploaded by

vynnd51098
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views

Lecture 10 - SQL Best Practices

Uploaded by

vynnd51098
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

SQL Best Practices

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 1


Lesson Agenda

Coding Standard/Convention

Write query effectively

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 2


Section 1

SQL CODING STANDARD

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 3


SQL Coding Standard

❖ Standardization has a positive impact on any business. It requires


consistent efforts and sheers the focus of the software development
team to meet quality goals.

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 4


SQL Coding Standard

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 5


NAMING CONVENTION AND STYLES

1. Use UPPER CASE for all T-SQL constructs, excepts Types

Correct:

SELECT MAX([Salary]) FROM dbo.[EmployeeSalary]

Incorrect:

SELECT max([Salary]) from dbo.[EmployeeSalary]

2. Use lower case for all T-SQL Types and Usernames

Correct:

DECLARE @MaxValue int

Incorrect:

DECLARE @MaxValue INT

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 6


NAMING CONVENTION AND STYLES

3. Use Pascal casing for all UDO’s

Correct:

CREATE TABLE dbo.EmployeeSalary

EmployeeSalaryID INT

Incorrect:

CREATE TABLE dbo.Employeesalary

EmployeesalaryID int

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 7


NAMING CONVENTION AND STYLES

4. Avoid abbreviations and single character names

Correct:

DECLARE @RecordCount int

Incorrect:

DECLARE @Rc int

5. UDO naming must confer to the following regular expression ([a-zA-Z][a-


zA-Z0-9]).

Do not use any special or language dependent characters to name objects. Constraints can
use the underscore character.

Correct:

CREATE TABLE dbo.[EmployeeSalary]

Incorrect:

CREATE TABLE dbo.[Employee Salary]

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 8


NAMING CONVENTION AND STYLES

6. Use the following prefixes when naming objects

usp_: User stored procedures usp_: User stored procedures

ufn_: User defined functions DF_: Default constraints

view_: Views PK_: Primary Key constraints

IX_: Indexes FK_: Foreign Key constraints

CHK_: Check constraints

UNI_: Unique constraints

Correct:

CREATE PROCEDURE dbo.usp_EmployeeSelectAll

Incorrect:

CREATE PROCEDURE dbo.EmployeeSelectRetired –-without preffixed

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 9


NAMING CONVENTION AND STYLES

7. Name tables in the singular form

Correct:

CREATE TABLE dbo.[Employee]

Incorrect:

CREATE TABLE dbo.[Employees]

8. Tables that map one-to many, many-to-many relationships should be named by


concatenating the names of the tables in question, starting with the most central
table’s name.

Correct:

CREATE TABLE dbo.[EmployeeSalary]

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 10


Advantages of Implementing Coding Standards

1. Enhanced Efficiency

2. Risk of project failure is reduced

3. Minimal Complexity

4. Easy to Maintain

5. Bug Rectification

6. A Comprehensive Look

7. Cost-Efficient

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 11


SQL Coding Standard

SQL Comment

❖ Microsoft SQL Server supports two types of comments:


✓ Line comment:

✓ Block comment:

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 12


SQL Coding Standard

SQL Comment

❖ Always use comment to explain your code.

❖ Use natural/human language in comment to easy


understand.

❖ All comments should be same format.

❖ Break comment line to avoid horizontal scroll bar.

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 13


SQL Coding Standard

Naming conventions

❖ Ensure the name is unique and does not exist as a reserved


keyword.

❖ Names must begin with a letter and may not end with an
underscore.

❖ Avoid abbreviations and if you have to use them make sure


they are commonly understood.

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 14


SQL Coding Standard

Naming conventions

❖ Use a collective name or, a plural form for table names

❖ Never give a table the same name as one of its columns


and vice versa

❖ Always use the singular name for columns.

❖ Use table/column aliases for easier reading

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 15


SQL Coding Standard

Format code

❖ Always use UPPERCASE for the reserved keywords like


SELECT and WHERE.

❖ Break line to avoid horizontal scroll bar. It recommended


that start line with KEYWORD

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 16


Section 2

SQL BEST PRACTICES

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 17


SQL Best Practices

1. Avoid select *, use column names

❖ Use Column Names Instead of * in a SELECT Statement

❖ Original query:
× SELECT * FROM Students;

❖ Improved query:
✓ SELECT Name, ClassName FROM Students;

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 18


SQL Best Practices
2. Avoid including a HAVING clause in SELECT statements

❖ The HAVING clause is used to filter the rows after all the
rows are selected and it is used like a filter.

❖ It works by going through the final result table of the query


parsing out the rows that don’t meet the HAVING condition.

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 19


SQL Best Practices
2. Avoid including a HAVING clause in SELECT statements

❖ Original query

❖ Improved query

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 20


SQL Best Practices

3. Eliminate Unnecessary DISTINCT Conditions

❖ The DISTINCT keyword in


the original query is
unnecessary because the
table_name contains the
primary key p.ID, which is
part of the result set.

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 21


SQL Best Practices

3. Eliminate Unnecessary DISTINCT Conditions


❖ Original query

❖ Improved query

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 22


SQL Best Practices

4. Use UNION ALL instead of UNION

❖ The UNION ALL statement is faster than UNION


✓ UNION ALL statement does not consider duplicate s, and

✓ UNION statement does look for duplicates in a table while selection


of rows, whether or not they exist.

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 23


SQL Best Practices

5. Avoid using OR in join conditions


❖ Original query

❖ Improved query

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 24


SQL Best Practices

6. Avoid any redundant mathematics


❖ Original query

❖ Improved query

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 25


SQL Best Practices

7. Consider using COUNT

❖ COUNT(1) gets converted into COUNT(*) by SQL Server,


so there is no difference between these. The 1 is a literal, so
a COUNT('whatever') is treated as equivalent.
❖ COUNT(column_name)
✓ If the column_name definition is NOT NULL, this gets converted to
COUNT(*).
✓ If the column_name definition allows NULLs, then SQL Server
needs to access the specific column to count the non-null values on
the column.

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 26


SQL Best Practices

7. Consider using COUNT

❖ Never use COUNT(*)


✓ tt must read all columns and cause unnecessary reads.

❖ Always use COUNT(1)


✓ The primary key is the first column in the table and you want it to
read the clustered index.

❖ Always use COUNT(column_name)


✓ You can select which index it will scan.

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 27


SQL Best Practices

7. Consider using COUNT


❖ Original query

❖ Improved query

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 28


Summary

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use 29


Thank you

09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy -


30
30
Internal Use

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy