0% found this document useful (0 votes)
25 views43 pages

(TUANTA) DBM 01-Basic SQL Commands (DHSG)

The document outlines a syllabus for a Database Management System course taught by Dr. Tran Anh Tuan at the University of Science, HCMC. It includes lectures on SQL commands, stored procedures, security, data synchronization, and MongoDB commands, culminating in a final project. Additionally, it provides various SQL command examples and usage scenarios for database operations.

Uploaded by

minhtft2004
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)
25 views43 pages

(TUANTA) DBM 01-Basic SQL Commands (DHSG)

The document outlines a syllabus for a Database Management System course taught by Dr. Tran Anh Tuan at the University of Science, HCMC. It includes lectures on SQL commands, stored procedures, security, data synchronization, and MongoDB commands, culminating in a final project. Additionally, it provides various SQL command examples and usage scenarios for database operations.

Uploaded by

minhtft2004
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/ 43

Database Management

System
Dr. Tran Anh Tuan

Dr. Tran Anh Tuan, Faculty of Mathematics and Computer


Science, University of Science, HCMC
Dr. Tran Anh Tuan, Faculty of Mathematics and Computer
Science, University of Science, HCMC
Syllabus
• Lecture 1 : Basic SQL Commands
• Lecture 2 : Advanced SQL Commands
• Lecture 3 : Stored Procedures and Functions
• Lecture 4 : Trigger, Transaction, Cursor and Temporary Table
• Lecture 5 : Security, Role, Server Backup, and Server Recovery
• Lecture 6 : Data Synchronization, SQL Profiler, Linked Server, Job Schedule
• Lecture 7 : Basic MongoDB Commands
• Lecture 8 : Advanced MongoDB Commands
• Lecture 9 : SQL Server and MongoDB connection from Application
• Lecture 10 : Final Project

Dr. Tran Anh Tuan, Faculty of Mathematics and Computer


Science, University of Science, HCMC
Outline
Database Commands
SELECT name FROM master.dbo.sysdatabases

IF NOT EXISTS (SELECT name FROM master.dbo.sysdatabases


WHERE name = N'Northwind')
CREATE DATABASE [Northwind]
USE [Northwind]

IF db_id('Northwind') IS NOT NULL


BEGIN
SELECT 'database does exist'
END
ELSE
BEGIN
SELECT 'database does not exist'
END
DB
Northwind
SELECT
SELECT
SELECT * FROM Customer

SELECT FirstName, LastName, City


FROM Customer
INSERT
INSERT
INSERT INTO Customer (FirstName, LastName, City, Country, Phone)
SELECT LEFT(ContactName, CHARINDEX(' ',ContactName) - 1),
SUBSTRING(ContactName, CHARINDEX(' ',ContactName) + 1, 100),
City, Country, Phone
FROM Supplier
WHERE CompanyName = 'Bigfoot Breweries'
UPDATE
DELETE

TRUNCATE TABLE Customer


ORDER BY
SELECT CompanyName, ContactName, City, Country
FROM Supplier
ORDER BY CompanyName

SELECT CompanyName, ContactName, City, Country


FROM Supplier
ORDER BY CompanyName DESC

SELECT Id, CompanyName, City, Country


FROM Supplier
WHERE Country IN ('USA', 'Japan', 'Germany')
ORDER BY Country ASC, CompanyName DESC
SELECT TOP
SELECT TOP 10 Id, ProductName, UnitPrice, Package
FROM Product
ORDER BY UnitPrice DESC
ORDER BY OFFSET
• Select all product skip 10 first expensive ones
SELECT Id, ProductName, UnitPrice, Package
FROM Product
ORDER BY UnitPrice DESC
OFFSET 10 ROWS

• - Select all product with highest unitprice from 10 to 15


SELECT Id, ProductName, UnitPrice, Package
FROM Product
ORDER BY UnitPrice DESC
OFFSET 10 ROWS
FETCH NEXT 5 ROWS ONLY
SELECT DISTINCT

