Sunteți pe pagina 1din 8

--Basic Table Creation

--Use KasNetTraining
--GO

Use LMS
GO
drop table Book

CREATE TABLE Book(


[BookID] [int] NOT NULL,
[Title] [varchar](60) NOT NULL,
[AuthorId] [int] NOT NULL,
[Edition] [varchar](60) NOT NULL,
[ISBN] [bigint] NOT NULL,
[LocationID] [int] NOT NULL,
PRIMARY KEY (BookID)
)
--=====================================
ALTER TABLE Book
Add Price Decimal NOT NULL DEFAULT (0.00)
--================================
ALTER TABLE Book
--DROP COLUMN Price
--=============================
--DROP TABLE Book
--=============================
--This query needs to be fixed
--drop table Author
CREATE TABLE Author(
[AuthorID] [int] NOT NULL,
[FirstName] [varchar](255) NOT NULL,
[LastName] [varchar](255) NOT NULL,
PRIMARY KEY (AuthorId)
--FOREIGN KEY(AuthorId) REFERENCES Book(Authorid)
)
--=================================
--Insert rows in Book Table
INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID)
values (14000001, 141111111111111, 'Electrical
Engineering',10000001,'First',99.99,1001)

INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID)


values (14000002, 8122414745, 'Basic Electrical
Engineering',10000002,'First',49.99,1001)--JP Tiwari

INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID)


values (14000003, 8122414702, 'Linear Integrated
Ciscuits',10000003,'First',79.99,1001) -- Roy Choudhari

INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID)


values (14000004, 0132543036, 'Digital Electronics',10000004,'First',79.99,1001)
--William Kleitz

INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID)


values (14000005, 0077366743, 'Thermodynamics',10000005,'First',49.99,1001)--
Michael Boles

INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID)


values (14000006, 8122414746, 'Basic Electrical
Engineering',10000002,'Second',49.99,1001)--JP Tiwari

INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID)


values (14000007, 8122414703, 'Linear Integrated
Ciscuits',10000003,'Second',79.99,1001) -- Roy Choudhari

INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID)


values (14000008, 0132543037, 'Digital Electronics',10000004,'Second',79.99,1001)
--William Kleitz

INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID)


values (14000009, 0077366744, 'Thermodynamics',10000005,'Second',49.99,1001)--
Michael Boles

--================================
--Insert rows in Author Table

INSERT INTO Author (AuthorID, FirstName, LastName)


values (10000001, 'B', 'Theraja')

INSERT INTO Author (AuthorID, FirstName, LastName)


values (10000002, 'JP', 'Tiwari')

INSERT INTO Author (AuthorID, FirstName, LastName)


values (10000003, 'Roy', 'Choudhari')

INSERT INTO Author (AuthorID, FirstName, LastName)


values (10000004, 'William', 'Kleitz')

INSERT INTO Author (AuthorID, FirstName, LastName)


values (10000005, 'Michael', 'Boles')
--================================================

--Select Data from Table

SELECT * FROM Book

SELECT * FROM Author

--===============================================
--Alternate SELECT Query
SELECT BookID, ISBN, Title, AuthorID, Edition, Price FROM Book

SELECT AuthorID, FirstName, LastName FROM Author


--===============================================
--Select Specific Fields from Table
SELECT BookID, ISBN, Title
FROM Book

SELECT AuthorID, FirstName


FROM Author
--====================================================
--Using Column Alias in the SELECT
SELECT BookID 'Book ID', ISBN 'ISBN', Title 'Book Title', AuthorID 'Author ID',
Edition 'Book Edition', Price 'Book Price'
FROM Book

SELECT BookID as 'Book ID', ISBN as 'ISBN', Title as 'Book Title', AuthorID as
'Author ID', Edition as 'Book Edition', Price as 'Book Price'
FROM Book

SELECT BookID BookID, ISBN ISBN, Title BookTitle, AuthorID AuthorID, Edition
BookEdition, Price BookPrice
FROM Book
--===================================================
--Selecting same column twice

SELECT BookID 'Book #', BookID 'Unique Book #' FROM Book

SELECT AuthorID, FirstName 'First Name', FirstName 'Name' FROM Author


