База от данни за книги


Схема на релационните връзки



страница3/3
Дата22.05.2022
Размер392.98 Kb.
#114405
1   2   3
data baze books
Свързани:
data baze books
Схема на релационните връзки


4.Релационен модел на базата от данни

Създаване на таблиците:
CREATE TABLE Author(
AuthorID int NOT NULL PRIMARY KEY,
Name varchar(50) NOT NULL)

CREATE TABLE Theme(


ThemeID int NOT NULL PRIMARY KEY,
Name varchar(50) NOT NULL)

CREATE TABLE Subtopics(


SubtopicsID int NOT NULL PRIMARY KEY,
Name varchar(50) NOT NULL)

CREATE TABLE Keywords(


KeywordsID int NOT NULL PRIMARY KEY,
Word varchar(100) NOT NULL)
5.
CREATE TABLE Book(
BookID int NOT NULL PRIMARY KEY,
Title varchar(50) NOT NULL,
Year int NULL,
Cover varchar(10) NULL,
Pages int NULL,
Price Decimal(6,2) NOT NULL,
author_id int NOT NULL,
theme_id int NOT NULL,
subtopic_id int NOT NULL,
keywords_id int NOT NULL,
FOREIGN KEY (author_id) REFERENCES Author(AuthorID),
FOREIGN KEY (theme_id) REFERENCES Theme(ThemeID),
FOREIGN KEY (subtopic_id) REFERENCES Subtopics(SubtopicsID),
FOREIGN KEY (keywords_id) REFERENCES Keywords(KeywordsID))


Вмъкване на данн:

INSERT INTO Book(BookID, Title, Year, Cover, Pages, Price, author_id, theme_id, subtopic_id, keywords_id)


VALUES(1, ’Хари Потър и философският камък’, 1997, Hard, 280, 19.90, 1, 1, 1, 1),
(2,’Произход’, 2017, Softcover, 528, 24.95, 2, 2, 2, 2),
(3,’Хари Потър и стаята на тайните’, 1998, Hard, 304, 19.90, 3, 3, 3, 3);

6.
INSERT INTO Author(AuthorID, Name)


VALUES(1, ’J.K. Rowling’),(2, ‘Dan Brown’);
INSERT INTO Theme(ThemeID, Name)
VALUES(1,’Хари Потър’),(2,‘Произход‘)

INSERT INTO Subtopic(SubtopicID, Name)
VALUES(1,’Философския камък’),( 2,‘Стаята на тайните‘)

7.

INSERT INTO Keywords(KeywordID, Word)
VALUES(1,’Камък’),(2,‘Символи‘),(3,‘Стая‘),(4,‘Магия‘)

5.Заявки
Първата заявка ще ни изведе номера на книгата, името, годината ,колко е страници и на каква цена. На книгите с твърди корици.

SELECT BookID, Title, Year, Pages,Price


FROM Book
WHERE Cover = 'Hard';

Втората ни заявка ще ни покаже номера на книгата и тяхната ценa.


SELECT BookID,
CAST (AVG(Price) AS DECIMAL (6, 2)) AS AverageBookPrice
FROM Books

8.
GROUP BY BookID;

Третата заявка ще зададем да ни изведе номера на книгата, името и цената която трябва да е под 20лв.
SELECT BookID,Title , AVG(Price) AS 'Average'
FROM Books
WHERE Price<20 AND BookID IN (1,2,3)
GROUP BY BookID,Title
ORDER BY AVG(Price) DESC;

6.Създаване на необходимите
Изглед
Изгледа ще ни изведе името на книгата, годината на издаване, корицата и цената.
CREATE VIEW BooksView
AS
SELECT Title, Year, Pages, Cover, Price
FROM Books;

9.
7.Бъдеща работа
Повечето книжарници имат нужда от по-голяма база от данни. Нужни са повече заявки, изгледи и къде да се съхранява тази база от данни. Има голяма възможност да се развива и да придобие добра функционалност.

10.

Сподели с приятели:
1   2   3




©obuch.info 2024
отнасят до администрацията

    Начална страница