Язык запросов SQL

Язык запросов SQL.
 
SQL структурированный язык запросов. Он является стандартом языковых средств для работы с реляционной БД. Исторически он был разработан после реляционной алгебры в 70-х гг. Это нетрадиционный язык программирования. Он не содержит условных операторов и циклов. Все команды языка ориентированы на доступ к данным, хранящимся в БД. SQL является встроенным языком в любой СУБД или в базовых языках (C, C++, VBasic, Java, Pascal). Операторы SQL могут выполнятся в интерактивном режиме.
 
Структура языка.
 
Составные части:
1.     Язык определения данных (DDL);
2.     Язык обработки данных (DML);
 
Типы данных SQL:
1.     Строка: CHR (длина), т.е. задание строки нужной длины.
2.     Числовой: INTEGER (-231 до +231);
SMOLINT (-215 до +215);
NUMERIC (точность [масштаб]) может быть дробное.
Под точностью подразумевается общий размер числа, после запятой.
FLOAT – число с плавающей точкой;
REAL – точность увеличенная в 2 раза по отношению к FLOAT;
DOUBLE – такой же как REAL.
3.     Дата и время: DATE формат даты зависит от формата установленного в ОС. К этим данным можно прибавлять числа и вычитать.
 
Термины и определения:
Ключевое слово означает оператор, команду, инструкцию
Оператор определения (::=),
[ ] – не обязательный элемент
{ } – обозначают логическую группу
/ - возможны варианты
 
Операторы определения данных
1.                 CREATE TABLE – создание таблицы
2.                 DROP TABLE -  удаление таблицы
3.                 ALTER TABLE – модификация таблицы
 
                CREATE TABLE «имя таблицы» («имя поля» «тип» «размер»);
CREATE TABLE    student  
                                     (stud in  integer,
                                     fam           chr(60),
                                     name        chr (30),
                                     stip           double,
                                     kurs          integer,
city           chr (60),
birthday    date);
 
                ALTEC TABLE «имя таблицы» ADD («имя поля» «тип» «размер»)
команда добавляет столбец в таблицу, если необходимо добавить несколько полей, их название указывается через запятую.
Добавим в таблицу STUDENT поле отделение
ALTEC TABLE student ADD (otdelenie chr (60));
                ALTEC TABLE «имя таблицы» MODIFY («имя поля» «тип» «размер»)
ALTEC TABLE student MODIFY (otdelenie chr (40));
                DROP TABLE «имя таблицы»
 
Создать таблицу с полями (отдел, цена, товар, количество). Изменить таблицу добавив столбец (срок годности). Увеличить размер для поля Отдел.
 
CREATE TABLE    magazin
                                      (cena numeric 5.[10],
                                      otdel             chr(40),
                                      tovar             chr (30),
                                      kol-vo           smolint);
 
ALTEC TABLE magazin ADD (srok godnosti   integer);
 
ALTEC TABLE magazine MODIFY (otdel    chr (60));
 
Оператор выборки SELECT
 
SELECT «список полей» FROM «имя таблицы»
[WHERE ] при формирования запроса можно использовать , and, nod, or.
[ORDER BY desc или asc] используется для упорядочивания в запросе (сортировка). Сортировать можно по нескольким полям.
ASC возрастающий он принят по умолчанию
DESC убывающий
[GROUP BY ] группировка записи определяет значение, какого либо поля. Используются встроенные функции
COUNT – подсчет количества в группе
AVJ –  среднее арифметическое значение
MAX
SUM
MIN
[HAVING ] определят по которому группы включаются в выходные данные. Применяется только с GROUP BY
[DISTING]
 
Примеры:
 
                Показать фамилии и имена студентов из таблицы «студент».
SELECT fam, imy FROM student;
При указании списка полей данные будут выводиться в соответствие с этим списком, а не в соответствии со структурой.
                Показать студентов и день рождения
SELECT fam, birthday FROM student;
SELECT * FROM student;
                Показать города в которых живут студенты
SELECT city FROM student;
SELECT DISTING city FROM student; отбор данных          по полю город с подавлением повторов
                Отобразить студентов с ФИО Петров
SELECT fam, imy FROM student  WHERE fam = “Петров”;
                Выбрать студентов 3 – его курса получивших стипендию
SELECT fam, imy FROM student  WHWRE kurs = 3 AND stip > 0;
                Запрос выбирающий в следующем порядке Курс, ФИО, Стипендия.
SELECT kurs, fam, stip FROM student;
                                                                                                                                                                                                
Имея таблицу SUBJECT (NOM, NAME, HOUR, SEM)
Выполнить запросы:
 
                Показать записи из таблицы предметы в алфавитном порядке наименование предметов
SELECT * FROM subject  ORDER BY name;
                Показать в убывающем порядке количество часов
SELECT * FROM subject  ORDER BY hours DESC;
                Упорядочить по 2- м полям
SELECT * FROM subject  ORDER BY sem, name;
                Отобразить предметы у которых > 70 часов (отбор произвести в каждой групп предметов)
SELECT name, MAX(hours) FROM subject GROUP BY name HAVING MAX (hours)>70
                                                                                                                                                                                                
 
                Отобразить студентов старше 1.01.85 из города Воронежа упорядочить по фамилии
SELECT fam, imy, city FROM student WHERE city = “Воронеж” AND bithdey > 1.01.85 ORDER BY fam;
                Сколько студентов на каждом курсе
SELECT count (*) FROM student GROUP BY kurs;
                Сколько студентов проживают в Москве
SELECT count (*) FROM student WHERE city = “Москва”  GROUP BY city;
 
Операторы IN, BETWEEN
 
Предназначена для задания логического  условия выражения WHERE.
IN (, ) – для сравнения  значения поля со списком. Список – выражение 1, 2 и т.д.
BETWEEN AND - задает интервал значений. Используется для проверки условия вхождения значения поля в заданный интервал.
 
Примеры:
                Получить список предметов 1-ого, 2-ого семестра
SELECT * FROM subject WHERE curs IN (1, 2)
                Получить фамилии студентов 1-ого, 4-ого курса
SELECT fam FROM student WHERE curs IN (1, 4)
                Получить предметы на изучение которых отводится от 30 – 40 часов.
SELECT * FROM subject WHERE hour BETWEEN 30 AND 40
                Получить сведения о студентах получающих  стипендию от 100 – 140 руб
SELECT * FROM student WHERE stip BETWEEN 100 AND 140
 
Преобразование вывода из встроенной функции
 
Операторы преобразования применяются с выражениями:
Арифметические (+; -; /; *) применяются только с числовыми полями.
Пример:
                Получить фамилии у которых стипендия увеличена на  100
SELECT fam, stip + 100 FROM student
Строковые:
|| позволяет соединить 2 и более символьных выражений. Применяется только с символьными полями
                Показать фамилии и имя студентов 4 – ого курса
SELECT fam, || “  “, || imy FROM student WHERE curs = 4
Like применяется только с символьными выражениями. Просматривает символьное поле и выявляет совпадает ли значение поля с выражением в операторе Like.
выражение может использовать символы % - любые символы в любом количестве, _ один любой символ
                Показать фамилии студентов начинающихся с буквы А
SELECT * FROM student WHERE fam LIKE “A%”

  Рефераты на русском языке - Информатика


Яндекс.Метрика