SELECT DISTINCT Country


FROM Supplier
ORDER BY COUNTRY

SELECT COUNT (DISTINCT Country)


FROM Supplier
SELECT MIN, MAX
SELECT MAX(TotalAmount)
FROM [Order]
WHERE YEAR(OrderDate) = 2014

SELECT MAX(OrderDate)
FROM [Order]
WHERE YEAR(OrderDate) = 2013
SELECT COUNT, SUM, and AVG

SELECT COUNT(Id)
FROM Customer

SELECT SUM(TotalAmount)
FROM [Order]
WHERE YEAR(OrderDate) = 2013

SELECT AVG(TotalAmount)
FROM [Order]
WHERE AND, OR, NOT

SELECT Id, FirstName, LastName, City, Country


FROM Customer
WHERE FirstName = 'Thomas' AND LastName = 'Hardy'

SELECT Id, FirstName, LastName, City, Country


FROM Customer
WHERE Country = 'Spain' OR Country = 'France'

SELECT Id, FirstName, LastName, City, Country


FROM Customer
WHERE NOT Country = 'USA'
WHERE BETWEEN

SELECT Id, ProductName, UnitPrice


FROM Product
WHERE UnitPrice BETWEEN 10 AND 20
ORDER BY UnitPrice

SELECT Id, ProductName, UnitPrice


FROM Product
WHERE UnitPrice NOT BETWEEN 5 AND 100
ORDER BY UnitPrice

SELECT COUNT(Id), SUM(TotalAmount)


FROM [Order]
WHERE OrderDate BETWEEN '1/1/2013' AND '1/31/2013'
WHERE IN

SELECT Id, CompanyName, City, Country


FROM Supplier
WHERE Country IN ('USA', 'UK', 'Japan')

SELECT Id, ProductName, UnitPrice


FROM Product
WHERE UnitPrice NOT IN (10,20,30,40,50)

SELECT Id, FirstName, LastName, Country


FROM Customer
WHERE Country IN
(SELECT Country
FROM Supplier)
WHERE LIKE
SELECT Id, ProductName, UnitPrice, Package
FROM Product
WHERE ProductName LIKE 'Ca%'

SELECT Id, ProductName, UnitPrice, Package


FROM Product
WHERE ProductName LIKE 'Cha_' OR ProductName LIKE 'Chan_'
IS NULL
SELECT Id, CompanyName, Phone, Fax
FROM Supplier
WHERE Fax IS NULL

SELECT Id, CompanyName, Phone, Fax


FROM Supplier
WHERE Fax IS NOT NULL
GROUP BY

SELECT COUNT(Id), Country


FROM Customer
GROUP BY Country
GROUP BY

SELECT COUNT(Id), Country


FROM Customer
GROUP BY Country
ORDER BY COUNT(Id) DESC

SELECT SUM(O.TotalPrice), C.FirstName, C.LastName


FROM [Order] O JOIN Customer C
ON O.CustomerId = C.Id
GROUP BY C.FirstName, C.LastName
ORDER BY SUM(O.TotalPrice) DESC
HAVING

SELECT COUNT(Id), Country


FROM Customer
GROUP BY Country
HAVING COUNT(Id) > 10
HAVING

SELECT COUNT(Id), Country


FROM Customer
WHERE Country <> 'USA'
GROUP BY Country
HAVING COUNT(Id) >= 9
ORDER BY COUNT(Id) DESC

SELECT AVG(TotalAmount), FirstName, LastName


FROM [Order] O JOIN Customer C ON O.CustomerId = C.Id
GROUP BY FirstName, LastName
HAVING AVG(TotalAmount) BETWEEN 1000 AND 1200
Alias

SELECT COUNT(C.Id) AS TotalCustomers, C.Country AS


Nation
FROM Customer C
GROUP BY C.Country