--=================================================
--Distinct Clause
SELECT DISTINCT Title, AuthorID from Book
--=================================================
--Where Clause
SELECT * FROM Book
WHERE Title = 'Thermodynamics'
--================================================
--LIKE Clause
SELECT * FROM Book
WHERE Title like 'Ther%'
--================================================
--Using OR in WHERE Clause
SELECT * FROM Book
WHERE Title = 'Thermodynamics'
OR Price = 50
--==============================================
--Using AND in WHERE Clause
SELECT * FROM Book
WHERE Title = 'Thermodynamics'
AND Edition = 'First'
--=============================================
--Using IN in WHERE Clause
SELECT * FROM Book
WHERE Title IN
('Thermodynamics', 'Digital Electronics')
--=============================================
--Using BETWEEN Clause
SELECT * FROM Book
WHERE Price BETWEEN 30 AND 70
--===========================================
--Using ORDER BY Clause
SELECT * FROM Book
ORDER BY Title
--=========================================
--Using GROUP BY Clause
SELECT AuthorID FROM Book
GROUP BY AuthorID
--=======================================
--Using COUNT Clause
SELECT COUNT(*) 'Total Records' FROM Book
--=======================================
--Using GROUP BY and COUNT Clause together
SELECT AuthorID, COUNT(*) 'Author Record Count'
FROM Book
GROUP BY AuthorID
--======================================
--Using GROUP BY, COUNT, and HAVING Clause together
SELECT AuthorID, COUNT(*) 'Author Record Count'
FROM Book
GROUP BY AuthorID
HAVING COUNT(*) > 2
--=======================================
--Updating a single column value of all rows
UPDATE Book SET Price = 100
--========================================
UPDATE Author
SET FirstName = UPPER(FirstName), LastName = UPPER(LastName)
--=======================================
UPDATE Author
SET FirstName = Lower(FirstName)
WHERE AuthorID in (10000001,10000002)
--====================================
UPDATE Author
SET FirstName = Lower(FirstName), LastName = LOWER(LastName)
WHERE AuthorID in (10000001,10000002)
--=========================================
DELETE FROM Author

DELETE FROM Author


WHERE AuthorID = 10000001

DELETE FROM Author


--=========================================
SELECT TOP 3 * from Book
--=========================================
--Using INNER JOIN

SELECT * from Book


INNER JOIN Author ON Book.AuthorID = Author.AuthorID

SELECT * from Book


JOIN Author ON Book.AuthorID = Author.AuthorID
--=======================================
--Insert more Book Records
select * from Book
INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID )
values (14000010, 8122414756, 'Let Us C',10000006,'First',49.99,1002)

INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID )


values (14000011, 8122414747, 'JAVA Fundamentals',10000007,'First',55.99,1002)

INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID )


values (14000012, 8122414748, 'SQL Server
Administration',10000008,'Second',89.99,1002)

INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID )


values (14000013, 8122414749, 'Engineering Physics',10000009,'First',49.99,1002)

INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID )


values (14000014, 8122414750, 'Applied Mechanics',10000010,'First',65.99,1002)

INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID )


values (14000015, 8122414751, 'Applied Chemistry',10000011,'First',49.99,1002)

--Following book author info not yet available


INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID )
values (14000016, 8122414752, 'Engineering Mathematics',10000012,
'First',110.99,1002)

INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID )


values (14000017, 8122414753, 'Zoology Basics',10000013,'First',39.99,1002)

INSERT INTO Book (BookID, ISBN, Title, AuthorID, Edition, Price,LocationID )


values (14000018, 8122414754, 'Organic Chemistry',10000014,'First',44.99,1002)

--Insert more Author records


--select * from Author
INSERT INTO Author (AuthorID, FirstName, LastName)
values (10000006, 'John', 'King')

INSERT INTO Author (AuthorID, FirstName, LastName)


values (10000007, 'Sheila', 'Ray')

INSERT INTO Author (AuthorID, FirstName, LastName)


values (10000008, 'Craig', 'Hunter')

INSERT INTO Author (AuthorID, FirstName, LastName)


values (10000009, 'Michael', 'Clark')

INSERT INTO Author (AuthorID, FirstName, LastName)


values (10000010, 'Michael', 'Beaver')

INSERT INTO Author (AuthorID, FirstName, LastName)


values (10000011, 'Vinayak', 'Joshi')
--=================================================
--Using LEFT OUTER JOIN
SELECT * from Book
LEFT OUTER JOIN Author ON Book.AuthorID = Author.AuthorID
--==================================================
--Using RIGHT OUTER JOIN
SELECT * from Book
RIGHT OUTER JOIN Author ON Book.AuthorID = Author.AuthorId

--=============================================================

