Главная страница
Навигация по странице:

  • Приложение 1 к лекции 8

  • Язык SQL. Лекция Язык SQL. В настоящей лекции мы не определяем подробно основные объекты реляционной


    Скачать 82.36 Kb.
    НазваниеВ настоящей лекции мы не определяем подробно основные объекты реляционной
    АнкорЯзык SQL
    Дата30.05.2022
    Размер82.36 Kb.
    Формат файлаdocx
    Имя файлаЛекция Язык SQL.docx
    ТипЛекции
    #558119
    страница3 из 3
    1   2   3

    Константы, выражения, системные переменные

    Константы обычно специфицируют единственное значение и, в соответствии с типом представляемых данных, могут быть строковыми, числовыми и представлять дату/время. Строковые константы должны быть заключены в одинарные кавычки.

    В SQL существует ряд предопределенных системных переменных, которые можно использовать в выражениях вместо имен колонок и констант. К таким переменным относятся следующие:

    • NULL - для представления неопределенных значений;

    • ROWID - (в SQLBase) внутренний системный номер строки в таблице;

    • USER - имя пользователя, активного в данный момент;

    • SYSDATETIME - системное текущее время и дата;

    • SYSDATE - системная текущая дата;

    • SYSTIME - системное текущее время;

    • SYSTIMEZONE - временной пояс, установленный в системе.

    Выражением в SQL является итем или комбинация итемов с допустимыми для них операциями, которая дает единственное значение. В качестве итемов могут выступать имена колонок, константы, связанные переменные, результаты вычислений функций, системные переменные и другие выражения. При этом если один из итемов имеет нуль-значение, то результат выражения также имеет нуль-значение.

    В этом разделе вы узнали, какие вcтроенные типы данных предоставляются проектировщику баз данных в диалектах SQL доменов в физической модели реляционной базы данных. Заметим, что наиболее распространены три из них - varchar2, number и date. Наличие такого небольшого набора типов данных может показаться недостатком, однако это не так. В Oracle типы, определенные в других СУБД и диалектах SQL, можно создать, используя определенный пользователем тип данных. Например, тип money - это тип number с двумя десятичными разрядами, а тип positive integer - тип number без десятичных разрядов и с ограничением на ввод отрицательных значений. По крайней мере, при таком положении дел вам не приходится беспокоиться об ограничениях на внутреннюю память, решая, как хранить вещественное число - с использованием типа float или типа double.

    Самое главное при выборе типов данных - обеспечение непротиворечивости. Если вы определите номер шасси автомобиля в одной таблице как number(11), а в другой таблице - как varchar(15), то, когда дело дойдет до соединения этих таблиц, неприятности вам обеспечены. Напишите-ка SQL-предложение для сравнения 918273645 и "918-27-36/4/5". Да так, чтобы оно эффективно работало в предложении, выполняющем соединение!

    Приложение 1 к лекции 8

    Для предметной области базы данных для иллюстративных примеров можно выделить следующие основные классы объектов: подразделения (схема структурной организации фирмы), сотрудники (штатное расписание) и подчиненные им объекты (дети, родственники, например), проекты, выполняемые данной организацией.

    Сотрудник как объект определяется карточкой личного учета, которая имеет весьма сложную внутреннюю структуру и которую целесообразно как теоретически, так и практически представлять совокупностью объектов, связанных в целое через ее номер (чаще всего искусственно придуманный табельный номер служащего). Аналогично, подразделение как объект определяется структурой организации и его функциями в ней. Проекты (другими словами, работы) являются объектами, которые отражают состояние деятельности организации в получении прибыли. Логическая схема базы данных приведена на рис. 8.2. Для простоты изложения большая часть атрибутов и объектов опущено - пример преследует иллюстрированные и учебные цели и не претендует на полноту представления данных.




    Рис. 8.2. Логическая структура учебной базы данных

    Определение таблиц данных приведено ниже. Таблица DEPARTAMENT содержит информацию о подразделениях организации, таблица EMPLOYEE - о служащих данной организации, таблица PROJECT - информацию о проектах, выполняемых в организации.

    Таблица 8.10. Подразделение (DEPARTMENT)

    Номер подразделения

    DEPNO (PK)

    Integer

    Наименование

    DNAME

    char(20)

    Размещение

    LOC

    char(20)

    Руководитель

    MANAGER

    char(25)

    Телефон

    PHONE

    CHAR(15)

    Номер личной карточки







    Таблица 8.11. Служащий (EMPLOYEE)

    Номер личной карточки

    EMPNO (PK)

    Integer

    Фамилия

    ENAME

    char(25)

    Имя

    LNAME

    char(20)

    Страховка

    SSECNO

    char(10)

    Номер подразделения

    DEPNO

    Integer

    Должность

    JOB

    char(25)

    Возраст

    AGE

    Integer

    Стаж

    HIREDATE

    Data

    Доплаты

    COMM

    dec(9,2)

    Зарплата

    SAL

    dec(9,2)

    Штрафы

    FINE

    dec(9,2)




    Таблица 8.12. Проекты

    Шифр проекта

    PROJNO

    char(8)

    Наименование

    PNAME

    char(25)

    Стоимость

    BUDGET

    Number(9,2)
    1   2   3


    написать администратору сайта