В начало

База данных АТС

 

            Постановка задачи: необходимо в СУБД «MS SQL Server 2005» создать базу данных «АТС».

            Запускаем «MS SQL Server 2005 MSE», соединяемся с сервером, переходим в инспектор объектов и создаем новую базу, даем ей имя «АТС».

            Далее идем на ветку «Базы данных – АТС – Таблицы» и создаем таблицу «Города».

Имя столбца

Тип данных

Код города

BigInt, первичный ключ, счетчик

Город

nVarChar(20)

            Заполним таблицу «Города».

Рис. 1. Заполненная таблица «Города»

            Также создадим таблицу «Улицы».

Имя столбца

Тип данных

Код улицы

BigInt, первичный ключ, счетчик

Улица

nVarChar(20)

            Заполним ее.

Рис. 2. Заполненная таблица «Улицы»

 

            Потом немного поизгаляемся и создадим таблицу «Префиксы номеров».

Имя столбца

Тип данных

Код префикса

BigInt, первичный ключ, счетчик

Префикс

SmallInt

Код города

BigInt, внешний ключ

 

            Далее заполним таблицу «Префиксы номеров» некоторыми достоверными сведениями.

Рис. 3. Заполненная таблица «Префиксы номеров»

 

            Потом создадим таблицу с фамилиями «ФИО».

Рис. 4. Заполненная таблица «ФИО»

 

            А теперь создадим таблицу «Абоненты». При этом поля «Телефон» и «Адрес» будем заполнять псевдо-случайными значениями на основании других таблиц.

Имя столбца

Тип данных

Код абонента

BigInt, первичный ключ, счетчик

ФИО

nVarChar(20)

Телефон

nVarChar(12)

Адрес

nVarChar(50)

 

            Пишем код на создание процедуры «Sluchaynie_Ludi».

USE АТС;

GO

CREATE PROCEDURE Sluchaynie_Ludi @MaxZapisey BigInt

AS

DECLARE @FIO nVarChar(20),

        @Prefiks SmallInt,

        @Telefon nVarChar(12),

        @Gorod nVarChar(20),

        @Ulica nVarChar(20),

        @Adres nVarChar(50),

        @Counter BigInt;/* Счетчик для цикла*/

SET @Counter=1

WHILE @Counter <= @MaxZapisey

       BEGIN

       -- Случайное ФИО

       SET @FIO = (SELECT TOP 1 [ФИО] FROM [ФИО] ORDER BY NEWID());

 

       -- Случайный ПРЕФИКС

       SET @Prefiks = (SELECT TOP 1 [Префикс] FROM [Префиксы номеров] ORDER BY NEWID());

 

       -- Случайный ТЕЛЕФОН

       SET @Telefon = '('+ LTRIM(STR(@Prefiks)) +')' + LTRIM(STR(RAND()*1e7));

 

       -- Случайный ГОРОД

       SET @Gorod = (SELECT TOP 1 [Город] FROM [Города] ORDER BY NEWID());

 

       -- Случайная УЛИЦА

       SET @Ulica = (SELECT TOP 1 [Улица] FROM [Улицы] ORDER BY NEWID());

 

       -- Случайный АДРЕС

       SET @Adres = 'г.'+ @Gorod +', ' + @Ulica + ', д.' + LTRIM(STR(RAND()*1e2)) + ', кв.' + LTRIM(STR(RAND()*1e2));

 

       -- Вывод результата в окно сообщений

       PRINT @FIO + ' '+@Telefon + ' ' + @Adres;

 

       -- Добавление записи в таблицу АБОНЕНТЫ

       INSERT INTO Абоненты (ФИОелефон, Адрес)

    VALUES (@FIO, @Telefon, @Adres)

 

       SET @Counter = @Counter + 1      

    END

            Далее, для ее выполнения пишем другой код.

EXECUTE Sluchaynie_Ludi 5;

           

Результат выполнения процедуры «Sluchaynie_Ludi» показан чуть ниже.

Рис. 5. Автозаполнение таблицы «Абоненты»

 

            Фамилий ввел всего пять, поэтому среди абонентов появилось два однофамильца, проживающих в разных местах.


База данных характеристик автомобилей с фото (19 тыс.)
База данных характеристик автомобилей с фото (19 тыс.)


База данных Актеров (КиноПоиск) 600 000тыс.
База данных Актеров (КиноПоиск) 600 000тыс.


бд Учёт телефонных переговоров.mdb
бд Учёт телефонных переговоров.mdb