CREATE TABLE Student(


StudentID [int] NOT NULL,
FirstName [varchar](100) NOT NULL,
LastName [varchar](100) NOT NULL,
Branch [varchar](100),
Class [varchar](50),
Section [varchar](2),
HomePhone [varchar](50),
MobileNumber [varchar](50),
AdditionalPhoneNumber [varchar](50),
PrimaryEmail [varchar](60),
SecondaryEmail1 [varchar](60),
SecondaryEmail2 [varchar](60),
PRIMARY KEY (StudentID)
)

--=================================================
CREATE TABLE Staff(
StaffID [int] NOT NULL,
FirstName [varchar](100) NOT NULL,
LastName [varchar](100) NOT NULL,
Branch [varchar](100),
Designation [varchar](50),
HomePhone [varchar](50),
MobileNumber [varchar](50),
AdditionalPhoneNumber [varchar](50),
PrimaryEmail [varchar](60),
SecondaryEmail1 [varchar](60),
SecondaryEmail2 [varchar](60),
PRIMARY KEY (StaffID)
)

--=====================================================
CREATE TABLE BookRentingSchedule(
RentingScheduleID [int] NOT NULL,
RentPeriod [int] NOT NULL,
FirstWarningEmailPeriod [int],
SecondWarningEmailPeriod [int],
ThirdWarningEmailPeriod [int],
ApplyLateFee [varchar](2) NOT NULL,
ApplyLateFeeOffset [int] NOT NULL,
LateFeeRate [decimal] DEFAULT (0.00)
PRIMARY KEY (RentingScheduleID)
)

--====================================================
CREATE TABLE BookRentingDetails(
RentingTransactionID [int] NOT NULL,
RenterID [int] NOT NULL,
RenterType [varchar](50),
BookID [int] NOT NULL,
DateOfRenting [Date],
ScheduleID [int] NOT NULL,
ScheduledReturningDate [Date],
ActualReturningDate [Date],
LateReturn [varchar](2),
LateReturnDays [int]
PRIMARY KEY (RentingTransactionID)
)

--====================================================
CREATE TABLE LateFeeCharged(
LateFeeTransactionID [int] NOT NULL,
RentingTransactionID [int] NOT NULL,
LateFeeRate [int],
LateFeeAmount [decimal] DEFAULT (0.00),
PaymentStatus [varchar](50),
PaymentMethod [varchar](50)
PRIMARY KEY (LateFeeTransactionID)
)

--====================================================

CREATE TABLE Audit(


AuditID [int] NOT NULL,
AuditType [varchar](50) NOT NULL,
ActorID [int],
AuditDate [Datetime],
AuditDetails [varchar](510),
PRIMARY KEY (AuditID)
)
--==================================================

CREATE TABLE BookLocation(


LocationID [int] NOT NULL,
Building [varchar](100),
FloorNumber [int],
Section [varchar](100),
IsleNumber [int],
ShelfNumber [int],
AlphabeticalOrder [varchar](20),
PRIMARY KEY (LocationID)
)

--===================================================
CREATE TABLE BookWaitList(
WaitListID [int] NOT NULL,
RequestorID [int] NOT NULL,
RequestorType [varchar](50),
EntryDate [DateTime],
RequestedBookTitle [varchar] (100) NOT NULL,
RequestedBookAuthor [varchar] (100),
RequestedBookEdition [varchar] (100),
RequestDate [Date],
RequestStatus [varchar] (20),
PRIMARY KEY (WaitListID)
)

--===================================================

select * from Book --Stores detail information of books


Select * from Author --Stores detail information of authors
select * from Student --Stores detail information of students
Select * from Staff --Stores detail information of staff members like professors,
accountant, principal etc
Select * from BookRentingSchedule --Stores Renting Schedule which will decide when
the book is scheduled to return
Select * from BookRentingDetails --Stores renting details such as book no to which
student it was rented, whether returned on time pr late etc
Select * from LateFeeCharged --Stores details of late fee charged to which student
for which transaction, for how many days etc
Select * from Audit --Stores detail information of audit like a addition or
updating of new student, staff, book, author etc
Select * from BookLocation --Stores where the book is located such as building,
floor, section, isle etc
Select * from BookWaitList --Stores waitlist management info like who request,
which book, when etc

---Id is not consistent. Some places it is Id and other it is ID >> Fixed

--BookRentingDetail - Is RentingID a StudentId?. Where is StudentID?. Add


RenterType >> Fixed
--Add new table called book intentory. Refer that in book renting details. We
should be able to find which book available >> Fixed
-- Add separate table for shelf and section. Book should be placed on shelf and
section. We should be able to identify where book is located >> Fixed
--From query - you should be able to find books available and location (Create new
table location) >> Fixed
---How about waitlist. We should manage that too >> Fixed

S-ar putea să vă placă și