SELECT C.Id AS Identifier, C.LastName + ', ' + C.FirstName AS CustomerName,


SUM(O.TotalAmount) AS TotalSpent
FROM [Order] O JOIN Customer C ON O.CustomerId = C.Id
GROUP BY C.Id, C.LastName + ', ' + C.FirstName
ORDER BY TotalSpent DESC
JOIN
JOIN

SELECT OrderNumber, TotalAmount, FirstName,


LastName, City, Country
FROM [Order] JOIN Customer
ON [Order].CustomerId = Customer.Id
JOIN
SELECT O.OrderNumber, CONVERT(date,O.OrderDate) AS Date,
P.ProductName, I.Quantity, I.UnitPrice
FROM [Order] O
JOIN OrderItem I ON O.Id = I.OrderId
JOIN Product P ON P.Id = I.ProductId
ORDER BY O.OrderNumber
LEFT JOIN
SELECT OrderNumber, TotalAmount, FirstName, LastName, City,
Country
FROM Customer C LEFT JOIN [Order] O
ON O.CustomerId = C.Id
ORDER BY TotalAmount
RIGHT JOIN

SELECT TotalAmount, FirstName, LastName, City, Country


FROM [Order] O RIGHT JOIN Customer C
ON O.CustomerId = C.Id
WHERE TotalAmount IS NULL
FULL JOIN

SELECT C.FirstName, C.LastName, C.Country AS


CustomerCountry,
S.Country AS SupplierCountry, S.CompanyName
FROM Customer C FULL JOIN Supplier S
ON C.Country = S.Country
ORDER BY C.Country, S.Country
SELF JOIN

SELECT B.FirstName AS FirstName1, B.LastName AS LastName1,


A.FirstName AS FirstName2, A.LastName AS LastName2,
B.City, B.Country
FROM Customer A, Customer B
WHERE A.Id <> B.Id
AND A.City = B.City
AND A.Country = B.Country
ORDER BY A.Country
UNION

SELECT 'Customer' As Type,


FirstName + ' ' + LastName AS ContactName,
City, Country, Phone
FROM Customer
UNION
SELECT 'Supplier',
ContactName,
City, Country, Phone
FROM Supplier
Subqueries
Subqueries
SELECT ProductName
FROM Product
WHERE Id IN (SELECT ProductId
FROM OrderItem
WHERE Quantity > 100)

SELECT FirstName, LastName,


OrderCount = (SELECT COUNT(O.Id) FROM [Order] O WHERE O.CustomerId = C.Id)
FROM Customer C
WHERE ANY, ALL

SELECT ProductName
FROM Product
WHERE Id = ANY ( SELECT ProductId
FROM OrderItem
WHERE Quantity = 1)

SELECT DISTINCT FirstName + ' ' + LastName as


CustomerName
FROM Customer, [Order]
WHERE Customer.Id = [Order].CustomerId
AND TotalAmount > ALL
(SELECT AVG(TotalAmount)
FROM [Order]
GROUP BY CustomerId)
WHERE EXISTS

SELECT CompanyName
FROM Supplier
WHERE EXISTS
(SELECT ProductName
FROM Product
WHERE SupplierId = Supplier.Id
AND UnitPrice > 100)
SELECT INTO

SELECT * INTO SupplierUSA


FROM Supplier
WHERE Country = 'USA'
INSERT INTO

INSERT INTO Customer (FirstName, LastName, City, Country, Phone)


SELECT LEFT(ContactName, CHARINDEX(' ',ContactName) - 1) AS FirstName,
SUBSTRING(ContactName, CHARINDEX(' ',ContactName) + 1, 100) AS LastName,
City, Country, Phone
FROM Supplier
WHERE Country = 'Canada'
THANK YOU
Dr. Tran Anh Tuan, Faculty of Mathematics and Computer Science, University of
Science, HCMC

You might also like