
- •1. Краткие сведения о языке sql субд Oracle
- •Выборка данных
- •Управление транзакциями
- •1.2. Создание таблиц
- •Именование таблиц и столбцов
- •Типы данных
- •Получение сведений о структуре таблицы
- •Обязательные (not null ) и необязательные (null) столбцы
- •1.3. Вычисления с использованием данных из таблицы
- •1.4. Присваивание столбцам псевдонимов
- •1.5. Обзор операторов (команд) языка sql
1. Краткие сведения о языке sql субд Oracle
SQL является стандартным языком для выполнения запросов к базам данных. Каждый производитель систем управления базами данных (СУБД) слегка модифицирует его, чтобы приспособить к своим потребностям, но ядро SQL по существу остается неизменным. От этого выигрывают пользователи и разработчики баз данных, поскольку усилия, потраченные на изучение SQL, будут приносить свои плоды в течение долгих лет, при смене версий программ и даже при переходе на другие продукты.
1.1. Категории команд SQL
Команды (операторы) SQL делятся на функциональные группы, что облегчает их запоминание:
• Определение данных (Data Definition)
• Манипулирование данными (Data Manipulation)
• Управление данными (Data Control)
• Выборка данных (Data Retrieval)
• Управление транзакциями (Transaction Control)
!
Определение данных
Все основные СУБД, в том числе и Oracle, являются так называемыми платформами баз данных. Это означает, что они предоставляют среду, очень хорошо поддерживающую работу с таблицами, но не содержат никаких заранее созданных таблиц. Рабработчик должен сам определять состав и конфигурацию хранимых данных. Для этого в SQL существует ряд специальных команд: CREATE, ALTER, DROP, RENAME.
Эти команды входят в группу, называемую языком определения данных (Data Definition Language, DDL).
Манипулирование данными
После создания базы данных необходимо поместить в нее данные. В SQL есть команда INSERT, позволяющая добавлять данные в таблицы, входящие в базу. После того как данные вставлены, их можно изменять, используя команду UPDATE, или удалять, используя команды DELETE или TRUNCATE
Эта категория команд называется языком манипулирования данными (Data Manipulation Language, DML).
Управление данными
Возможность предоставлять некоторым пользователям доступ к определенным таблицам, в то время как другим это запрещено, обеспечивается за счет присваивания пользователям привилегий на таблицы или действия. Объектная привилегия разрешает пользователю выполнять определенные действия над таблицей или другими объектами базы данных. Пример объектной привилегии — возможность вставлять записи в таблицу, созданную самим пользователем. Системная привилегия, напротив, разрешает пользователю выполнять действия определенного типа во всей базе данных. Примером системной привилегии будет возможность вставлять записи в любую таблицу базы данных.
Привилегии базы данных присваиваются и удаляются с помощью SQL-команд GRANT и REVOKE, соответственно. Эти команды относятся к категории, называемой языком управления данными (Data Control Language, DCL).
Выборка данных
Смысл помещения информации в базу данных состоит в том, чтобы получать ее обратно контролируемым образом. В этой категории всего одна команда — SELECT, но она имеет широкий набор параметров, обеспечивающих огромную гибкость. Эта команда используется чаще всего, особенно если с помощью SQL приходится обращаться к базе данных из другого языка программирования, такого, как Java или C++.
Управление транзакциями
SQL позволяет отменять любые из последних команд DML до того, как они будут применены к базе данных. После выполнения одной или нескольких команд DML можно ввести либо команду COMMIT для сохранения изменений в базе данных, либо команду ROLLBACK для их отмены ("отката").
Отмена возможна на разных уровнях: можно отменить самую последнюю транзакцию DML, несколько последних транзакций или выполнить отмену на любую нужную глубину. Однако для того, чтобы выполнять многоуровневый повтор, требуется несколько больше предварительных действий, чем в при использовании текстового редактора. Чтобы иметь возможность отката к некоторым промежуточным точкам, их следует предварительно отметить с помощью команды SAVEPOINT.