ТОП 10:

Тема. Понятие реляционной базы данных. Создание базы данных.



Наиболее используемые типы данных

     
CHAR (num) Текстовая строка фиксированной длины, содержащая num символов. Если параметр num опущен, он считается равным 1.
VARCHAR (num) Переменная длина
INTEGER Без десятичной точки.
REAL С десятичной точкой.
DATETIME MM.DD.RRRR (09-19-2002 15:25:35:30 или 09/19/2002 15:25:35:30 )

Простая база данных. Схема_1.Создадим базу данных из трех таблиц.

CREATE TABLE Salespeople - - продавцы

(

Snum INTEGER NOT NULL PRIMARY KEY,

Sname CHAR (15) NOT NULL,

City CHAR (15),

comm REAL);

Столбцы Таблицы Salespeople

snum Уникальный номер, присваиваемый каждому продавцу (номер служащего). Это первичный ключ таблицы.
sname Фамилия продавца.
city Место, где находится продавец, то есть один из офисов кампании
comm Комиссионное вознаграждение продавца в десятичной форме

Salespeople (Продавцы)

snum sname city comm.
Peel London .12
Serres San Jose .13
Motika London .11
Rifkin Barselona .15
Axelrod New York .10

CREATE TABLE Customers - - покупатели

(

Cnum INTEGER NOT NULL PRIMARY KEY,

Cname CHAR (15) NOT NULL,

City CHAR (15),

Rating INTEGER,

Snum INTEGER,

FOREIGN KEY (snum) REFERENCES Salespeople (snum)

);

Столбцы Таблицы Custumers

cnum Уникальный номер, присваиваемый каждому покупателю (номер покупателя). Это первичный ключ таблицы.
cname Фамилия покупателя.
city Место, где находится покупатель. В действительности – это один из офисов кампании, а не место проживания покупателя.
rating Числовой код, который показывает уровень предпочтения, присвоенный данному покупателю. Большие номера соответствуют большим предпочтениям. NULL обозначает покупателя, которому еще не присвоен рейтинг.
snum Номер продавца, прикрепленного к данному покупателю. Это внешний ключ, ссылающияся на Salespeople (snum)

Customers (Покупатели)

cnum cname city rating snum
Hoffman London
Giovanni Rome
Liu San Jose
Grras Berlin
Climens London NULL
Cisneros San Jose
Pereira Rome

CREATE TABLE Orders - - заказы

(

Onum INTEGER NOT NULL PRIMARY KEY,

Amt REAL,

Odate DATETIME NOT NULL,

Cnum INTEGER NOT NULL,

Snum INTEGER NOT NULL,

FOREIGN KEY (snum) REFERENCES Salespeople (snum),

FOREIGN KEY (cnum) REFERENCES Customers (cnum)

);

Столбцы Таблицы Orders

onum Уникальный номер, присваиваемый каждой покупке (номер покупки). Это первичный ключ таблицы.
amt Сумма покупки.
odate Дата покупки.
cnum Номер покупателя, делающего покупку. Это внешний ключ, ссылающийся на Customers (cnum).
snum Номер продавца, совершившего продажу. Это внешний ключ, ссылающийся на Salespeople (snum)

Orders (Заказы)

onum amt odate cnum snum
18.69 10/03/2000
767.19 10/03/2000
1900.10 10/03/2000
5160.45 10/03/2000
1098.16 10/03/2000
1713.23 10/04/2000
75.75 10/04/2000
4723.00 10/05/2000
1309.95 10/06/2000
9891.88 10/06/2000

Вставка данных

INSERT INTO Salespeople

VALUES (1001,’Peel’, ‘London’, 0.12);

или

INSERT INTO Salespeople (snum, sname, city, comm)

VALUES (1001,’Peel’, ‘London’, 0.12);

 

Дату вводить как текст, т.е. в апострофах, например: ‘10/03/2000’

Удаление строк из таблицы
DELETE FROM Salespeople

WHERE snum = 1007 - Удаляется строка с номером 1007

Удаление таблицы из базы данных

DROP TABLE Salespeople

Изменение значений полей

UPDATE Salespeople

SET city = ‘London’

WHERE snum = 1003

 

Тема. Использование SQL для выборки информации из таблиц.

Оператор SELECT

 

1. Напишите оператор SELECT, который выводит номер заказа, сумму покупки и дату покупки для всех строк в таблице Orders (Заказы).

2. Составьте запрос, который выводит все строки таблицы Customers (Покупатели) с номером продавца 1001.

3. Напишите запрос, который выводит таблицу Salespeople (Продавцы) в следующем порядке: city, sname, snum, comm.

4. Составьте запрос, который выводит без повторов значения snum для всех продавцов, обслуживающих заказы из таблицы Orders (Заказы).

5. Напишите запрос, который выдает имена всех продавцов в Лондоне с комиссионными более 0.10.

6. Напишите запрос к таблице Customers (Покупатели), из результата которого будут исключены все покупатели с рейтингом <=100, если только они не находятся в Риме.

7. Каким будет результат следующего запроса?
SELECT *
FROM Orders
WHERE (amt < 1000 OR NOT (odate = ‘1/03/2000’ AND cnum > 2000) );

8. Каким будет результат следующего запроса?
SELECT *
FROM Orders
WHERE NOT ((odate = ‘1/03/2000’ OR snum > 1006 ) AND amt>=1500);

9. Каким образом можно упростить следующий запрос?
Считайте, что столбец coom не содержит NULL-значений.
SELECT snum, sname, city, comm.
FROM Salespeople
WHERE (comm. >= 0.12 OR comm. < 0.14);

 







Последнее изменение этой страницы: 2017-01-25; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.234.244.18 (0.007 с.)