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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

     
  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; просмотров: 152; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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