1. Database Management System
Lab Manual
Engr. Syed Zaid Irshad
This document contains Lab Theory and Tasks
It is up to the instructor how he/she divides tasks among each Labs
Department of Computer Science
Mohammad Ali Jinnah University, Karachi
Pakistan
January 11, 2023
5. Chapter 1
Visual Studio
1.1 About Software
• Visual Studio is an integrated development environment (IDE) from Microsoft.
• It is used to develop computer programs, as well as websites, web apps, web services and mobile apps.
• Visual Studio uses Microsoft software development platforms such as Windows API, Windows Forms,
Windows Presentation Foundation, Windows Store and Microsoft Silverlight.
• It can produce both native codes and managed code.
• Visual Studio includes a code editor supporting IntelliSense (the code completion component) as well as
code refactoring.
• The integrated debugger works both as a source-level debugger and a machine-level debugger.
• Other built-in tools include a code profiler, a designer for building GUI applications, a web designer, a
class designer, and a database schema designer.
• It accepts plug-ins that expand the functionality at almost every level—including adding support for source
control systems (like Subversion and Git) and adding new toolsets like editors and visual designers for
domain-specific languages or toolsets for other aspects of the software development lifecycle (like the Azure
DevOps client: Team Explorer).
• Visual Studio supports 36 different programming languages and allows the code editor and debugger to
support (to varying degrees) nearly any programming language, provided a language-specific service exists.
• Built-in languages include C, Cplusplus, Cplusplus/CLI, Visual Basic .NET, C#, F#, JavaScript,
TypeScript, XML, XSLT, HTML, and CSS.
• Support for other languages such as Python, Ruby, Node.js, and M among others is available via
plug-ins.
• Java (and J#) were supported in the past.
• The most basic edition of Visual Studio, the Community edition, is available free of charge. The slogan for
Visual Studio Community edition is ”Free, fully-featured IDE for students, open-source and individual
developers”.
1.1.1 Features
Visual Studio provides the most advanced features that the latest developers are looking for. A few of the most
important features are described as follows:
1. Code Editor: Visual Studio has the best-in-class Code editor which supports multiple functionalities. It
enables bookmarks in code to incorporate Quick Navigation. In addition to the normal text, VS also
provides Incremental Search, Regex Search, Multi-item Clipboard, and Task-list. The Editor is also capable
to support Code refactoring, Parameter Reordering, Variable and Method Renaming, Interface Extraction
and many more user-friendly functionalities.
5
6. 6 CHAPTER 1. VISUAL STUDIO
2. Debugger: The remarkable Debugger of MS Visual Studio can work both as a Machine Level Debugger as
well as a Source Level Debugger. It is capable to debug Mapped Code as well as Native Code. It is capable
to compile any programming language that supports VS. It is capable to attach itself to the currently
running process to conduct monitoring and debugging procedures on the code, provided the source code is
available. VS can incorporate Memory Dumps and Multi-threading as well.
3. Designer: Visual Studio includes several visual designers to help with the development of applications.
Some of the tools are listed below.
(a) WPS authorizes user interfaces for Windows Presentation Foundation.
(b) Windows Forms designer creates GUI applications using Windows Forms.
(c) The Class Designer authorises and edits the classes including its members and their access using UML
modelling.
(d) Visual Studio additionally includes a website editor and designer that permits websites to be authored
by dragging and dropping widgets.
(e) Mapping designer is employed by LINQ to SQL to design the mapping between information schema
and therefore the classes that encapsulate the data.
(f) The data designer is used to graphically edit information schema, as well as written tables, primary
and foreign keys and constraints.
4. Other Tools
(a) Properties editor edits the properties in the GUI in VS.
(b) It enlists all the properties available for classes, objects, and web pages.
(c) Server Explorer manages Database connections on a computer.
(d) Object browser is used to browse the namespaces in managed assemblies.
(e) Team Explorer Integrates the Axure DevOps Into the VS IDE.
(f) Data Explorer manages MS SQL databases and instances.
(g) Solution Explorer manages and browses the files in a solution.
5. Extensibility Visual Studio permits developers to write down extensions for Visual Studio to extend its
capabilities. These extensions “plug into” Visual Studio and extend its functionality. Extensions are
available in the form of macros, add-ins, and packages.
1.1.2 History
Product name Code name Release date Support Ends
Visual Studio 2022 Dev17 08/11/2021 January 13, 2032
Visual Studio 2019 Dev16 02/04/2019 April 10, 2029
Visual Studio 2017 Dev15 07/03/2017 April 13, 2027
Visual Studio 2015 Dev14 20/07/2015 October 14, 2025
Visual Studio 2013 Dev12 17/10/2013 April 9, 2024
Visual Studio 2012 Dev11 12/09/2012 January 10, 2023
Visual Studio 2010 Dev10 12/04/2010 July 14, 2020
Visual Studio 2008 Orcas 19/11/2007 April 10, 2018
Visual Studio 2005 Whidbey 07/11/2005 April 12, 2016
Visual Studio .NET 2003 Everett 24/04/2003 October 8, 2013
Visual Studio .NET (2002) Rainier 13/02/2002 July 14, 2009
Visual Studio 6.0 Aspen 02/09/1998 September 30, 2005
Visual Studio 97 Boston 19/03/1997 June 30, 2003
1.1.3 Why you should choose Visual Studio
• Visual Studio is functionally feature-rich. In most cases, Visual Code matches the requirements of most
developers perfectly without having to rely on further extensions or plugins.
7. 1.2. INSTALLATION 7
• In Visual Studio, collaborating with your entire team is pretty easy when it comes to development as well
as debugging code. The workflow is super-smooth and is loaded with all kinds of features one would need
in the long run.
• When it comes to heavy-duty code analysis, debugging as well as performance profiling, Visual Studio is
an incredible option.
• Visual Studio is pretty commonly used in the game development industry. For instance, UNITY, a
multi-platform environment integrated with Visual Studio, can work effortlessly to build cross-platform
mobile gaming applications, AR/VR applications, and more!
Organizations using Visual Studio for development
Useful Link for Students: https://visualstudio.microsoft.com/students/
1.2 Installation
1. Download software from the link.
8. 8 CHAPTER 1. VISUAL STUDIO
2. Open the software by double-clicking on it.
3. Select ASP.NET and web development, Data Storage and Processing, and .Net Desktop Development from
Workloads.
9. 1.2. INSTALLATION 9
4. Select .Net 6.0 Runtime, .Net Core 3.1 Runtime (LST), .Net Framework 4.6.2 targeting pack, and .Net
Framework 4.7 targeting pack from Individual Components. Press the Install button on the bottom right
corner. Wait for the installation to complete.
5. Press the Launch button.
10. 10 CHAPTER 1. VISUAL STUDIO
6. Sign in using your Microsoft account.
7. Select Development Settings to General. Choose a Theme colour if you wish. Press Start Visual Studio
Button.
11. 1.3. SIMPLE APPLICATION 11
1.3 Simple Application
1. Open Visual Studio, Select Create a new Project
2. Choose Windows Form Application (.NET Framework), Press Next
12. 12 CHAPTER 1. VISUAL STUDIO
3. Type Name and press Create
4. Select Textbox and Button from Common Control in Toolbox
13. 1.3. SIMPLE APPLICATION 13
5. Rename Button and Double click on it.
6. type: MessageBox.Show(textBox1.Text); in button1 Click
14. 14 CHAPTER 1. VISUAL STUDIO
7. Press Start from Ribbon
8. Type String and Press Button
15. 1.4. SIMPLE COUNTDOWN APPLICATION 15
1.4 Simple Countdown Application
1. Open Visual Studio, Select Create a new Project, Choose Windows Form Application (.NET Framework),
Press Next
2. Type Name and press Create
16. 16 CHAPTER 1. VISUAL STUDIO
3. Select Textbox and 2 Buttons from Common Control in Toolbox
4. Rename Buttons (Start, Pause) and Double click on them.
17. 1.4. SIMPLE COUNTDOWN APPLICATION 17
5. Search Timer in Toolbox and add it to the project.
6. Type Following Code in .cs file
namespace CountdownTimer {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
int second;
private void button1_Click(object sender, EventArgs e) {
timer1.Start();
}
private void button3_Click(object sender, EventArgs e) {
timer1.Stop();
label2.Text = "Paused";
}
private void timer1_Tick(object sender, EventArgs e) {
if (second > 0) {
second = second - 1;
label2.Text = second.ToString() + " Second(s)";
} else {
timer1.Stop();
label2.Text = "Times Up";
}
}
private void textBox3_TextChanged(object sender, EventArgs e) {
second = Convert.ToInt32(textBox3.Text);
}
}
}
18. 18 CHAPTER 1. VISUAL STUDIO
7. Press Start from Ribbon, Type Time and Press Start Button
1.5 User Information
1. Open Visual Studio, Select Create a new Project
19. 1.5. USER INFORMATION 19
2. Choose Windows Form Application (.NET Framework), Press Next
3. Type Name and press Create
20. 20 CHAPTER 1. VISUAL STUDIO
4. Change the form’s name from ”Form1.cs” to ”UserInfo.cs”.
5. Clicking the form’s title bar, navigate to the Properties window and set the Size property’s Width to 455
and Height to 251.
21. 1.5. USER INFORMATION 21
6. Drag a Label control onto the form; select this control, navigate to the Properties window, and set the
Name property to CountryLabel, AutoSize property to false, Location property’s X to 12 and Y to 26,
Size property’s Width to 71 and Height to 15, Text property to Enter Country.
7. Drag a TextBox control in front of the Country label. Select this control, navigate to the Properties
window, and set the Name property to Country, Location property’s X to 97 and Y to 19, Size property’s
Width to 129 and Height to 23.
22. 22 CHAPTER 1. VISUAL STUDIO
8. Drag another Label below Country, select this control, navigate to the Properties window, and set the
Name property to StateLabel, the AutoSize property to false, the Location property’s X to 12 and Y to 65,
Size property’s Width to 60 and Height to 15, Text property to Enter State.
9. Drag a TextBox control in front of the State label. Select this control, navigate to the Properties window,
and set the Name property to State, Location property’s X to 97 and Y to 58, Size property’s Width to
129 and Height to 23.
23. 1.5. USER INFORMATION 23
10. Drag a ListBox control onto the UserInfo form on the right side of the TextBox control you have added.
Select this control, navigate to the Properties window, and set the Name property to CountryList, Location
property’s X to 280 and Y to 12, Size property’s Width to 129 and Height to 79.
11. Drag a ComboBox below the ListBox that you just added. Select this control, navigate to the Properties
window, and set the Name property to StateCB, Location property’s X to 280 and Y to 117, Size property’s
Width to 129 and Height to 23.
24. 24 CHAPTER 1. VISUAL STUDIO
12. Drag two CheckBoxes below the Label controls, and name them PostalMail (location 97, 117) and Email
(location 97, 142); set their Text property to Postal Mail and E-Mail, respectively.
13. Drag two RadioButtons below the TextBox controls, and name Male (location 97, 178) and Female (location
97, 203); set their Text property to Male and Female, respectively.
25. 1.5. USER INFORMATION 25
14. Drag a Button control to the UserInfo form to the left side below the CheckBox controls; select this control,
navigate to the Properties window, and set the Name property to Add, Location property’s X to 65 and Y
to 88, Size property’s Width to 95 and Height to 23, Text property to Add.
15. Drag a Button control next to the Add button; select this control, navigate to the Properties window, and
set the Name property to RemoveCountry, Location property’s X to 166 and Y to 87, Size property’s
Width to 95 and Height to 23, Text property to Remove Country.
26. 26 CHAPTER 1. VISUAL STUDIO
16. Drag a Button control, navigate to the Properties window, and set the Name property to ShowDetails,
Location property’s X to 415 and Y to 117, Size property’s Width to 90 and Height to 23, Text property
to Show Details.
17. Type the following Code in the .cs file
namespace UserInformation {
public partial class UserInfo : Form {
public UserInfo() {
InitializeComponent();
}
private void addCountry_Click(object sender, EventArgs e) {
CountryList.Items.Add(Country.Text);
Country.Clear();
StateCB.Items.Add(State.Text);
State.Clear();
}
private void RemoveCountry_Click(object sender, EventArgs e) {
CountryList.Items.Remove(CountryList.SelectedItem);
}
private void showDetail_Click(object sender, EventArgs e) {
if (Email.Checked == true || Postmail.Checked == true &&
male.Checked == true) {
MessageBox.Show("Hello Mr, you will be contacted by either
USPS or email", "Information",MessageBoxButtons.OKCancel,
MessageBoxIcon.Information);
}
else
if (Email.Checked == true || Postmail.Checked == true &&
female.Checked == true) {
MessageBox.Show("Hello Mam, you will be contacted by either USPS
or email", "Information",MessageBoxButtons.OKCancel,
MessageBoxIcon.Information);
}
}
}
}
27. Chapter 2
SQL Server & SQL Server Management
Studio
2.1 About Software’s
• Microsoft SQL Server is a relational database management system developed by Microsoft.
• As a database server, it is a software product with the primary function of storing and retrieving data
as requested by other software applications—which may run either on the same computer or on another
computer across a network (including the Internet).
• Microsoft markets at least a dozen different editions of Microsoft SQL Server, aimed at different audiences
and for workloads ranging from small single-machine applications to large Internet-facing applications with
many concurrent users.
• SQL Server Management Studio (SSMS) is an IDE that provides a graphical interface for connecting and
working with MS SQL server.
• It was launched with Microsoft SQL Server 2005 and is used for configuring, managing, and administering
all components within Microsoft SQL Server.
2.1.1 Version
• SQL Server
– Microsoft and Sybase released version 1.0 in 1989.
– However, the partnership between these two ended in the early 1990s.
– Microsoft maintained ownership rights to the name SQL Server.
– Since the 1990s, subsequent versions of SQL Server have been released including SQL Server 2000,
2005, 2008, 2012, 2014, 2016, 2017, and 2019.
• SQL Server Management Studio
– SSMS first version was with SQL server 2005.
– SSMS remains an integral part of SQL server with SQL Server 2008, SQL Server 2012 and SQL Server
2016.
– In 2016, Microsoft started the first numerical series of versioning with the SSMS version number 16.3.
– All series include 16.x, 17.x and 18.0 as version numbers.
2.1.2 Edition
• SQL Server
– SQL Server Enterprise: It is used in high-end, large scale and mission-critical businesses. It provides
High-end security, Advanced analytics, Machine Learning, etc.
27
28. 28 CHAPTER 2. SQL SERVER & SQL SERVER MANAGEMENT STUDIO
– SQL Server Standard: It is suitable for Mid-Tier Applications and Data Marts. It includes basic
reporting and analytics.
– SQL Server WEB: It is designed for a low total cost-of-ownership option for Web hosters. It provides
scalability, affordability, and manageability capabilities for small to large-scale Web properties.
– SQL Server Developer: It is similar to an enterprise edition for the non-production environment. It is
mainly used for build, testing, and demoing.
– SQL Server Express: It is for small-scale applications and is free to use.
2.1.3 Key Components
• SQL Server
– Database Engine: This component handle storage, Rapid transaction Processing, and Securing Data.
– SQL Server: This service starts, stops, pauses, and continues an instance of Microsoft SQL Server.
The executable name is sqlservr.exe.
– SQL Server Agent: It performs the role of Task Scheduler. It can be triggered by any event or as per
demand. The executable name is sqlagent.exe.
– SQL Server Browser: This listens to the incoming request and connects to the desired SQL server
instance. The executable name is sqlbrowser.exe.
– SQL Server Full-Text Search: This lets the user run full-text queries against Character data in SQL
Tables. The executable name is fdlauncher.exe.
– SQL Server VSS Writer: This allows backup and restoration of data files when the SQL server is not
running. The executable name is sqlwriter.exe.
– SQL Server Analysis Services (SSAS): Provide Data analysis, Data mining and Machine Learning
capabilities. SQL server is integrated with R and Python language for advanced analytics. The
executable name is msmdsrv.exe.
– SQL Server Reporting Services (SSRS): Provides reporting features and decision-making capabilities.
It includes integration with Hadoop. The executable name is ReportingServicesService.exe.
– SQL Server Integration Services (SSIS): Provided Extract-Transform and Load capabilities of the
different types of data from one source to another. It can be viewed as converting raw information
into useful information. The executable name is MsDtsSrvr.exe.
2.2 Basics of SQL Server
2.2.1 Statement Types
• Data Definition Language (DDL)
– CREATE
– ALTER
– DROP
• Data Manipulation Language (DML)
– SELECT
– INSERT
– UPDATE
– DELETE
• Data Control Language (DCL)
– GRANT
– REVOKE
– DENY
29. 2.2. BASICS OF SQL SERVER 29
2.2.2 Data Types
• String
– char(n) - Fixed width character string
– varchar(n) - Variable width character string
– varchar(max) - Variable width character string
– text - Variable width character string
– nchar - Fixed width Unicode string
– nvarchar - Variable width Unicode string
– nvarchar(max) - Variable width Unicode string
– ntext - Variable width Unicode string
– binary(n) - Fixed width binary string
– varbinary - Variable width binary string
– varbinary(max) - Variable width binary string
– image - Variable width binary string 2GB
• Numeric
– bit - Integer that can be 0, 1, or NULL
– tinyint - Allows whole numbers from 0 to 255
– smallint - Allows whole numbers between -32,768 and 32,767
– int - Allows whole numbers between -2,147,483,648 and 2,147,483,647
– bigint - Allows whole numbers between -9,223,372,036,854,775,808 and 9,223,372,036,854,775,807
– decimal(p,s) - Fixed precision and scale numbers.
– numeric(p,s) - Fixed precision and scale numbers.
– smallmoney - Monetary data from -214,748.3648 to 214,748.3647
– money - Monetary data from -922,337,203,685,477.5808 to 922,337,203,685,477.5807
– float(n) - Floating precision number data from -1.79E + 308 to 1.79E + 308.
– real - Floating precision number data from -3.40E + 38 to 3.40E + 38 4 bytes
• Date and Time
– datetime - From January 1, 1753 to December 31, 9999 with an accuracy of 3.33 milliseconds
– datetime2 - From January 1, 0001 to December 31, 9999 with an accuracy of 100 nanoseconds 6-8
bytes
– smalldatetime - From January 1, 1900 to June 6, 2079 with an accuracy of 1 minute
– date - Store a date only. From January 1, 0001 to December 31, 9999
– time - Store a time only to an accuracy of 100 nanoseconds
– datetimeoffset - The same as datetime2 with the addition of a time zone offset
– timestamp - Stores a unique number that gets updated every time a row gets created or modified.
The timestamp value is based upon an internal clock and does not correspond to real-time. Each
table may have only one timestamp variable
2.2.3 Predicates
A predicate is an expression that evaluates to TRUE, FALSE, or UNKNOWN.
• IN - Determines whether a specified value matches any value in a sub-query or a list.
• BETWEEN - Specifies a range of values to test.
30. 30 CHAPTER 2. SQL SERVER & SQL SERVER MANAGEMENT STUDIO
• LIKE - Used to match characters against a specified pattern.
• CONTAINS - Searches for precise or less precise matches to single words and phrases, words within a
certain distance of one another, or weighted matches. ALL TRUE if all of the subquery values meet the
condition
• AND - TRUE if all the conditions separated by AND is TRUE
• ANY - TRUE if any of the subquery values meet the condition
• EXISTS - TRUE if the subquery returns one or more records
• NOT - Displays a record if the condition(s) is NOT TRUE
• OR - TRUE if any of the conditions separated by OR is TRUE
• SOME - TRUE if any of the subquery values meet the condition
2.2.4 Operators
• Arithmetic
– Add (+)
– Subtract (-)
– Multiply (*)
– Divide (/)
– Modulo (%)
• Bitwise
– AND (&)
– OR (|)
– Exclusive OR (∧)
• Comparison
– Equal to (=)
– Greater than (>)
– Less than (<)
– Greater than or equal to (>=)
– Less than or equal to (<=)
– Not equal to (<>)
• Compound
– Add equals (+=)
– Subtract equals (-=)
– Multiply equals (*=)
– Divide equals (/=)
– Modulo equals (%=)
– Bitwise AND equals (&=)
– Bitwise exclusive equals (∧=)
– Bitwise OR equals (| =)
2.2.5 Comments
• Single Line (−−Comment)
• Multi-line (/* Comments */)
31. 2.2. BASICS OF SQL SERVER 31
2.2.6 Functions
• String
– ASCII(character) - The ASCII() function returns the ASCII value for the specific character.
– CHAR(code) - The CHAR() function returns the character based on the ASCII code.
– CHARINDEX(substring, string, start) - The CHARINDEX() function searches for a substring in a
string, and returns the position.
– CONCAT(string1, string2, ...., string n) - The CONCAT() function adds two or more strings together.
– string1 + string2 + string n - The + operator allows you to add two or more strings together.
– CONCAT WS(separator, string1, string2, ...., string n) - The CONCAT WS() function adds two or
more strings together with a separator.
– DATALENGTH(expression) - The DATALENGTH() function returns the number of bytes used to
represent an expression.
– DIFFERENCE(expression, expression) - The DIFFERENCE() function compares two SOUNDEX
values, and returns an integer. The integer value indicates the match for the two SOUNDEX values,
from 0 to 4.
– FORMAT(value, format, culture) - The FORMAT() function formats a value with the specified
format.
– LEFT(string, number of chars) - The LEFT() function extracts a number of characters from a string
(starting from left).
– LEN(string) - The LEN() function returns the length of a string.
– LOWER(text) - The LOWER() function converts a string to lower-case.
– LTRIM(string) - The LTRIM() function removes leading spaces from a string.
– NCHAR(number code) - The NCHAR() function returns the Unicode character based on the number
code.
– PATINDEX(%pattern%, string) - The PATINDEX() function returns the position of a pattern in a
string.
– QUOTENAME(string, quote char) - The QUOTENAME() function returns a Unicode string with
delimiters added to make the string a valid SQL Server delimited identifier.
– REPLACE(string, old string, new string) - The REPLACE() function replaces all occurrences of a
substring within a string, with a new substring.
– REPLICATE(string, integer) - The REPLICATE() function repeats a string a specified number of
times.
– REVERSE(string) - The REVERSE() function reverses a string and returns the result.
– RIGHT(string, number of chars) - The RIGHT() function extracts a number of characters from a
string (starting from the right).
– RTRIM(string) - The RTRIM() function removes trailing spaces from a string.
– SOUNDEX(expression) - The SOUNDEX() function returns a four-character code to evaluate the
similarity of two expressions.
– SPACE(number) - The SPACE() function returns a string of the specified number of space characters.
– STR(number, length, decimals) - The STR() function returns a number as a string.
– STUFF(string, start, length, new string) - The STUFF() function deletes a part of a string and then
inserts another part into the string, starting at a specified position.
– SUBSTRING(string, start, length) - The SUBSTRING() function extracts some characters from a
string.
– TRANSLATE(string, characters, translations) - The TRANSLATE() function returns the string
from the first argument after the characters specified in the second argument are translated into the
characters specified in the third argument.
32. 32 CHAPTER 2. SQL SERVER & SQL SERVER MANAGEMENT STUDIO
– TRIM([characters FROM ]string) - The TRIM() function removes the space character OR other
specified characters from the start or end of a string.
– UNICODE(character expression) - The UNICODE() function returns an integer value (the Unicode
value), for the first character of the input expression.
– UPPER(text) - The UPPER() function converts a string to upper-case.
• Math/Numeric
– ABS(number) - The ABS() function returns the absolute value of a number.
– ACOS(number) - The ACOS() function returns the arc cosine of a number.
– ASIN(number) - The ASIN() function returns the arc sine of a number.
– ATAN(number) - The ATAN() function returns the arc tangent of a number.
– ATN2(a, b) - The ATN2() function returns the arc tangent of two numbers.
– AVG(expression) - The AVG() function returns the average value of an expression.
– CEILING(number) - The CEILING() function returns the smallest integer value that is larger than
or equal to a number.
– COUNT(expression) - The COUNT() function returns the number of records returned by a select
query.
– COS(number) - The COS() function returns the cosine of a number.
– COT(number) - The COT() function returns the cotangent of a number.
– DEGREES(number) - The DEGREES() function converts a value in radians to degrees.
– EXP(number) - The EXP() function returns e raised to the power of a specified number.
– FLOOR(number) - The FLOOR() function returns the largest integer value that is smaller than or
equal to a number.
– LOG(number, base) - The LOG() function returns the natural logarithm of a specified number or the
logarithm of the number to the specified base.
– LOG10(number) - The LOG10() function returns the natural logarithm of a number to base 10.
– MAX(expression) - The MAX() function returns the maximum value in a set of values.
– MIN(expression) - The MIN() function returns the minimum value in a set of values.
– PI() - The PI() function returns the value of PI.
– POWER(a, b) - The POWER() function returns the value of a number raised to the power of another
number.
– RADIANS(number) - The RADIANS() function converts a degree value into radians.
– RAND(seed) - The RAND() function returns a random number between 0 (inclusive) and 1 (exclusive).
– ROUND(number, decimals, operation) - The ROUND() function rounds a number to a specified
number of decimal places.
– SIGN(number) - The SIGN() function returns the sign of a number.
– SIN(number) - The SIN() function returns the sine of a number.
– SQRT(number) - The SQRT() function returns the square root of a number.
– SQUARE(number) - The SQUARE() function returns the square of a number.
– SUM(expression) - The SUM() function calculates the sum of a set of values.
– TAN(number) - The TAN() function returns the tangent of a number.
• Date
– CURRENT TIMESTAMP - The CURRENT TIMESTAMP function returns the current date and
time, in a ’YYYY-MM-DD hh:mm:ss.mmm’ format.
33. 2.2. BASICS OF SQL SERVER 33
– DATEADD(interval, number, date) - The DATEADD() function adds a time/date interval to a date
and then returns the date.
– DATEDIFF(interval, date1, date2) - The DATEDIFF() function returns the difference between two
dates.
– DATEFROMPARTS(year, month, day) - The DATEFROMPARTS() function returns a date from
the specified parts (year, month, and day values).
– DATENAME(interval, date) - The DATENAME() function returns a specified part of a date.
– DATEPART(interval, date) - The DATEPART() function returns a specified part of a date.
– DAY(date) - The DAY() function returns the day of the month (from 1 to 31) for a specified date.
– GETDATE() - The GETDATE() function returns the current database system date and time, in a
’YYYY-MM-DD hh:mm:ss.mmm’ format.
– GETUTCDATE() - The GETUTCDATE() function returns the current database system UTC date
and time, in a ’YYYY-MM-DD hh:mm:ss.mmm’ format.
– ISDATE(expression) - The ISDATE() function checks an expression and returns 1 if it is a valid date,
otherwise 0.
– MONTH(date) - The MONTH() function returns the month part for a specified date (a number from
1 to 12).
– SYSDATETIME() - The SYSDATETIME() function returns the date and time of the computer where
the SQL Server is running.
– YEAR(date) - The YEAR() function returns the year part for a specified date.
• Advance
– CAST(expression AS datatype(length)) - The CAST() function converts a value (of any type) into a
specified datatype.
– COALESCE(val1, val2, ...., valn) - The COALESCE() function returns the first non-null value in a
list.
– CONVERT(data type(length), expression, style) - The CONVERT() function converts a value (of
any type) into a specified datatype.
– CURRENT USER - The CURRENT USER function returns the name of the current user in the SQL
Server database.
– IIF(condition, value if true, value if false) - The IIF() function returns a value if a condition is TRUE,
or another value if a condition is FALSE.
– ISNULL(expression, value) - The ISNULL() function returns a specified value if the expression is
NULL.
– ISNUMERIC(expression) - The ISNUMERIC() function tests whether an expression is numeric.
– NULLIF(expr1, expr2) - The NULLIF() function returns NULL if two expressions are equal, otherwise,
it returns the first expression.
– SESSION USER - The SESSION USER function returns the name of the current user in the SQL
Server database.
– SESSIONPROPERTY(option) - The SESSIONPROPERTY() function returns the session settings
for a specified option.
– SYSTEM USER - The SYSTEM USER function returns the login name for the current user.
– USER NAME(id number) - The USER NAME() function returns the database user name based on
the specified id.
2.2.7 Control Flow
• BEGIN sql statement — statement block END
• BREAK
34. 34 CHAPTER 2. SQL SERVER & SQL SERVER MANAGEMENT STUDIO
• CONTINUE
• IF Boolean expression sql statement — statement block [ ELSE sql statement — statement block ]
• RETURN [ integer expression ]
• THROW [ error number — @local variable , message — @local variable , state — @local variable ]
• BEGIN TRY sql statement — statement block END TRY BEGIN CATCH [ sql statement — state-
ment block ] END CATCH
• WHILE Boolean expression sql statement — statement block — BREAK — CONTINUE
2.3 Levels of Severity
• 0-9: Informational messages that return status information or report errors that are not severe. The
Database Engine does not raise system errors with severities of 0 through 9.
• 10: Informational messages that return status information or report errors that are not severe. For
compatibility reasons, the Database Engine converts severity 10 to severity 0 before returning the error
information to the calling application.
• 11-16: Indicate errors that can be corrected by the user.
1. 11: Indicates that the given object or entity does not exist.
2. 12: A special severity for queries that do not use locking because of special query hints. In some cases,
read operations performed by these statements could result in inconsistent data since locks are not
taken to guarantee consistency.
3. 13: Indicates transaction deadlock errors.
4. 14: Indicates security-related errors, such as permission denied.
5. 15: Indicates syntax errors in the Transact-SQL command.
6. 16: Indicates general errors that can be corrected by the user.
• 17-19: Indicate software errors that cannot be corrected by the user. Inform your system administrator of
the problem.
1. 17: Indicates that the statement caused SQL Server to run out of resources (such as memory, locks,
or disk space for the database) or to exceed some limit set by the system administrator.
2. 18: Indicates a problem in the Database Engine software, but the statement completes execution,
and the connection to the instance of the Database Engine is maintained. The system administrator
should be informed every time a message with a severity level of 18 occurs.
3. 19: Indicates that a non-configurable Database Engine limit has been exceeded and the current batch
process has been terminated. Error messages with a severity level of 19 or higher stop the execution of
the current batch. Severity level 19 errors are rare and must be corrected by the system administrator
or your primary support provider. Contact your system administrator when a message with a severity
level 19 is raised. Error messages with a severity level from 19 through 25 are written to the error log.
• 20-24 Indicate system problems and are fatal errors, which means that the Database Engine task that is
executing a statement or batch is no longer running. The task records information about what occurred
and then terminates. In most cases, the application connection to the instance of the Database Engine may
also terminate. If this happens, depending on the problem, the application might not be able to reconnect.
Error messages in this range can affect all of the processes accessing data in the same database and may
indicate that a database or object is damaged. Error messages with a severity level from 19 through 24 are
written to the error log.
1. 20: Indicates that a statement has encountered a problem. Because the problem has affected only the
current task, it is unlikely that the database itself has been damaged.
2. 21: Indicates that a problem has been encountered that affects all tasks in the current database, but
it is unlikely that the database itself has been damaged.
3. 22: Indicates that the table or index specified in the message has been damaged by a software or
hardware problem. Severity level 22 errors occur rarely. If one occurs, run DBCC CHECKDB to
determine whether other objects in the database are also damaged. The problem might be in the
35. 2.4. INSTALLATION 35
buffer cache only and not on the disk itself. If so, restarting the instance of the Database Engine
corrects the problem. To continue working, you must reconnect to the instance of the Database
Engine; otherwise, use DBCC to repair the problem. In some cases, you may have to restore the
database. If restarting the instance of the Database Engine does not correct the problem, then the
problem is on the disk. Sometimes destroying the object specified in the error message can solve the
problem. For example, if the message reports that the instance of the Database Engine has found a
row with a length of 0 in a nonclustered index, delete the index and rebuild it.
4. 23: Indicates that the integrity of the entire database is in question because of a hardware or software
problem. Severity level 23 errors occur rarely. If one occurs, run DBCC CHECKDB to determine
the extent of the damage. The problem might be in the cache only and not on the disk itself. If so,
restarting the instance of the Database Engine corrects the problem. To continue working, you must
reconnect to the instance of the Database Engine; otherwise, use DBCC to repair the problem. In
some cases, you may have to restore the database.
5. 24: Indicates a media failure. The system administrator may have to restore the database. You may
also have to call your hardware vendor.
2.4 Installation
1. Download SQL Server official link.
36. 36 CHAPTER 2. SQL SERVER & SQL SERVER MANAGEMENT STUDIO
2. Open the software by double-clicking on it. Select Basic from the provided options.
3. Select Accept.
38. 38 CHAPTER 2. SQL SERVER & SQL SERVER MANAGEMENT STUDIO
6. Press the Customization Button from options.
7. Press Next till reach you reach “Feature Selection”
39. 2.4. INSTALLATION 39
8. Check Database Engine Services
9. Now Press Next till reach you reach “Database Engine Configuration”, Click “Add Current User”, and
Press Next.
40. 40 CHAPTER 2. SQL SERVER & SQL SERVER MANAGEMENT STUDIO
10. Press Install. Close the Window After Completion.
11. Now Click on ”Install SSMS”.
41. 2.4. INSTALLATION 41
12. Download setup file.
13. Open the software by double-clicking on it. Press Install.
42. 42 CHAPTER 2. SQL SERVER & SQL SERVER MANAGEMENT STUDIO
14. Press Close after completion.
2.5 Create New Login
1. Security - Login - New Login
43. 2.5. CREATE NEW LOGIN 43
2. Provide Unique Name - Select SQL Authentication - Check only Enforce a password policy
3. From Select a Page go to Server Roles - Check public and sysadmin
44. 44 CHAPTER 2. SQL SERVER & SQL SERVER MANAGEMENT STUDIO
4. From Select a Page go to User Mapping - Select Database for the New Login
46. 46 CHAPTER 3. TRANSACT-SQL STATEMENTS (BASIC)
2. Connect to Server.
3. Right-click on Databases from Object Explorer, Click on new Database
47. 3.1. LOAD DATA-SET ON SQL SERVER MANAGEMENT STUDIO 47
4. Type name & Press OK
5. Now Right click on the newly named database, Select Tasks then Import Flat File
48. 48 CHAPTER 3. TRANSACT-SQL STATEMENTS (BASIC)
6. Press Next, and provide the file path in the first textbox then press next.
7. In modify columns tab change nvarchar(50) to varchar(max) for each column, Press Next and Finish
49. 3.2. DML (DATA MANIPULATION LANGUAGE) STATEMENTS 49
8. Wait for Results to compile, press close
3.2 DML (Data Manipulation Language) Statements
1. Right Click on the newly created Database and select New Query
51. 3.2. DML (DATA MANIPULATION LANGUAGE) STATEMENTS 51
4. Display Distinct Values in one column
5. Display Count of Distinct Values for a column
52. 52 CHAPTER 3. TRANSACT-SQL STATEMENTS (BASIC)
6. Display rows having Same Value (String)
7. Display rows having the Same Value (Number)
53. 3.2. DML (DATA MANIPULATION LANGUAGE) STATEMENTS 53
8. Display rows having Greater Value
9. Display rows having Less Value
54. 54 CHAPTER 3. TRANSACT-SQL STATEMENTS (BASIC)
10. Display rows having Greater/Equal Value
11. Display rows having Less/Equal Value
55. 3.2. DML (DATA MANIPULATION LANGUAGE) STATEMENTS 55
12. Display rows having not same Value
13. Display rows having Range Values
56. 56 CHAPTER 3. TRANSACT-SQL STATEMENTS (BASIC)
14. Display rows having the same character at Start in Value
15. Display rows having the same character at End in Value
57. 3.2. DML (DATA MANIPULATION LANGUAGE) STATEMENTS 57
16. Display rows having the same character at Any Position in Value
17. Display rows having the same character at the Second Position in Value
58. 58 CHAPTER 3. TRANSACT-SQL STATEMENTS (BASIC)
18. Display rows having the same character at Start with at least 6 characters in Value
19. Display rows having different characters at Start in Value
59. 3.2. DML (DATA MANIPULATION LANGUAGE) STATEMENTS 59
20. Display rows having the same character range at Start in Value
21. Display rows having the same multiple characters at Start in Value
60. 60 CHAPTER 3. TRANSACT-SQL STATEMENTS (BASIC)
22. Display rows having the same character at the Start and end in Value
23. Display rows having Value in specified Strings
61. 3.2. DML (DATA MANIPULATION LANGUAGE) STATEMENTS 61
24. Display rows having Multiple conditions True
25. Display rows having At-least one condition True
62. 62 CHAPTER 3. TRANSACT-SQL STATEMENTS (BASIC)
26. Display rows having No Condition True
27. Display rows having Null Value
63. 3.2. DML (DATA MANIPULATION LANGUAGE) STATEMENTS 63
28. Display rows having No Null Value
29. Display Sorted rows using one column
64. 64 CHAPTER 3. TRANSACT-SQL STATEMENTS (BASIC)
30. Display Sorted rows using one column (Decreasing)
31. Display Sorted rows using Multiple columns
65. 3.2. DML (DATA MANIPULATION LANGUAGE) STATEMENTS 65
32. Display Top n Values
33. Display Top n Percent Values
66. 66 CHAPTER 3. TRANSACT-SQL STATEMENTS (BASIC)
34. Display Top n Values (using Where)
35. Display Minimum Values of a Column
67. 3.2. DML (DATA MANIPULATION LANGUAGE) STATEMENTS 67
36. Display Maximum Values of a Column
37. Display Average of a Column
68. 68 CHAPTER 3. TRANSACT-SQL STATEMENTS (BASIC)
38. Display Sum of a Column
39. Display same column with a new name
69. 3.2. DML (DATA MANIPULATION LANGUAGE) STATEMENTS 69
40. Display Column Values in groups
41. Display rows having specified values
70. 70 CHAPTER 3. TRANSACT-SQL STATEMENTS (BASIC)
42. Create Tags for each group values
43. Insert Columns in New Tables
71. 3.2. DML (DATA MANIPULATION LANGUAGE) STATEMENTS 71
44. Insert values in the row
45. Update Values
73. 3.2. DML (DATA MANIPULATION LANGUAGE) STATEMENTS 73
48. Display rows on one table by using a second table (exists)
49. Display rows on one table by using a second table (Any)
74. 74 CHAPTER 3. TRANSACT-SQL STATEMENTS (BASIC)
50. Display rows on one table by using a second table (ALL)
51. Join Two Tables using Inner Join
75. 3.2. DML (DATA MANIPULATION LANGUAGE) STATEMENTS 75
52. Join Two Tables using Left Join
53. Join Two Tables using Right Join
76. 76 CHAPTER 3. TRANSACT-SQL STATEMENTS (BASIC)
54. Join Two Tables using Outer Join
55. Take Union of Two Tables
77. 3.2. DML (DATA MANIPULATION LANGUAGE) STATEMENTS 77
56. Take Intersection of Two Tables
57. Replace Null Values (Temporary)
78. 78 CHAPTER 3. TRANSACT-SQL STATEMENTS (BASIC)
3.3 Data Definition Language (DDL)
3.3.1 Procedure/Variables for Existing Database
1. Create a Procedure
2. Execute Procedure
79. 3.3. DATA DEFINITION LANGUAGE (DDL) 79
3. Create a variable and use it in Query
3.3.2 Database
1. Create Database
80. 80 CHAPTER 3. TRANSACT-SQL STATEMENTS (BASIC)
2. For Backup Permission in C Drive, Select SQL Server 2019 Configuration Manager
3. Open SQL Server and select local System in Build-in Account
81. 3.3. DATA DEFINITION LANGUAGE (DDL) 81
4. Backup Database
5. Backup Database (Only Changes)
92. 92 CHAPTER 4. SCHOOL MANAGEMENT SYSTEM
4.2 Database Development
1. Create Database named School Management System
2. Create Table named Attendance
• Attendance ID (PK, int, not null, auto-increment)
• Class (varchar(20))
• Session (varchar(10))
• Section (varchar(10))
• Subject Code (FK, varchar(20))
• Staff ID (varchar(15))
• Attendance Date (datetime)
• Admission Number (FK, varchar(15))
• Status (varchar(10))
93. 4.2. DATABASE DEVELOPMENT 93
3. Create Table named Book
• Accession Number (PK, varchar(30), not null)
• Book Title (varchar(30))
• Author (varchar(30))
• Joint Authors (varchar(30))
• Subject (varchar(30))
• Department (varchar(30))
• Barcode (varchar(70))
• ISBN (varchar(30))
• Volume (varchar(30))
• Edition (varchar(30))
• Publisher (varchar(30))
• Place of Publisher (varchar(30))
• CD (varchar(10))
• Publishing Year (int)
• Reference (varchar(10))
• Almira Position (varchar(30))
• Price (int)
• Supplier Name (varchar(30))
• Bill Date (datetime)
• Remarks (varchar(max))
94. 94 CHAPTER 4. SCHOOL MANAGEMENT SYSTEM
4. Create Table named Book Issue Staff
• Transaction ID (PK, varchar(15), not null)
• Issue Date (datetime)
• Due Date (datetime)
• Accession No (varchar(30))
• Staff ID (varchar(15))
• Status (varchar(30))
5. Create Table named Book Return Student
• Return ID (PK, varchar(15), not null)
• Transaction ID (varchar(15))
• Return Date (datetime)
95. 4.2. DATABASE DEVELOPMENT 95
• Fine (int)
6. Create Table named Bus Holders
• Admission Number (varchar(15))
• Source Location (varchar(250))
• Starting Date (date)
7. Create Table named Class
• ID (PK, int, not null)
• Class Name (varchar(20))
• Section (varchar(20))
96. 96 CHAPTER 4. SCHOOL MANAGEMENT SYSTEM
8. Create Table named Course Fee
• ID (PK, int, not null)
• Class ID (int)
• Fee ID (int)
• Fee (float)
• Month (varchar(30))
9. Create Table named Department
• ID (PK, int, not null)
• Department Name (varchar(250), not null)
97. 4.2. DATABASE DEVELOPMENT 97
10. Create Table named Employee
• Staff ID (PK, varchar(50), not null)
• Staff Name (varchar(30))
• Father Name (varchar(30))
• Mother Name (varchar(30))
• Date of Birth (date)
• Permanent Address (varchar(100))
• Temporary Address (varchar(100))
• Phone Number (varchar(11))
• Mobile Number (varchar(11))
• Date of Joining (date)
• Qualification (varchar(70))
• Years of Experience (float)
• Designation (varchar(100))
• Email (varchar(30))
• Picture (image)
• Status (varchar(15))
• Basic Salary (int)
• Department (varchar(100))
• Gender (varchar(10))
98. 98 CHAPTER 4. SCHOOL MANAGEMENT SYSTEM
11. Create Table named Event
• Event ID (PK, int, not null)
• Event Name (varchar(150))
• Starting Date and Time (datetime)
• Ending Date and Time (datetime)
• Managed By (varchar(250))
• Activities (varchar(max))
12. Create Table named Examination
• ID (PK, int, not null)
• Examination Name (varchar(30))
• Examination Type (varchar(30))
99. 4.2. DATABASE DEVELOPMENT 99
13. Create Table named Fee
• ID (PK, int, not null)
• Fee Name (varchar(50))
14. Create Table named Grades
• Grade ID (PK, int, not null)
• Grade (varchar(50))
• Score From (float)
• Score To (float)
• Remark (varchar(max))
• Grade Points (float)
100. 100 CHAPTER 4. SCHOOL MANAGEMENT SYSTEM
15. Create Table named Hostel Fee Payment
• Hostel Fee Payment ID (PK, varchar(15), not null)
• Admission Number (varchar(15))
• Total Paid (int)
• Mode of Payment (varchar(50))
• Payment Mode details (varchar(200))
• Fine (int)
• Due Fees (int)
• Date and Time of Payment (datetime)
• Hostel Fees (int)
16. Create Table named Hostel Information
101. 4.2. DATABASE DEVELOPMENT 101
• ID (PK, int, not null)
• Hostel Name (varchar(150), not null)
• Hostel Address (varchar(150), not null)
• Managed By (varchar(100))
• Hostel Phone Number (varchar(11), not null)
• Hostel Mobile Number (varchar(11))
• Hostel Fees (int)
17. Create Table named Marks Entry
• Marks Entry ID (PK, int, not null)
• Admission Number (varchar(15))
• Student School (varchar(250))
• Session (varchar(100))
• Student Class (varchar(150))
• Student Section (varchar(100))
• Entry Date (datetime)
• Result (varchar(20))
102. 102 CHAPTER 4. SCHOOL MANAGEMENT SYSTEM
18. Create Table named Scholarship
• Scholarship ID (PK, int, not null)
• Scholarship Name (varchar(30))
• Description (varchar(max))
• Amount (int)
19. Create Table named School
• School ID (PK, int, not null)
• School Name (varchar(250))
• Address (varchar(250))
• Contact Number (varchar(11))
• Email (varchar(30))
103. 4.2. DATABASE DEVELOPMENT 103
• Website (varchar(60))
20. Create Table named Student
• Admission Number (PK, varchar(15), not null)
• Enrollment Number (varchar(15))
• Student Name (varchar(100))
• Father Name (varchar(100))
• Mother Name (varchar(100))
• Father Contact Number (varchar(11))
• Permanent Address (varchar(250))
• Temporary Address (varchar(250))
• Student Contact Number (varchar(11))
• Email ID (varchar(60))
• Date of Birth (date)
• Gender (varchar(10))
• Admission Date (date)
• Session (varchar(15))
• Caste (varchar(15))
• Religion (varchar(15))
• Photo (image)
• Status(varchar(15))
• Nationality (varchar(50))
• Class (varchar(20))
• Section (varchar(30))
• School ID (int)
104. 104 CHAPTER 4. SCHOOL MANAGEMENT SYSTEM
21. Create Table named Subject
• Subject Code (PK, varchar(20), not null)
• Subject Name (varchar(250))
• Class Name (varchar(20))
22. Create Table named Supplier
• ID (PK, varchar(15), not null)
• Supplier Name (varchar(30))
• Address (varchar(200))
• Contact No (varchar(15))
105. 4.2. DATABASE DEVELOPMENT 105
• Email ID (varchar(50))
23. Create Table named Transportation
• Route ID (PK, int, not null)
• Source Location (varchar(250))
• Bus Charges (int)
24. Add Foreign Key Constraints to following Columns
• Attendance (Subject Code) with Subject (Subject Code)
• Attendance (Admission Number) with Student (Admission Number)
• Book Issue Staff (Accession Number) with Book (Accession Number)
• Book Issue Staff (Staff ID) with Employee (Staff ID)
• Bus Holder (Admission Number) with Student (Admission Number)
106. 106 CHAPTER 4. SCHOOL MANAGEMENT SYSTEM
• Course Fee (Class ID) with Class (ID)
• Course Fee (Fee ID) with Fee (ID)
• Hostel Fee Payment (Admission Number) with Student (Admission Number)
• Student (School ID) with School (school ID)
4.3 User Interface
1. Connect Database to your Visual Studio
107. 4.3. USER INTERFACE 107
2. Login Page
using System;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace SchoolManagementSystem
{
public partial class Login : Form
{
private string role;
private string connectString = "Data Source=(LocalDB)MSSQLLocalDB;AttachDb" +
"Filename=|DataDirectory|SchoolManagementSystem.mdf;Integrated Securit" +
"y=True";
public Login() => InitializeComponent();
public string Role { get => role; set => role = value; }
public string setrole()
{
if (radioButtonAdmin.Checked == true)
Role = "admin";
else if (radioButtonParent.Checked == true)
Role = "parent";
else if (radioButtonStudent.Checked == true)
Role = "student";
else if (radioButtonTeacher.Checked == true)
Role = "teacher";
else
Role = " ";
return Role;
}
private void ButtonLogin_Click(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection();
sqlcon.ConnectionString = connectString;
sqlcon.Open();
108. 108 CHAPTER 4. SCHOOL MANAGEMENT SYSTEM
string username = textBoxUsername.Text;
string password = textBoxPassword.Text;
string role = setrole();
string query = "select userName, passWord, role from login where userNam" +
"e='" + textBoxUsername.Text + "'and passWord='" + textBoxPassword.Text
+ "'and role='" + role + "'";
SqlCommand cmd = new SqlCommand(query, sqlcon);
SqlDataAdapter da = new SqlDataAdapter(cmd);
if (da != null)
{
if (role == "admin")
{
Administrator adminForm = new Administrator();
adminForm.Visible = true;
this.Hide();
}
else if (role == "parent")
{
Parent parentForm = new Parent();
parentForm.Visible = true;
this.Hide();
}
else if (role == "teacher")
{
Teacher teacherForm = new Teacher(username);
teacherForm.Visible = true;
this.Hide();
}
else if (role == "student")
{
Students studentForm = new Students(username);
studentForm.Visible = true;
this.Hide();
}
}
else
{
MessageBox.Show("Invalid Login please check username/password/role");
}
}
}
}
109. 4.3. USER INTERFACE 109
3. Admin Page
• View Employee or Student Record using their IDs
• Add or Delete Login Credentials
• Add or Delete Employee Information
110. 110 CHAPTER 4. SCHOOL MANAGEMENT SYSTEM
• Add or Delete Student Information
• View, Add and Delete School Information
• Add, View and Delete Hostel Information
using System;
using System.Data;
111. 4.3. USER INTERFACE 111
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
namespace SchoolManagementSystem
{
public partial class Administrator : Form
{
public string connection = "Data Source=(LocalDB)MSSQLLocalDB;AttachDbFil" +
"ename=|DataDirectory|SchoolManagementSystem.mdf;Integrated Security=True";
public string query;
public string imgLocation;
SqlConnection sqlcon = new SqlConnection();
SqlDataReader reader;
byte[] images = null;
public void opensql()
{
sqlcon.ConnectionString = connection;
sqlcon.Open();
}
public void queryexecute()
{
SqlCommand cmd = new SqlCommand(query, sqlcon);
cmd.Connection = sqlcon;
cmd.CommandType = CommandType.Text;
int a = cmd.ExecuteNonQuery();
if (a != -1)
{
MessageBox.Show("Successful");
}
else
{
MessageBox.Show("Error");
}
}
public void queryexecutearray()
{
SqlCommand cmd = new SqlCommand(query, sqlcon);
reader = cmd.ExecuteReader();
reader.Read();
}
public String addpicture()
{
OpenFileDialog openFileDialog = new OpenFileDialog();
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
imgLocation = openFileDialog.FileName.ToString();
return imgLocation;
}
return null;
}
public void addpictureinrecord()
{
FileStream stream = new FileStream(imgLocation, FileMode.Open,
FileAccess.Read);
BinaryReader brs = new BinaryReader(stream);
images = brs.ReadBytes((int)stream.Length);
}
public Administrator()
117. Chapter 5
Transact-SQL Statements
(Intermediate)
5.1 Joins
1. Display Customers Details like Title, Full Name (First Name, Middle Name, Last Name, Suffix), Full
Address (AddressLine1, AddressLine2, City, StateProvince, CountryRegion), Postal Code, and Phone No
117
118. 118 CHAPTER 5. TRANSACT-SQL STATEMENTS (INTERMEDIATE)
2. Display Customer ID, Full Name, Product Name, Color and Unit Price
3. Display Product Name, Standard Cost, List Cost, Total Orders and Total Profit
119. 5.1. JOINS 119
4. Display Combined List of First Name and Last Name with at least 3 characters
5. Display Product Name, Total Orders and State/Province from which Orders were Placed
120. 120 CHAPTER 5. TRANSACT-SQL STATEMENTS (INTERMEDIATE)
6. Display Product Name, Category Name and Model Name
7. Display Product Name, Category Name, Model Name and Culture
121. 5.1. JOINS 121
8. Display Parent Category and Child Category
9. Display Product Name and its Description
122. 122 CHAPTER 5. TRANSACT-SQL STATEMENTS (INTERMEDIATE)
10. Display Company Name an Email Address where Freight rate is more than 1000
11. Calculate the Percentage of Subtotal and Tax amount
123. 5.2. VARIABLES AND PROCEDURES 123
12. Display Customer ID, Full Name (Title, First Name, Middle Name, Last Name, Suffix), Company Name,
Phone, Address Type, Full Address (AddressLine1, AddressLine2, City, State, Country, Postal Code),
Subtotal, Tax Amount, Freight Rate, Total Cost
5.2 Variables and Procedures
1. Declare a variable with datatype int
124. 124 CHAPTER 5. TRANSACT-SQL STATEMENTS (INTERMEDIATE)
2. Declare a variable with datatype varchar
3. Declare and Assign a value to a variable
125. 5.2. VARIABLES AND PROCEDURES 125
4. Declare, Assign and Display the value of a variable
5. Using Variables Display Products in given Price Range
126. 126 CHAPTER 5. TRANSACT-SQL STATEMENTS (INTERMEDIATE)
6. Using variables Display Count of Specific Color
7. Create Procedure having a variable for colour and Display its count
127. 5.2. VARIABLES AND PROCEDURES 127
8. Create a Procedure that displays records for a given postal code
9. Create a Procedure that displays records for a given total profit
128. 128 CHAPTER 5. TRANSACT-SQL STATEMENTS (INTERMEDIATE)
10. Create a Procedure that displays the record for a given Order Quantity or Product ID
11. Create a Procedure that displays a message of the total amount for a given Sales ID
129. 5.3. SUB-QUERIES AND VIEWS 129
5.3 Sub-queries and Views
1. Display Specific Customer Details using sub-query
2. Display Product having maximum sales using sub-query
130. 130 CHAPTER 5. TRANSACT-SQL STATEMENTS (INTERMEDIATE)
3. Display Customers from Canada using Sub-Query
4. Display Customers who paid more than 200 in Freight rate using Sub-Query
131. 5.3. SUB-QUERIES AND VIEWS 131
5. Create View to display Customer First Name and Phone Number
6. Create View and Procedure to display Customer First Name and Phone Number where the First name is
Dominic
132. 132 CHAPTER 5. TRANSACT-SQL STATEMENTS (INTERMEDIATE)
7. Create View to display Product Sales report where the minimum sale is 30
8. Create View and insert data
133. 5.3. SUB-QUERIES AND VIEWS 133
9. Create View to update values
10. Alter View, add checkpoint and try to update values
Note: You can only insert or delete from a single table. If you make any changes to the base tables you can use
the sp refreshview procedure to recompile the view.
140. 140 CHAPTER 5. TRANSACT-SQL STATEMENTS (INTERMEDIATE)
2. Create a Transaction to insert the product details
3. Create a Transaction to update the product detail
141. 5.5. TRANSACTIONS 141
4. Create a Transaction to delete the customer and commit it
5. Create a Transaction to insert the product details and rollback it
142. 142 CHAPTER 5. TRANSACT-SQL STATEMENTS (INTERMEDIATE)
6. Create a Transaction to delete the customer and add save points to which we can rollback
Note: To check the oldest active transaction use DBCC OPENTRAN
5.6 Triggers
1. Create insert Trigger for List Price
143. 5.6. TRIGGERS 143
2. Create update Trigger for Modified Date
3. Create delete Trigger for Product ID
144. 144 CHAPTER 5. TRANSACT-SQL STATEMENTS (INTERMEDIATE)
4. Create create Trigger for database
5. Create alter Trigger for database
145. 5.6. TRIGGERS 145
6. Create drop Trigger for database
Note: Trigger is a stored routine. it is a set of SQL statements used for protecting the integrity of data. But
constraint is used to define rules to allow or restrict what values can be stored in columns. The purpose of
inducing constraints is to enforce the integrity of the database. it restricts the insertion of data in a table.
The trigger can be on update/delete statements also, but constraints are related to providing restrictions while
inserting the data.
All insert, update, and delete triggers can be found in respective trigger folders in Table details, whereas all
create, drop, and alter triggers are stored in database triggers which can be found in the programmability folder
of the respective database.
148. 148 CHAPTER 6. MALICIOUS
2. Display 20 products excluding the top 10 products
3. Display top 12 products including similar values
149. 6.1. QUERIES 149
4. By using self-join display Category and sub-category
5. Display list using cross join
150. 150 CHAPTER 6. MALICIOUS
6. Display Products using the correlated query
7. Create Order Detail Summary using cube
151. 6.1. QUERIES 151
8. Create Order Detail Summary using rollup 1
9. Display newly inserted record on the screen
1Note: The difference between cube and rollup is that cube generates all possible combinations for the given attributes whereas
rollup only generates hierarchical combinations
152. 152 CHAPTER 6. MALICIOUS
10. insert multiple records at once
11. Copy only table structure
153. 6.1. QUERIES 153
12. Copy only the top 10 percent sold products to the new table
13. Show count of customers in the state vs country
154. 154 CHAPTER 6. MALICIOUS
14. Create Schema for your database
15. Create a new table in the schema
155. 6.1. QUERIES 155
16. Add a new computed column to your table
17. Create a local temporary table
156. 156 CHAPTER 6. MALICIOUS
18. Create a global temporary table
19. Create a Synonym for the table
157. 6.2. CREATE SETUP FILE 157
20. Set a column to generate Globally unique identifier
21. Change the order of forms in Visual Studio
(a) Double Click file named Programs.cs
(b) Change form1 to your desired form class in ”Application.Run(new form1());”
6.2 Create Setup File
(a) Go to Extensions, select Manage Extensions, search setup and download Microsoft Visual Studio
Installer Project
158. 158 CHAPTER 6. MALICIOUS
(b) Close Visual Studio, Click on Modify and wait for the setup to complete
(c) Reopen your Visual Studio Project, Right Click on Solution and select Add New Project
159. 6.2. CREATE SETUP FILE 159
(d) Select Setup Project and name it.
(e) Right Click on Application Folder, and Select Project Output
160. 160 CHAPTER 6. MALICIOUS
(f) Click OK
(g) Right Click on Application Folder and Add your database files
161. 6.2. CREATE SETUP FILE 161
(h) Select User’s Desktop, Right click on the window, select Application folder and primary output file
and rename it
(i) Select User’s Program Menu, Create a new folder, Create Shortcut and rename it
162. 162 CHAPTER 6. MALICIOUS
(j) In Solution Explorer right click on the setup file, select properties, click on Prerequisites, select SQL
Server 2019, and Click OK
(k) Select database from Application Folder and change Property Permanent to True
163. 6.2. CREATE SETUP FILE 163
(l) Click on Properties, select publish, click on prerequisite, select SQL Server 2019
(m) Click on the option and provide details and press OK, Now click on Publish and your setup is complete